Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "iostream"
- #include "fstream"
- #include "string.h"
- using namespace std;
- struct informacia//структура, содержащая данные сотрудника
- {
- char familya_inicialy[20];
- int year;
- int oklad;
- int stag;
- };
- int Kolichestvo_sotrudnikov(int&n)//вычисляет количество сотрудников из текстового файла для создания массива структур
- {
- char a[50];
- ifstream file;
- file.open("C:\\Games\\file1.txt", ios::in);//открываем файл
- if (file)
- {
- while (!file.eof())
- {
- file >> a;
- n++;
- }
- }
- else cout << " Ошибка! Файл не найден " << endl;
- file.close();
- n = n / 4;
- return n;
- }
- void chtenie_iz_faila(informacia *sotrudnik, int&n)//считывание из текстового файла и присваивание данных переменным элементов структур
- {
- ifstream file;
- file.open("C:\\Games\\file1.txt", ios::in);
- if (file)
- {
- for (int i = 0; i < n; i++)
- {
- file >> sotrudnik[i].familya_inicialy;
- file >> sotrudnik[i].year;
- file >> sotrudnik[i].oklad;
- file >> sotrudnik[i].stag;
- }
- }
- else cout << " Ошибка! Файл не найден " << endl;
- file.close();
- }
- void function1(informacia *sotrudnik, int &n)//функция для выполнения первого подпункта задачи(информация о конкретном сотруднике)
- {
- int nomer;
- cout << "\n\nВведите порядковый номер сотрудника: ";
- cin >> nomer;
- if ((nomer > n) || (nomer < 1))
- {
- cout << "Ошибка ввода данных" << endl;
- }
- else
- {
- cout << "Информация о выбранном сотруднике" << endl;
- cout << "Фамилия и инициалы: " << sotrudnik[nomer - 1].familya_inicialy << ", Год рождения: " << sotrudnik[nomer - 1].year << ", Оклад: " << sotrudnik[nomer - 1].oklad << ", Стаж: " << sotrudnik[nomer - 1].stag << endl;
- }
- }
- void new_massive(informacia *sotrudnik, informacia *sotrudnik2, int &n)
- {
- for (int i = 0; i < n; i++)
- {
- strcpy_s(sotrudnik2[i].familya_inicialy, sotrudnik[i].familya_inicialy);
- sotrudnik2[i].year = sotrudnik[i].year;
- sotrudnik2[i].oklad = sotrudnik[i].oklad;
- sotrudnik2[i].stag = sotrudnik[i].stag;
- }
- }
- void function2(informacia *sotrudnik, informacia *sotrudnik2, int &n)//функция для выполнения второго подпункта задачи(список сотрудников пенсионного возраста в алфавитном порядке)
- {
- new_massive(sotrudnik, sotrudnik2, n);
- int j;
- informacia t;
- for (int i = 0; i < n; i++)
- {
- t = sotrudnik2[i];
- j = i - 1;
- while ((j >= 0) && (strcmp(sotrudnik2[j].familya_inicialy, t.familya_inicialy) == 1))
- {
- sotrudnik2[j + 1] = sotrudnik2[j]; j--;
- }
- sotrudnik2[j + 1] = t;
- }
- cout << "\n\nСписок работников пенсионного возраста по алфавиту" << endl;
- cout << "| Фамилия и инициалы | Год рождения | Оклад | Стаж |" << endl;
- cout << "_______________________________________________________" << endl;
- for (int i = 0; i < n; i++)
- {
- if (sotrudnik2[i].year < 1955)
- cout << "| " << sotrudnik2[i].familya_inicialy << " | " << sotrudnik2[i].year << " | " << sotrudnik2[i].oklad << " | " << sotrudnik2[i].stag << " |" << endl;
- }
- cout << "_______________________________________________________" << endl;
- }
- void function3(informacia *sotrudnik, int &n)//функция для вычисления среднего оклада всех сотрудников
- {
- int summa = 0;
- for (int i = 0; i < n; i++)
- {
- summa += sotrudnik[i].oklad;
- }
- cout << "\n\nСредний оклад среди сотрудников: " << summa / n << endl;
- }
- void deistvie(informacia *sotrudnik, informacia *sotrudnik2, int &n)//функция-меню
- {
- char t;
- int f;
- cout << "Нажмите 'у' чтобы начать: ";
- cin >> t;
- cout << "\n действия(1 - информация о сотруднике, 2 - список сотрудников в алфавитном порядке, 3 - средний оклад) ";
- while (t = 'y')
- {
- cout << "\nВыберите действие: ";
- cin >> f;
- switch (f)
- {
- case 1: function1(sotrudnik, n); break;
- case 2: function2(sotrudnik, sotrudnik2, n); break;
- case 3: function3(sotrudnik, n); break;
- default: cout << "Ошибка данных" << endl;
- }
- cout << "\nПродолжить?\n(Нажмите <y> чтобы продолжить(менять раскладку на англ язык), в противном случае любую другую кнопку): ";
- cin >> t;
- if (t != 'y')
- break;
- }
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- setlocale(LC_ALL, "Russian");
- int kolichestvo = 0;
- Kolichestvo_sotrudnikov(kolichestvo);
- cout << "В файле содержалась информация о " << kolichestvo << " сотрудниках" << endl;
- informacia *sotrudnik = new informacia[kolichestvo];//создаем массив структур, содержащих информацию о сотрудниках отдела
- informacia *sotrudnik2 = new informacia[kolichestvo];
- chtenie_iz_faila(sotrudnik, kolichestvo);
- deistvie(sotrudnik, sotrudnik2, kolichestvo);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement