Класс. Объект. Конструкторы. Деструкторы. Массив объектов, страница 3

#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)