#include <iostream>
#include <iomanip>
using namespace std;
struct Anketa //Структура анкета
{
char Fio[64]; //ФИО 64 байта под символы
int Year; //Год рождения целочисленное
enum MarryStatus{nomarried,married} Marry; //семейного положение (перечисляемыми константами nomarried = 0 (холост) married =1 (в браке)
enum EducationStatus{aver,averspec,highspec} Education; //образование (перечисляемыми константами aver = 0 (среднее) averspec =1 (средне-специальное)
//highspec = 2 (высшее
int Stage; //стаж целочисленное (в годах)
char Dolj[16]; //Должность 16 байт под символы
};
void Print(Anketa Ank);
void Print (Anketa *Arr,int SizeArr);
int Menu (void)
{
cout<<"\t\tМЕНЮ"<<endl;
cout<<"1: Ввод данных"<<endl;
cout<<"2: Печать данных"<<endl;
cout<<"3: Поиск данных"<<endl;
cout<<"4: Выход"<<endl;
cout<<"Ваш выбор :";
int Variant;
cin>>Variant;
return Variant;
}
Anketa InputAnketa(void)
{
Anketa Temp;
system ("cls"); //Отчистим экран консоли
cout<<"\t\t Ввод нового сотрудника"<<endl;
cout<<"Введите ФИО Работника : ";
cin.ignore(); //Уберем последний символ ('\n') из потока
cin.getline(Temp.Fio,64,'\n');
cout<<"Введите год рождения работника: ";
cin>>Temp.Year;
bool Ctrl = false;
while (!Ctrl)
{
Ctrl = true;
cout<<"Введите семеное положение работника (1 - холост(а) / 2- состоит в браке): ";
int Marry;
cin>>Marry;
switch (Marry)
{
case 1 : Temp.Marry = Anketa::nomarried;
break;
case 2 : Temp.Marry = Anketa::married;
break;
default: Ctrl = false;
}
}
Ctrl = false;
while (!Ctrl)
{
Ctrl = true;
cout<<"Введите образование сотрудника (1 - среднее / 2- сред.спец. / 3 - высшее): ";
int Edu;
cin>>Edu;
switch (Edu)
{
case 1 : Temp.Education = Anketa::aver;
break;
case 2 : Temp.Education = Anketa::averspec;
break;
case 3 : Temp.Education = Anketa::highspec;
break;
default: Ctrl = false;
}
}
cout<<"Введите стаж работника (кол-во лет) : ";
cin>>Temp.Stage;
cout<<"Введите должность сотрудника: ";
cin.ignore();
cin.getline(Temp.Dolj,16,'\n');
cout<<endl<<endl<<"\t\t***Добавление выполнено***"<<endl;
system("pause");
system("cls");
return Temp;
}
void Print (Anketa *Arr,int SizeArr)
{
for (int i = 0; i<SizeArr; i++)
{
Print(Arr[i]);
}
}
void Print(Anketa Ank)
{
cout<<setw(16)<<" ФИО "<<setw(12)<<"Год рожд. "<<setw(12)<<"Сем. положение "<<setw(12)<<"Образование "<<setw(10)<<"Стаж "<<setw(12)<<"Должность "<<endl;
cout.setf(ios::left);
setlocale(LC_ALL,".866");
cout<<setw(16)<<Ank.Fio<<setw(12)<<Ank.Year<<setw(12)<<Ank.Marry;
setlocale(LC_ALL,"Russian");
cout<<endl;
}
void main(void)
{
setlocale(LC_ALL,"Russian");
Anketa Arr[20];
int SizeArr = 0;
int InputMenu;
do
{
InputMenu = Menu();
switch (InputMenu)
{
case 1:
Arr[SizeArr] = InputAnketa();
SizeArr++;
break;
case 2:
Print(Arr,SizeArr);
break;
case 3:
break;
}
}
while (InputMenu != 4);
}