Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <string.h>
- #include <io.h>
- using namespace std;
- FILE* fl;
- struct worker
- {
- char surname[50];
- int birthdate;
- int workdate;
- } *spisok;
- void create(); //Создать файл
- void vvod(); //Ввести список
- void chit(); //Прочитать список
- void reze(); //Вывести результат на экран
- void rezf(); //Вывести результат в файл
- int menu(); //Меню
- int main()
- {
- setlocale(LC_ALL, "rus");
- while (true) {
- switch (menu()) {
- case 1: create(); cout << "Файл создан!" << endl; break;
- case 2: vvod(); break;
- case 3: chit(); break;
- case 4: reze(); break;
- case 5: rezf(); cout << "Результат записан в текстовый файл! " << endl; break;
- case 6: exit(0);
- default: cout << "Выберите правильный вариант";
- }
- }
- }
- int menu()
- {
- cout << "Выбирайте:" << endl;
- cout << "1. Создать файл" << endl;
- cout << "2. Записать данные в файл" << endl;
- cout << "3. Открыть файл и прочитать данные" << endl;
- cout << "4. Вывести результат на экран" << endl;
- cout << "5. Вывести результат в текстовый файл" << endl;
- cout << "6. Выйти из программы" << endl;
- int i; cin >> i; cin.ignore();
- return i;
- }
- void create() {
- if ((fl = fopen("lab9", "wb")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- fclose(fl);
- }
- void vvod()
- {
- if ((fl = fopen("lab9", "ab")) == NULL)
- if ((fl = fopen("lab9", "wb")) == NULL)
- {
- cout << "Файл не создан" << endl;
- return;
- }
- int n;
- cout << "Введите количество работников: ";
- cin >> n;
- spisok = new worker[n];
- for (int i = 0; i < n; i++)
- {
- cout << "Введите фамилию работника: ";
- cin >> rabotnik.surname;
- cout << "Введите дату рождения работника: ";
- cin >> rabotnik.birthdate;
- cout << "Введите дату первого рабочего дня работника: ";
- cin >> rabotnik.workdate;
- cout << endl;
- }
- fclose(fl);
- }
- void chit()
- {
- if ((fl = fopen("lab9", "rb")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- int n; n = _filelength(_fileno(fl)) / sizeof(worker);
- for (int i = 0; i < n; i++)
- {
- cout << "Фамилия работника: " << rabotnik.surname;
- cout << "Дата рождения работника: " << rabotnik.birthdate;
- cout << "Дата первого рабочего дня работника: " << rabotnik.workdate;
- cout << endl;
- }
- fclose(fl);
- }
- void reze()
- {
- if ((fl = fopen("lab9", "rb+")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- int n;
- n = _filelength(_fileno(fl)) / sizeof(worker);
- spisok = new worker[n];
- for (int i = 0; i < n; i++)
- {
- fread (&spisok, sizeof(spisok), n, fl);
- if (spisok[i].birthdate < 1980)
- {
- cout << "Работник, родившийся до 1980 года: " << spisok[i].surname << endl;
- cout << "Дата его рождения: " << spisok[i].birthdate << endl;
- cout << "Дата его первого рабочего дня: " << spisok[i].workdate;
- cout << endl;
- }
- else cout << "> 1980";
- }
- delete[] spisok;
- fclose(fl);
- }
- void rezf()
- {
- if ((fl = fopen("lab9", "ab+")) == NULL)
- {
- cout << "Файл не создан" << endl;
- }
- int n;
- n = _filelength(_fileno(fl)) / sizeof(worker);
- for (int i = 0; i < n; i++)
- {
- fread (&spisok, sizeof(spisok), n, fl);
- if (spisok[i].birthdate < 1980)
- {
- cout << "Работник, родившийся до 1980 года: " << spisok[i].surname << endl;
- cout << "Дата его рождения: " << spisok[i].birthdate << endl;
- cout << "Дата его первого рабочего дня: " << spisok[i].workdate;
- cout << endl;
- }
- else cout << "> 1980";
- }
- fclose(fl);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement