Здавалка
Главная | Обратная связь

Зав.кафедрою Зав.кафедрою



2. Для включення об'єктів у групу використовувати третій спосіб (через зв'язаний список структур типу TItem).

3. Приклад визначення доданих абстрактних класів:

class TObject

{

public:

virtual void Show()=0;};

class TDepartment:public TObject // абстрактний клас-група

{

protected:

char name[20]; // найменування

TPerson* head; // керівник

TItem* last; // покажчик на початок зв'язаного списку структур TItem

public:

TDepartment(char*,TPerson*);

TDepardment(TDepartment&);

~ TDepartment();

char* GetName();

TPerson* GetHead();

void SetName(char* NAME);

void SetHead(TPerson* p);

void Insert(TObject* p);

virtual void Show()=0;

};

4.Ієрархія об'єктів створюється в такий спосіб (на прикладі ФАКУЛЬТЕТУ):

а)Створюється порожній ФАКУЛЬТЕТ.

б)Створюється порожня КАФЕДРА.

в)Створюються ВИКЛАДАЧІ і включаються в КАФЕДРУ.

г)КАФЕДРА включається у ФАКУЛЬТЕТ.

д) теж повторюється для іншої кафедри.

е)Створюється порожня СТУДЕНТСЬКА ГРУПА.

ж)Створюються СТУДЕНТИ і включаються в СТУДЕНТСЬКУ ГРУПУ.

з) СТУДЕНТСЬКА ГРУПА включається у ФАКУЛЬТЕТ.

и) теж повторюється для іншої студентської групи.

5.Видаляється ФАКУЛЬТЕТ (при виклику деструктора) у зворотному порядку.

6.Метод-ітератор визначається в неабстрактних класах-групах на основі обраних запитів.

Наприклад, для класу TStudentGroup може бути запропонований ітератор

void TStudentGroup::ForEach(PF action, float parametr);

де action - покажчик на функцію, що повинна бути виконана для всіх об'єктів, включених у групу(у даному випадку для всіх СТУДЕНТІВ), parametr-передана процедурі додаткова інформація..

У якості переданої методу функції може бути запропонована, наприклад, така: “вивести список студентів, що мають рейтинг не нижче заданого”

void MyProc(TObject* p,float rate)

{

if (((TStudent*)p) ->GetGrade()>=rate) cout<<(((TStudent*)p) ->GetName());

}

7. Студент визначає передану ітератору функцію на основі запитів, що повинні бути виконані викликом ітератора. Варіанти запитів приведені в додатку.

Зміст звіту.

1..Постановка задачі.

2.Ієрархія класів.

3.Ієрархія об'єктів.

4.Визначення класів( доданих чи змінених у порівнянні з лабораторною роботою №2).

5.Реалізація для одного не абстрактного класу-групи всіх методів.

6.Реалізація ітератора.

7.Реалізація переданої ітератору функції.

8.Листинг демонстраційної програми.

Додаток.Варіанти запитів.

Імена всіх осіб чоловічої(жіночої) статі.

Імена студентів зазначеного курсу.

Імена і посада викладачів зазначеної кафедри.

Імена службовців зі стажем не менш заданого.

Імена службовців заданої професії.

Імена робітників заданого цеху.

Імена робітників заданої професії.

Імена студентів, що здали всі (заданий) іспити на відмінно(добре і відмінно).

Імена студентів, що не здали всі (хоча б один) іспит.

Імена всіх монархів на заданому континенті.

Найменування всіх деталей(вузлів) вхідних у заданий вузол (механізм).

Найменування всіх книг у бібліотеці(магазині), що вийшли не раніше зазначеного року.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.