Advertisement
JouJoy

Untitled

Apr 22nd, 2020
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.78 KB | None | 0 0
  1. #include<iostream>
  2. #include<fstream>
  3.  
  4. using namespace std;
  5.  
  6. struct months
  7. {
  8.     string name;//название
  9.     double summ;//начисленная сумма
  10.     bool pay;//оплачено или нет
  11. };
  12. struct dolzhnik//пояснение ниже в else
  13. {
  14.     string fam;
  15.     string adress;
  16.     double summa;
  17. };
  18. struct man
  19. {
  20.     string fam;//фамилия
  21.     string adress;//адрес
  22.     months month[12];//12 месяцев
  23. };
  24. int main()
  25. {
  26.     dolzhnik h;
  27.     months m[12];
  28.     int i;
  29.     double summa=0;
  30.     bool t;
  31.     man *a;
  32.     ifstream inbin("binfilename.bin", ios::binary);//входной файл, созданный ранее
  33.     ofstream outpay("Оплачено.txt");//выходные файлы
  34.     ofstream outnotpay("Задолженность.bin", ios::binary);
  35.     while (inbin.read((char*)&a, sizeof(struct man)))//пока будет читаться, будет выполняться цикл
  36.     {
  37.         t = false;
  38.         summa = 0;
  39.         for (i = 0; i < 12; i++)//проверка платил ли
  40.         {
  41.            
  42.             m[i] = a->month[i];
  43.             if (m[i].pay)//если заплатил, ссумируем плату
  44.             {
  45.                 summa += m[i].summ;
  46.                 t = true;
  47.             }
  48.         }
  49.         if (t)//если хоть раз платил, выводим нужные данные
  50.         {
  51.  
  52.             outpay << a->fam << ' ' << a->adress << ' ' << summa << endl;
  53.         }
  54.         else //если ни разу не заплатил, выводим в бинарный файл (поскольку другие данные, лучше создать другую структуру dolzhnik)
  55.         {
  56.             for (i = 0; i < 12; i++)
  57.             {
  58.                 m[i] = a->month[i];
  59.                 summa += m[i].summ;
  60.             }
  61.             h.fam = a->fam;
  62.             h.adress = a->adress;
  63.             h.summa = summa;
  64.             outnotpay.write((char*)&h, sizeof(struct dolzhnik));
  65.         }
  66.     }
  67.     system("pause");
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement