Сам код:
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <cstdlib>
#include <ctime>
using namespace std;
#pragma hdrstop
#pragma argsused
char* rus(const char* text);//функция для распознавания русских символов
int compare(const void* worker1, const void* worker2);//функция для сортировки
const int k = 30;//объявление именованный констант
struct Worker //объявление струкуры
{
char fio[k];//объявление
char prof[k];//полей
int god;//структуры
};
int main(int argc, char* argv[]);
{
int i, n;
bool not_found;
int staj;
struct tm* tim;
time_t tt = time(NULL);
tim = localtime(&tt);
int current_year = tim->tm_year + 1900;
cout << rus("Введите количесвто структур WORKER: ");
cin >> n;
cout >> endl;
Worker* WORKER = new Worker[n];//выделение в памяти место под массив структур
for (int i = 0; i < n; i++)
{
cout << (i + 1) << rus(".Введите фамилию и инициалы: ");
cin.ignore(); cin.getline(WORKER[i].fio, k)//ввод
cout << rus(" Введите название должности: ");
cin.getline(WORKER[i].prof, k);
cout << rus(" Введите год поступления: "); cin >> WORKER[i].god;//в структуру
cout << endl;
}
qsort(WORKER, n, sizeof(Worker), compare);//вызов функции для сортировки
cout << rus(" Записи упорядоченные по алфавиту:\n\n");
for (int i = 0; i < n; i++)
{//вывод отсортированной структуры
cout << rus(" Фамилия и инициалы: ") << WORKER[i].fio << endl;
cout << rus(" Должность: ") << WORKER[i.prof << endl;
cout << rus(" Год поступления: ") << WORKER[i].god;
cout << endl << endl;
}
cout << rus("\n Информация о людях, чей стаж превышает значение введенного с клавиатуры: ") << endl;
while (true)
{
cout << rus("Введите стаж работы или 0 для окончания: "); cin >> staj;
cout << endl;
if (0 == staj)break;
not_found = false;
for (int i = 0; i < n; i++)
{
if (current_year - WORKER[i].god > staj)
{
cout << rus(" Фамилия и инифицалы: ") << WORKER[i].fio << endl;//вывод
cout << rus(" Должность: ") << WORKER[i].prof << endl;
not_found = true;
cout << endl;
}
}//если нет такой информации выводится сообщение
if (not_foud == false)cout << rus("Таких рабонков нет!") << endl << endl;
}
getch();
return 0;
}
