Написать программу, которая выводит на экран информацию в отношении сотрудников частной клиники. Каждая структура содержит поля: фамилия врача, специализация, стаж работы. Определить: список врачей по специальности Х с указанием стажа работы; средний стаж сотрудников клиники. Специализация Х вводится по запросу с клавиатуры 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; } Код #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; } --- Сообщение объединено с предыдущим 11 дек 2019 --- Сообщение объединено с предыдущим 11 дек 2019 --- Сообщение объединено с предыдущим 11 дек 2019 --- Сообщение объединено с предыдущим 11 дек 2019 --- Сообщение объединено с предыдущим 11 дек 2019