Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iomanip>
- #include <iostream>
- #include <Windows.h>
- #include <conio.h>
- using namespace std;
- struct workers {
- char surname[30];
- bool pol;
- double salary;
- char experience[20];
- } record[20];
- short menu(workers* a);
- void vvod(workers* a);
- void vvodInFile(workers* a);
- void list();
- void maxSalary(int &kol);
- int main() {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- setlocale(LC_ALL, "Rus");
- int kol = 1;
- short choise;
- do {
- choise = menu(record);
- switch (choise) {
- case 1:
- system("cls");
- vvodInFile(record);
- kol++;
- _getch();
- system("cls");
- break;
- case 2:
- system("cls");
- list();
- _getch();
- system("cls");
- break;
- case 3:
- system("cls");
- maxSalary(kol);
- _getch();
- system("cls");
- break;
- case 0:
- cout << "До свидания!!!" << endl;
- system("pause");
- break;
- default:
- cout << "Неверный выбор!!!" << endl;
- cout << "\n\nPress Enter..." << endl;
- _getch();
- system("cls");
- break;
- }
- } while (choise);
- cout << endl;
- return 0;
- }
- short menu(workers* a) {
- short v;
- cout << " МЕНЮ" << endl;
- cout << " Введите [1] для ввода данных\n";
- cout << " Введите [2] для просмотра всех данных\n";
- cout << " Введите [3] для просмотра данных о рабочем, с наибольшей зарплатой\n";
- cout << " Введите [0] для выхода\n";
- cout << " Пункт: ";
- cin >> v;
- return v;
- }
- void vvod(workers* a) {
- short pol;
- cin.ignore();
- cout << "Введите фамилию: ";
- cin.getline(a->surname, 30);
- cout << "Выберите пол: " << endl
- << "[1] Мужчина" << endl
- << "[2] Женщина" << endl;
- cin >> pol;
- if (pol == 1)
- a->pol = 1;
- else
- if (pol == 2)
- a->pol = 0;
- cout << "Введите размер зарплаты: ";
- cin >> a->salary;
- cin.ignore();
- cout << "Введите стаж работы: ";
- cin.getline(a->experience, 20);
- cout << "Спасибо\n\n";
- }
- void vvodInFile(workers* a) {
- vvod(a);
- FILE* pfile;
- fopen_s(&pfile, "Workers.txt", "ab");
- cin.ignore();
- cout << "Фамилия: " << a->surname << endl;
- cout << "Пол: ";
- if (a->pol == 1)
- cout << "Мужчина" << endl;
- else
- if (a->pol == 0)
- cout << "Женщина" << endl;
- cout << "Размер зарплаты: " << a->salary << endl;
- cout << "Стаж работы: " << a->experience << endl;
- fwrite(a, sizeof(workers), 1, pfile);
- cout << "Данные в файл записаны";
- fclose(pfile);
- }
- void list() {
- workers* record = new workers;
- int i = 1;
- FILE* pFile;
- fopen_s(&pFile, "Workers.txt", "rb");
- cout << "Данные с базы данных" << endl;
- while (!feof(pFile)) {
- fread(record, sizeof(workers), 1, pFile);
- if (!feof(pFile)) {
- cout << i << ": " << endl;
- cout << "Фамилия: " << record->surname << endl;
- cout << "Пол: ";
- if (record->pol == 1)
- cout << "Мужчина" << endl;
- else
- if (record->pol == 0)
- cout << "Женщина" << endl;
- cout << "Размер зарплаты: " << record->salary << endl;
- cout << "Стаж работы: " << record->experience << endl << endl;
- i++;
- }
- }
- fclose(pFile);
- delete record;
- }
- void maxSalary(int &kol) {
- workers* record = new workers;
- workers maxObject;
- FILE* file;
- fopen_s(&file, "Workers.txt", "rb");
- maxObject.salary = record->salary;
- while (fread(record, sizeof(workers), 1, file) == 1) {
- if (record->salary > maxObject.salary) {
- maxObject.salary = record->salary;
- strcpy_s(maxObject.surname, record->surname);
- maxObject.pol = record->pol;
- strcpy_s(maxObject.experience, record->experience);
- }
- }
- cout << "Рабочий с наивысшей заработной платой" << endl;
- cout << "Фамилия: " << maxObject.surname << endl;
- cout << "Пол: ";
- if (maxObject.pol == 1)
- cout << "Мужчина" << endl;
- else if (maxObject.pol == 0)
- cout << "Женщина" << endl;
- cout << "Размер зарплаты: " << maxObject.salary << endl;
- cout << "Стаж работы: " << maxObject.experience << endl;
- fclose(file);
- delete record;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement