#define MAX_STUDENT_IN_GROUP 30 //определили максимальное количество студентов в одной группе
#define MIN_SALARY 35000 //минимальная ЗП
void main()
{
int i = 0, j = 0, k = 0;
double temp;
int group_count; //количество групп
int student_count; //количество студентов в одной группе
int places_count; //количество мест в общежитии
int total_student_count = 0; //количество студентов в одной группе
//для ввода номера группы
int grNum_num[5];
char a;
CStudentGroup** group_list; //объявляем указатель на массив объектов типа группа студентов
CStudent* list_for_hostel; //объявляем указатель на массив объектов типа студент
//- список нуждающихся с низкой ЗП
CStudent* list_other_needs; //список остальных нуждающихся
try
{
printf("Input group count:");
scanf("%i", &group_count); //вводим количество групп
//если количество групп задано некорректно, прекращаем работу программы
if (group_count < 1 || group_count > MAX_GROUP_COUNT)
{
printf("\ngroup count error!!!\nmast be from 1 to %d", MAX_GROUP_COUNT);
throw(1);//генерируем ошибку ипереходим к концу программы на блок catch
}
else //если количество групп задано корректно
{
//выделяем место под список групп
group_list = new CStudentGroup*[group_count];
for(i = 0; i < group_count; i++)
{
printf("Input student count in group %i:", i + 1);
scanf("%i", &student_count); //вводим количество студетнов в одной группе
//считаем количество студентов во всех группах
total_student_count += student_count;
//если количество студентов в группе задано некорректно, прекращаем работу программы
if (student_count < 1 || student_count > MAX_STUDENT_IN_GROUP)
{
printf("\nstudent count error!!!\nmast be from 1 to %d", MAX_STUDENT_IN_GROUP);
throw(1);//генерируем ошибку ипереходим к концу программы на блок catch
}
else
{
//выделяем место под список студентов группы
group_list[i] = new CStudentGroup (student_count);
//вводятся с клавиатуры цифры для номера группы
printf("Input 5 figures for group number:");
for(k = 0; k < 5; k++)
scanf("%d", &grNum_num[k] );
//вводится с клавиатуры буква в номере группы
printf("Input char for group number:");
fflush(stdin);
scanf("%c", &a);
//задаём данные о студентах группы
for(j = 0; j < student_count; j++)
{
group_list[i]->list[j].setGroupNumber(grNum_num, a);
group_list[i]->list[j].InitStudentData();
}
}
}
printf("\n--------------------");
printf("\nTotal students list:");
printf("\n--------------------");
//просмотр текущего состояния объектов списка студентов
for(i = 0; i < group_count; i++)
group_list[i]->PRINTQ();
printf("\n--------------------");
printf("\nStudents list for hostel:");
printf("\n--------------------");
//формируем список предоставления общежития
printf("\nInput places count in hostel:");
fflush(stdin);
scanf("%d", &places_count);
int temp_places_count = places_count;
i = 0;
//формируем и выводи список тех студентов, коотрым предоставлено общежитие
//из-за низкого среднего дохода
for(i = 0; i < group_count; i++)
{
//получаем количество студентов в группе
k = group_list[i]->getStudentCount();
for(j = 0; j < k; j++)
{
//получаем доход текущего студента
temp = group_list[i]->list[j].getDochod();
//если доход меньше 3-х минимальных зарплат
if (temp <= MIN_SALARY * 3)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.