Advertisement
kxcoze

tanya_15_2

Jun 28th, 2020
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.99 KB | None | 0 0
  1. #include <iomanip>
  2. #include <iostream>
  3. #include <Windows.h>
  4. #include <conio.h>
  5.  
  6. using namespace std;
  7.  
  8. struct workers {
  9.     char surname[30];
  10.     bool pol;
  11.     double salary;
  12.     char experience[20];
  13. } record[20];
  14.  
  15. short menu(workers* a);
  16. void vvod(workers* a);
  17. void vvodInFile(workers* a);
  18. void list();
  19. void maxSalary(int &kol);
  20.  
  21.  
  22. int main() {
  23.     SetConsoleCP(1251);
  24.     SetConsoleOutputCP(1251);
  25.     setlocale(LC_ALL, "Rus");
  26.     int kol = 1;
  27.     short choise;
  28.     do {
  29.         choise = menu(record);
  30.         switch (choise) {
  31.         case 1:
  32.             system("cls");
  33.             vvodInFile(record);
  34.             kol++;
  35.             _getch();
  36.             system("cls");
  37.             break;
  38.         case 2:
  39.             system("cls");
  40.             list();
  41.             _getch();
  42.             system("cls");
  43.             break;
  44.         case 3:
  45.             system("cls");
  46.             maxSalary(kol);
  47.             _getch();
  48.             system("cls");
  49.             break;
  50.         case 0:
  51.             cout << "До свидания!!!" << endl;
  52.             system("pause");
  53.             break;
  54.         default:
  55.             cout << "Неверный выбор!!!" << endl;
  56.             cout << "\n\nPress Enter..." << endl;
  57.             _getch();
  58.             system("cls");
  59.             break;
  60.         }
  61.     } while (choise);
  62.     cout << endl;
  63.     return 0;
  64. }
  65.  
  66. short menu(workers* a) {
  67.     short v;
  68.     cout << "           МЕНЮ" << endl;
  69.     cout << " Введите [1] для ввода данных\n";
  70.     cout << " Введите [2] для просмотра всех данных\n";
  71.     cout << " Введите [3] для просмотра данных о рабочем, с наибольшей зарплатой\n";
  72.     cout << " Введите [0] для выхода\n";
  73.     cout << " Пункт: ";
  74.     cin >> v;
  75.     return v;
  76. }
  77.  
  78. void vvod(workers* a) {
  79.     short pol;
  80.     cin.ignore();
  81.     cout << "Введите фамилию: ";
  82.     cin.getline(a->surname, 30);
  83.     cout << "Выберите пол: " << endl
  84.         << "[1] Мужчина" << endl
  85.         << "[2] Женщина" << endl;
  86.     cin >> pol;
  87.     if (pol == 1)
  88.         a->pol = 1;
  89.     else
  90.         if (pol == 2)
  91.             a->pol = 0;
  92.     cout << "Введите размер зарплаты: ";
  93.     cin >> a->salary;
  94.     cin.ignore();
  95.     cout << "Введите стаж работы: ";
  96.     cin.getline(a->experience, 20);
  97.     cout << "Спасибо\n\n";
  98. }
  99.  
  100. void vvodInFile(workers* a) {
  101.     vvod(a);
  102.     FILE* pfile;
  103.     fopen_s(&pfile, "Workers.txt", "ab");
  104.     cin.ignore();
  105.     cout << "Фамилия: " << a->surname << endl;
  106.     cout << "Пол: ";
  107.     if (a->pol == 1)
  108.         cout << "Мужчина" << endl;
  109.     else
  110.         if (a->pol == 0)
  111.             cout << "Женщина" << endl;
  112.     cout << "Размер зарплаты: " << a->salary << endl;
  113.     cout << "Стаж работы: " << a->experience << endl;
  114.     fwrite(a, sizeof(workers), 1, pfile);
  115.     cout << "Данные в файл записаны";
  116.     fclose(pfile);
  117. }
  118.  
  119. void list() {
  120.     workers* record = new workers;
  121.     int i = 1;
  122.     FILE* pFile;
  123.     fopen_s(&pFile, "Workers.txt", "rb");
  124.     cout << "Данные с базы данных" << endl;
  125.  
  126.     while (!feof(pFile)) {
  127.         fread(record, sizeof(workers), 1, pFile);
  128.         if (!feof(pFile)) {
  129.             cout << i << ": " << endl;
  130.             cout << "Фамилия: " << record->surname << endl;
  131.             cout << "Пол: ";
  132.             if (record->pol == 1)
  133.                 cout << "Мужчина" << endl;
  134.             else
  135.                 if (record->pol == 0)
  136.                     cout << "Женщина" << endl;
  137.             cout << "Размер зарплаты: " << record->salary << endl;
  138.             cout << "Стаж работы: " << record->experience << endl << endl;
  139.             i++;
  140.         }
  141.     }
  142.     fclose(pFile);
  143.     delete record;
  144. }
  145.  
  146. void maxSalary(int &kol) {
  147.     workers* record = new workers;
  148.     workers maxObject;
  149.     FILE* file;
  150.     fopen_s(&file, "Workers.txt", "rb");
  151.     maxObject.salary = record->salary;
  152.     while (fread(record, sizeof(workers), 1, file) == 1) {
  153.             if (record->salary > maxObject.salary) {
  154.                 maxObject.salary = record->salary;
  155.  
  156.                 strcpy_s(maxObject.surname, record->surname);
  157.                 maxObject.pol = record->pol;
  158.                 strcpy_s(maxObject.experience, record->experience);
  159.             }
  160.     }
  161.     cout << "Рабочий с наивысшей заработной платой" << endl;
  162.     cout << "Фамилия: " << maxObject.surname << endl;
  163.     cout << "Пол: ";
  164.     if (maxObject.pol == 1)
  165.         cout << "Мужчина" << endl;
  166.     else if (maxObject.pol == 0)
  167.         cout << "Женщина" << endl;
  168.     cout << "Размер зарплаты: " << maxObject.salary << endl;
  169.     cout << "Стаж работы: " << maxObject.experience << endl;
  170.     fclose(file);
  171.     delete record;
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement