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

Страницы работы

Содержание работы

Министерство образования Республики Беларусь

Учреждение образования

Белорусский государственный университет

информатики и радиоэлектроники

Специальность: Маркетинг

КОНТРОЛЬНАЯ  РАБОТА 1

по курсу «Объектно-ориентированное программирование

и проектирование»

Вариант № 1

Выполнил:

.

группа №702221с, шифр №21

Адрес: 220039, г. Минск, ул. Чкалова,

дом № 19, квартира № 3 е-мейл cardinal@iptel.by


Контрольная работа № 1

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

Задание:

Элементом класса является список студентов группы, который включает: фамилию, имя, отчество студента; номер группы(пять цифр и одна буква); средний балл и доход на одного члена семьи. Количество студентов в группе не более 30, но заранее не известно. Определите массив объектов указанного типа(групп не более 25).

Напишите программу представления места в общежитии. Общежитие в первую очередь представляется тем студентам, у кого доход на члена семьи меньше трех минимальных зарплат, затем остальным в порядке уменьшения среднего балла. Количество мест в общежитии задается с клавиатуры.

Выведите общий алфавитный список очерёдности представления мест в общежитие по всем группам.

В состав класса входят следующие функции-члены класса:

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

-  конструктор копирования;

-  деструктор;

-  функция просмотра текущего состояния объектов PRINTQ.

Краткие теоретические сведения

Листинг программы:

Файл «Student.h»

#include <stdio.h>

#include <conio.h>

#include <string.h>

//информация о номере группы

class GroupNumber

{

public:    

int num[5];//цифры номера группы

char ch;   //буква в номере группы

};

//класс с информацией об однос студенте

class CStudent 

{

char *fam;              //фамилия

char *name;             //имя

char *otch;             //отчество

GroupNumber grNum;  //номер группы

double srBall;      //средний балл

double dochod;          //доход на одного члена семьи

bool   is_hostel;   //признак, предоставлено ли место в общежитии

//true - предоставлено, false - нет

public:

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

virtual ~CStudent();

CStudent &operator = (const CStudent &); //перегрузка оператора присваивания

void setGroupNumber(int array[], char gr_ch);//устанавливает значения в номер группы

void printGroupNumber();//выводит значение номера группы

void InitStudentData(); //метод для внесения информации об одном студенте

void PrintStudentData();//метод для вывода информации об одном студенте

double getDochod(); //получить значение свойства доход

double getsrBall(); //получить значение свойства средний балл

void setIs_hostel(bool to_give); //установить значение свойства is_hostel

bool getIs_hostel(); //получить значение свойства is_hostel

};

Файл «Student.cpp»

// Student.cpp: implementation of the CStudent class.

//

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

#include "Student.h"

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

// Construction/Destruction

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

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

CStudent::CStudent()

{

//инициализация значениями по умолчанию

fam  = new char [20];//фамилия

name = new char [20];//имя

otch = new char [20];//отчество

strcpy(fam,  "QQQQQQ");

strcpy(name, "QQQQQQ");

strcpy(otch, "QQQQQQ");

//номер группы

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

grNum.num[i] = i;

grNum.ch = 'a';

srBall = 0;        //средний балл

dochod = 0;        //доход на одного члена семьи

is_hostel = false; //место в общежитии не предоставлено

}

CStudent::~CStudent()

{

}

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

// Implementation methods

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

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

CStudent &CStudent::operator = (const CStudent & st)               

{

if( this != &st) // проверка, не копирование ли объекта в себя

{

// освобождаем память старых строк

delete fam;

delete name;

delete otch;

// выделяем память под новые строки

fam  = new char[ strlen(st.fam)  ];

name = new char[ strlen(st.name) ];

otch = new char[ strlen(st.otch) ];

//копируем в текущий объект полученные значения

strcpy(fam,  st.fam);

strcpy(name, st.name);

strcpy(otch, st.otch);

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

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

grNum.num[i] = st.grNum.num[i];

grNum.ch = st.grNum.ch;

srBall = st.srBall;       //средний балл

dochod = st.dochod;           //доход на одного члена семьи

is_hostel = st.is_hostel; //место в общежитии не предоставлено

}

return *this;

}

//устанавливает значения в номер группы

void CStudent::setGroupNumber(int array[], char gr_ch)

{

//присваиваем переданные значения текущему объекту

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

grNum.num[i] = array[i];

grNum.ch = gr_ch;

}

//выводит значение номера группы

void CStudent::printGroupNumber()

{

//выводится номер группы

printf("\n\ngr. ");

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

printf("%d", grNum.num[i] );

printf("%c", grNum.ch );

}

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

void CStudent::InitStudentData()

Похожие материалы

Информация о работе