Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<fstream>
- using namespace std;
- struct months
- {
- string name;//название
- double summ;//начисленная сумма
- bool pay;//оплачено или нет
- };
- struct dolzhnik//пояснение ниже в else
- {
- string fam;
- string adress;
- double summa;
- };
- struct man
- {
- string fam;//фамилия
- string adress;//адрес
- months month[12];//12 месяцев
- };
- int main()
- {
- dolzhnik h;
- months m[12];
- int i;
- double summa=0;
- bool t;
- man *a;
- ifstream inbin("binfilename.bin", ios::binary);//входной файл, созданный ранее
- ofstream outpay("Оплачено.txt");//выходные файлы
- ofstream outnotpay("Задолженность.bin", ios::binary);
- while (inbin.read((char*)&a, sizeof(struct man)))//пока будет читаться, будет выполняться цикл
- {
- t = false;
- summa = 0;
- for (i = 0; i < 12; i++)//проверка платил ли
- {
- m[i] = a->month[i];
- if (m[i].pay)//если заплатил, ссумируем плату
- {
- summa += m[i].summ;
- t = true;
- }
- }
- if (t)//если хоть раз платил, выводим нужные данные
- {
- outpay << a->fam << ' ' << a->adress << ' ' << summa << endl;
- }
- else //если ни разу не заплатил, выводим в бинарный файл (поскольку другие данные, лучше создать другую структуру dolzhnik)
- {
- for (i = 0; i < 12; i++)
- {
- m[i] = a->month[i];
- summa += m[i].summ;
- }
- h.fam = a->fam;
- h.adress = a->adress;
- h.summa = summa;
- outnotpay.write((char*)&h, sizeof(struct dolzhnik));
- }
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement