Написать программу, которая выводит на экран информацию в отношении сотрудников частной клиники. Каждая структура содержит поля: фамилия врача, специализация, стаж работы. Определить: список врачей по специальности Х с указанием стажа работы; средний стаж сотрудников клиники. Специализация Х вводится по запросу с клавиатуры 1. Реализовать следующие функции: 1.1 Инициализация элементов массива: а) с клавиатуры; б) из файла; 1.2 Вывод элементов массива на экран. 1.3 Запись элементов массива в файл. 1.4 Выборка записей из файла и вывод их на экран, согласно критерию (каждая выборка реализована в отдельной функции).
#include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <fstream> #include <Windows.h> using namespace std; struct WorkerClinics{//Структура сотрудников клиники string surname; string specialization; int experience; WorkerClinics(string surname,string specialization,int experience){ this->surname=surname; this->specialization=specialization; this->experience=experience; } }; void OutputWorker(vector<WorkerClinics>& list){//Функция вывода сотрудников for(int i =0;i<list.size();i++){ cout<<"Фамилия Сотрудника -> "<<list[i].surname<<endl; cout<<"Специализация Сотрудника ->"<<list[i].specialization<<endl; cout<<"Опыт Сотрудника -> "<<list[i].experience<<endl; } } void InputVectorInformation(vector<WorkerClinics>& list){//Функция инициализации елементов cout<<"Введите количество сотрудников частной клиники\n"; int count;string surname,specialization;int experience; cin>>count; cout<<"Заполняем информацию о сотрудниках\n"; for(int i =0 ;i<count;i++){ cout<<"Введите фамилию сотрудника -> \n"; cin>>surname; cout<<"Введите специализацию сотрудника ->\n"; cin>>specialization; cout<<"Введите опыт сотрудника -> \n"; cin>>experience; list.push_back(WorkerClinics(surname,specialization,experience)); } } void WritetoFile(vector<WorkerClinics>& work,vector<WorkerClinics>& listWorkerSpeciality){//Функция записи списка врачей и списка врачей специальности X cout<<"Запись елементов в файл (списка врачей и списка по специальности X)"<<endl; ofstream worker_file("information.dat"); worker_file<<"Список Работников Клиники"<<endl; for(int i =0 ;i<work.size();i++){ worker_file<<"Фамилия Сотрудника: "<<work[i].surname<<endl; worker_file<<"Специализация Сотрудника: "<<work[i].specialization<<endl; worker_file<<"Стаж работы Сотрудника: "<<work[i].experience<<" лет"<<endl; worker_file<<"--------------------------------------"<<endl; } worker_file<<"Список Работников Клиники по Специализации X"<<endl; for(int i =0 ;i<listWorkerSpeciality.size();i++){ worker_file<<"Фамилия Сотрудника: "<<listWorkerSpeciality[i].surname<<endl; worker_file<<"Специализация Сотрудника: "<<listWorkerSpeciality[i].specialization<<endl; worker_file<<"Стаж работы Сотрудника: "<<listWorkerSpeciality[i].experience<<" лет"<<endl; worker_file<<"--------------------------------------"<<endl; } worker_file.close(); } void CreateNewList(vector<WorkerClinics>& work,vector<WorkerClinics>& listWorkerSpeciality)//Функция определения списка врачей по специальности Х с указанием стажа работы { cout<<"Определяем новый список по специализации X\n"; cout<<"Введите специализацию Сотрудника X\n"; string speciality; cin>>speciality; for(int i =0;i<work.size();i++){ if(work[i].specialization==speciality) listWorkerSpeciality.push_back(work[i]); } } void ReadFromFile(string line,vector<WorkerClinics>& listWorker){//Читаем данные из файла ifstream date_worker(line); string information; cout<<"Работаем с английскими символами, проблема с кодировкой на устройствах"<<endl; while(!date_worker.eof()){ int experience;string surname;string specialization; date_worker>>surname; date_worker>>specialization; date_worker>>experience; listWorker.push_back(WorkerClinics(surname,specialization,experience)); } } int main(){ setlocale(LC_ALL,"RUS"); SetConsoleCP(1251); // Ввод с консоли в кодировке 1251 SetConsoleOutputCP(1251); int act; vector<WorkerClinics> listWorker; vector<WorkerClinics> listWorkerspecialityx; cout<<"Как вы хотите заполнить вектор? \n 1 - с клавиатуры\n 2 - из файла\n"; cin>>act; switch(act){ case 1: { InputVectorInformation(listWorker); OutputWorker(listWorker); CreateNewList(listWorker,listWorkerspecialityx); cout<<"Новый сформированный список по специальности X\n"; OutputWorker(listWorkerspecialityx); WritetoFile(listWorker,listWorkerspecialityx); break; } case 2: { cout<<"Заполняем данные с файла, он должен лежать рядом с файлом"<<endl; cout<<"Введите название файла с расширением"<<endl; string line; cin>>line; ReadFromFile(line,listWorker); OutputWorker(listWorker); CreateNewList(listWorker,listWorkerspecialityx); cout<<"Новый сформированный список по специальности X\n"; OutputWorker(listWorkerspecialityx); WritetoFile(listWorker,listWorkerspecialityx); break; } default:{ cout<<"Перезапустите программу еще раз, произошла ошибка\n"; } } getchar(); system("pause"); return 0; } Code #include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <fstream> #include <Windows.h> using namespace std; struct WorkerClinics{//Структура сотрудников клиники string surname; string specialization; int experience; WorkerClinics(string surname,string specialization,int experience){ this->surname=surname; this->specialization=specialization; this->experience=experience; } }; void OutputWorker(vector<WorkerClinics>& list){//Функция вывода сотрудников for(int i =0;i<list.size();i++){ cout<<"Фамилия Сотрудника -> "<<list[i].surname<<endl; cout<<"Специализация Сотрудника ->"<<list[i].specialization<<endl; cout<<"Опыт Сотрудника -> "<<list[i].experience<<endl; } } void InputVectorInformation(vector<WorkerClinics>& list){//Функция инициализации елементов cout<<"Введите количество сотрудников частной клиники\n"; int count;string surname,specialization;int experience; cin>>count; cout<<"Заполняем информацию о сотрудниках\n"; for(int i =0 ;i<count;i++){ cout<<"Введите фамилию сотрудника -> \n"; cin>>surname; cout<<"Введите специализацию сотрудника ->\n"; cin>>specialization; cout<<"Введите опыт сотрудника -> \n"; cin>>experience; list.push_back(WorkerClinics(surname,specialization,experience)); } } void WritetoFile(vector<WorkerClinics>& work,vector<WorkerClinics>& listWorkerSpeciality){//Функция записи списка врачей и списка врачей специальности X cout<<"Запись елементов в файл (списка врачей и списка по специальности X)"<<endl; ofstream worker_file("information.dat"); worker_file<<"Список Работников Клиники"<<endl; for(int i =0 ;i<work.size();i++){ worker_file<<"Фамилия Сотрудника: "<<work[i].surname<<endl; worker_file<<"Специализация Сотрудника: "<<work[i].specialization<<endl; worker_file<<"Стаж работы Сотрудника: "<<work[i].experience<<" лет"<<endl; worker_file<<"--------------------------------------"<<endl; } worker_file<<"Список Работников Клиники по Специализации X"<<endl; for(int i =0 ;i<listWorkerSpeciality.size();i++){ worker_file<<"Фамилия Сотрудника: "<<listWorkerSpeciality[i].surname<<endl; worker_file<<"Специализация Сотрудника: "<<listWorkerSpeciality[i].specialization<<endl; worker_file<<"Стаж работы Сотрудника: "<<listWorkerSpeciality[i].experience<<" лет"<<endl; worker_file<<"--------------------------------------"<<endl; } worker_file.close(); } void CreateNewList(vector<WorkerClinics>& work,vector<WorkerClinics>& listWorkerSpeciality)//Функция определения списка врачей по специальности Х с указанием стажа работы { cout<<"Определяем новый список по специализации X\n"; cout<<"Введите специализацию Сотрудника X\n"; string speciality; cin>>speciality; for(int i =0;i<work.size();i++){ if(work[i].specialization==speciality) listWorkerSpeciality.push_back(work[i]); } } void ReadFromFile(string line,vector<WorkerClinics>& listWorker){//Читаем данные из файла ifstream date_worker(line); string information; cout<<"Работаем с английскими символами, проблема с кодировкой на устройствах"<<endl; while(!date_worker.eof()){ int experience;string surname;string specialization; date_worker>>surname; date_worker>>specialization; date_worker>>experience; listWorker.push_back(WorkerClinics(surname,specialization,experience)); } } int main(){ setlocale(LC_ALL,"RUS"); SetConsoleCP(1251); // Ввод с консоли в кодировке 1251 SetConsoleOutputCP(1251); int act; vector<WorkerClinics> listWorker; vector<WorkerClinics> listWorkerspecialityx; cout<<"Как вы хотите заполнить вектор? \n 1 - с клавиатуры\n 2 - из файла\n"; cin>>act; switch(act){ case 1: { InputVectorInformation(listWorker); OutputWorker(listWorker); CreateNewList(listWorker,listWorkerspecialityx); cout<<"Новый сформированный список по специальности X\n"; OutputWorker(listWorkerspecialityx); WritetoFile(listWorker,listWorkerspecialityx); break; } case 2: { cout<<"Заполняем данные с файла, он должен лежать рядом с файлом"<<endl; cout<<"Введите название файла с расширением"<<endl; string line; cin>>line; ReadFromFile(line,listWorker); OutputWorker(listWorker); CreateNewList(listWorker,listWorkerspecialityx); cout<<"Новый сформированный список по специальности X\n"; OutputWorker(listWorkerspecialityx); WritetoFile(listWorker,listWorkerspecialityx); break; } default:{ cout<<"Перезапустите программу еще раз, произошла ошибка\n"; } } getchar(); system("pause"); return 0; } The post was merged to previous Dec 11, 2019 The post was merged to previous Dec 11, 2019 The post was merged to previous Dec 11, 2019 The post was merged to previous Dec 11, 2019 The post was merged to previous Dec 11, 2019