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

{

float temp = 0;

printf("Input family name:");

scanf("%s", fam);//вводится с клавиатуры фамилия

printf("Input name:");

scanf("%s", name);//вводится с клавиатуры имя

printf("Input patronymic:");

scanf("%s", otch);//вводится с клавиатуры отчество

printf("Input average ball:");

fflush(stdin);

scanf("%f", &temp);//вводится с клавиатуры средний балл

srBall = temp;

printf("Input income:");

fflush(stdin);

scanf("%f", &temp);//вводится с клавиатуры доход на одного члена семьи

dochod = temp;

}

//метод для вывода информации об одном студенте

void CStudent::PrintStudentData()

{

printGroupNumber();

printf("\n%s ", fam);//выводится фамилия

printf("%s ", name);//выводится имя

printf("%s", otch);//выводится отчество

printf("\naverage ball: %f", srBall);//выводится средний балл

printf("\nincome: %f", dochod);//выводится доход на одного члена семьи

//место в общежитии

if (is_hostel)

printf("\nplace in hostel allow"); //предоставлено

else

printf("\nplace in hostel not allow"); //не предоставлено

}

//получить значение свойства доход

double CStudent::getDochod()

{

return dochod;

}

//установить значение свойства is_hostel

void CStudent::setIs_hostel(bool to_give)

{

is_hostel = to_give;

}

//получить значение свойства is_hostel

bool CStudent::getIs_hostel()

{

return is_hostel;

}

//получить значение свойства средний балл

double CStudent::getsrBall()

{

return srBall;

}

Файл «StudentGroup.h»

#include "Student.h"

class CStudentGroup 

{

int student_count; //количество студентов в группе

public:

CStudent * list;   //список студентов

CStudentGroup(); //конструктор по умолчанию

CStudentGroup(int count); //конструктор с параметрами

CStudentGroup(const CStudentGroup & st); // конструктор копирования

virtual ~CStudentGroup();

void PRINTQ();//просмотр текущего состояния объектов списка

int getStudentCount();//возвращает количество студентов в группе

};

Файл «StudentGroup.cpp»

#include "StudentGroup.h"

//////////////////////////////////////////////////////////////////////

// Construction/Destruction

//////////////////////////////////////////////////////////////////////

//конструкто по умолчанию

CStudentGroup::CStudentGroup()

{

}

//конструктор с параметрами

//передаём количество студентов в группе

CStudentGroup::CStudentGroup(int count) : student_count(count)

{

//создаём список студентов с заданным количеством человек count

list = new CStudent[student_count];

}

// описание конструктора копирования

CStudentGroup::CStudentGroup(const CStudentGroup &st)

{

list = new CStudent[st.student_count]; // выделяем память под this->list

student_count = st.student_count;

CStudent temp_obj;

for(int i = 0; i < student_count; i++)

{

list[i] = st.list[i];

}

}

CStudentGroup::~CStudentGroup()

{

}

//////////////////////////////////////////////////////////////////////

// Implementation methods

//////////////////////////////////////////////////////////////////////

//просмотр текущего состояния объектов списка

void CStudentGroup::PRINTQ()

{

for(int i = 0; i < student_count; i++)

{

list[i].PrintStudentData();

}

}

//возвращает количество студентов в группе

int CStudentGroup::getStudentCount()

{

return student_count;

}

Файл «main_program.cpp»

#include "StudentGroup.h"

#define MAX_GROUP_COUNT 25       //определили максимальное количество групп