
- •Отчет по лабораторной работе №3
- •Техническое задание
- •Назначение
- •1. Функциональные характеристики
- •2. Требования к надежности
- •3. Состав и параметры технических средств
- •Требования к программной документации
- •Иерархия классов
- •Класс tObject
- •Класс Organizacion
- •Kласс StrahComp
- •Класс SudoComp
- •Класс Zavod
- •Класс engineer
- •Класс worker
- •Класс Group
- •Главная функция
- •Реализация методов-итераторов
- •Пример программы
Класс SudoComp
Здесь описывается производный класс Organizacion от класса TObject. В нём инициализируются стандартный конструктор, конструктор с параметрами, коструктор копирования, деструктор, функция вывода списка. функции установки пола.
class SudoComp : public Organizacion
{
public:
//конструкторы
SudoComp();
SudoComp(char* Name, int SexOfSudoComp);
SudoComp(const SudoComp&);
//деструктор
~SudoComp();
//функция вывода
void ShowFunc();
void setSex_Of_SudoComp(int SexOfSudoComp);
protected:
int Sex_Of_SudoComp;// пол людей в Судострой.Компания
};
Класс Zavod
Здесь описывается производный класс Organizacion от класса TObject. В нём инициализируются стандартный конструктор, конструктор с параметрами, коструктор копирования, деструктор, функция вывода списка. функциия установки пола.
class Zavod : public Organizacion
{
public:
//конструкторы
Zavod();
Zavod(char *Name, int SexOfZavod);
Zavod(const Zavod&);
//деструктор
~Zavod();
//функция вывода
void ShowFunc();
//функция установки пола людей в Заводе
void setSex_Of_Zavod(int SexOfZavod);
protected:
int Sex_Of_Zavod;// пол людей в Заводе
};
Клаcc CLERK
// Описание виртуального класса CLERK
Здесь описывается производный класс Organizacion от класса TObject. В нём инициализируются стандартный конструктор, конструктор с параметрами, коструктор копирования, деструктор, функция добавления в группу и её просмотра.
class CLERK : public group
{
public:
CLERK(){}
CLERK(char * Name) : group(Name){}
CLERK(const CLERK & GROUP){}
~CLERK(){}
// Добавление объекта в группу
void Add(TObject *obj);
// Просмотр группы
void ShowFunc(void);
};
Класс engineer
// Описание виртуального класса ENGINEER
Здесь описывается производный класс Organizacion от класса TObject. В нём инициализируются стандартный конструктор, конструктор с параметрами, коструктор копирования, деструктор, функция добавления в группу
class ENGINEER : public group
{
public:
ENGINEER(){}
ENGINEER(char * Name) : group(Name){}
ENGINEER(const ENGINEER & GROUP){}
~ENGINEER(){}
// Добавление объекта в группу
void Add(TObject *obj);
};
Класс worker
// Описание виртуального класса WORKER
Здесь описывается производный класс Organizacion от класса TObject. В нём инициализируются стандартный конструктор, конструктор с параметрами, коструктор копирования, деструктор, функция добавления в группу и итератор.
typedef void(*PF)(TObject*, int);
class WORKER : public group
{
public:
//конструкторы и деструктор
WORKER(){}
WORKER(char * Name) : group(Name){}
WORKER(const WORKER & GROUP){}
~WORKER(){}
// Добавление объекта в группу
virtual void Add(TObject *obj);
// Создание итератора
void ForEach(PF action, int Sex_Of_StrahComp);
};
Item
// Связывает объекты TObject в список
struct Item
{
//typedef void(*PF)(TObject*);
// Указатель на следующую структуру списка
Item * next;
// Указатель, по которому хранится элемент
TObject * item;
Item(void)
{
item = NULL;
next = NULL;
}
Item(TObject* Obj, Item* Next = NULL)
{
item = Obj;
next = Next;
}
~Item(void)
{
delete item;
if(next)
delete next;
}
};