Advertisement
palenda21

Lab9B''

Mar 14th, 2020
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.51 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <string.h>
  4. #include <io.h>
  5.  
  6. using namespace std;
  7. FILE* fl;
  8.  
  9. struct worker
  10. {
  11.     char surname[50];
  12.     int birthdate;
  13.     int workdate;
  14. } *spisok;
  15.  
  16. void create();  //Создать файл
  17. void vvod();    //Ввести список
  18. void chit();    //Прочитать список
  19. void reze();    //Вывести результат на экран
  20. void rezf();    //Вывести результат в файл
  21. int menu();    //Меню
  22.  
  23. int main()
  24. {
  25.     setlocale(LC_ALL, "rus");
  26.     while (true) {
  27.         switch (menu()) {
  28.         case 1: create(); cout << "Файл создан!" << endl; break;
  29.         case 2: vvod(); break;
  30.         case 3: chit(); break;
  31.         case 4: reze(); break;
  32.         case 5: rezf(); cout << "Результат записан в текстовый файл! " << endl; break;
  33.         case 6: exit(0);
  34.         default: cout << "Выберите правильный вариант";
  35.         }
  36.     }
  37. }
  38.  
  39. int menu()
  40. {
  41.     cout << "Выбирайте:" << endl;
  42.     cout << "1. Создать файл" << endl;
  43.     cout << "2. Записать данные в файл" << endl;
  44.     cout << "3. Открыть файл и прочитать данные" << endl;
  45.     cout << "4. Вывести результат на экран" << endl;
  46.     cout << "5. Вывести результат в текстовый файл" << endl;
  47.     cout << "6. Выйти из программы" << endl;
  48.     int i; cin >> i; cin.ignore();
  49.     return i;
  50. }
  51. void create() {
  52.     if ((fl = fopen("lab9", "wb")) == NULL)
  53.     {
  54.         cout << "Файл не создан" << endl;
  55.     }
  56.     fclose(fl);
  57. }
  58.  
  59. void vvod()
  60. {
  61.     if ((fl = fopen("lab9", "ab")) == NULL)
  62.          if ((fl = fopen("lab9", "wb")) == NULL)
  63.          {
  64.              cout << "Файл не создан" << endl;
  65.              return;
  66.          }
  67.     int n;
  68.     cout << "Введите количество работников: ";
  69.     cin >> n;
  70.     spisok = new worker[n];
  71.     for (int i = 0; i < n; i++)
  72.     {
  73.         cout << "Введите фамилию работника:  ";
  74.         cin >> rabotnik.surname;
  75.         cout << "Введите дату рождения работника: ";
  76.         cin >> rabotnik.birthdate;
  77.         cout << "Введите дату первого рабочего дня работника: ";
  78.         cin >> rabotnik.workdate;
  79.         cout << endl;
  80.     }
  81.      fclose(fl);
  82.     }
  83.  
  84. void chit()
  85. {
  86.     if ((fl = fopen("lab9", "rb")) == NULL)
  87.     {
  88.         cout << "Файл не создан" << endl;
  89.     }
  90.     int n; n = _filelength(_fileno(fl)) / sizeof(worker);
  91.     for (int i = 0; i < n; i++)
  92.     {
  93.         cout << "Фамилия работника:  " << rabotnik.surname;
  94.         cout << "Дата рождения работника: " << rabotnik.birthdate;
  95.         cout << "Дата первого рабочего дня работника: " << rabotnik.workdate;
  96.         cout << endl;
  97.     }
  98.     fclose(fl);
  99. }
  100.  
  101. void reze()
  102. {
  103.     if ((fl = fopen("lab9", "rb+")) == NULL)
  104.     {
  105.         cout << "Файл не создан" << endl;
  106.     }
  107.     int n;
  108.     n = _filelength(_fileno(fl)) / sizeof(worker);
  109.     spisok = new worker[n];
  110.     for (int i = 0; i < n; i++)
  111.      {
  112.          fread (&spisok, sizeof(spisok), n, fl);
  113.          if (spisok[i].birthdate < 1980)
  114.      {
  115.          cout << "Работник, родившийся до 1980 года: " << spisok[i].surname << endl;
  116.          cout << "Дата его рождения: " << spisok[i].birthdate << endl;
  117.          cout << "Дата его первого рабочего дня: " << spisok[i].workdate;
  118.          cout << endl;
  119.      }
  120.         else cout << "> 1980";
  121.      }
  122.    
  123.     delete[] spisok;
  124.     fclose(fl);
  125. }
  126.  
  127. void rezf()
  128. {
  129.     if ((fl = fopen("lab9", "ab+")) == NULL)
  130.     {
  131.         cout << "Файл не создан" << endl;
  132.     }
  133.     int n;
  134.     n = _filelength(_fileno(fl)) / sizeof(worker);
  135.     for (int i = 0; i < n; i++)
  136.      {
  137.          fread (&spisok, sizeof(spisok), n, fl);
  138.          if (spisok[i].birthdate < 1980)
  139.      {
  140.          cout << "Работник, родившийся до 1980 года: " << spisok[i].surname << endl;
  141.          cout << "Дата его рождения: " << spisok[i].birthdate << endl;
  142.          cout << "Дата его первого рабочего дня: " << spisok[i].workdate;
  143.          cout << endl;
  144.      }
  145.         else cout << "> 1980";
  146.      }
  147.     fclose(fl);
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement