Построение системы объектов

Для учёта каждого объекта, во все объекты введём понятие идентификатор объектов (уникальный номер каждого объекта), счётчик живых объектов (количество на данный момент времени существующих объектов), счётчик всех объектов (количество объектов, созданных за всё время работы программы). Эти данные нам будут сообщать конструктор и деструктор, то есть:

Конструктор/деструктор сообщает ID номер созданного/удалённого объекта.

Атрибуты и методы общие для всех классов:

Атрибуты:

const unsigned int id – идентификатор объекта.

static unsigned int counter – счетчик “живых” объектов.

static unsigned int counter_all – счетчик всех объектов.

Методы:

const unsigned int GetID(); - получить id объекта.

static unsigned int CountObject(); - получить количество созданных объектов класса

1)Объект «Точка» предназначен для описания объектов «Трапеция», «Четверть дуги окружности», «Отрезок» и «Изображение». Класс разработан ранее (летняя практика и использовался в лаб.№1)

Будут добавлены атрибуты и методы общие для всех классов

2) Объект «Трапеция» необходим для представления объекта «Изображение».

Атрибуты:

Point P1,P2,P3,P4 – точки оснований;

const double h – высота;

Методы:

Trapeze (const Point P1, const Point P2, const double h, const double d); - говорящий конструктор

~ Trapeze() – говорящий деструктор

void MoveTo(const Point p);

void MoveTodXdY(const double x,const double y);

void СonsSFigure(const Point p);

Point GetPoint1 () const – получить точку Р1;

Point GetPoint2 () const – получить точку Р2;

Point GetPoint3 () const – получить точку Р3;

Point GetPoint4 () const – получить точку Р4;

double GetH () const – получить высоту;

3) Объект «Четверть дуги окружности» необходим для представления объекта «Изображение».

Атрибуты:

Point Р5 – координаты центра

const double r – радиус

Методы:

Circle (const Point Р5, const double r);

~ Circle ();

void MoveTo(const Point p);

void MoveTodXdY(const double x, const double y);

void ConsSFigure (const Point p);

Point GetPoint5() const; - получить точку P5;

double GetR() const; - получить радиус;


4) Объект «Отрезок» необходим для представления объекта «изображение».

Атрибуты:

Point L1,L2 – точки концов;

Методы:

Piece (const Point L1, const Point L2); - говорящий конструктор

~ Piece() – говорящий деструктор

void MoveTo(const Point p);

void MoveTodXdY(const double x,const double y);

void ConsSFigure (const Point p);

Point GetLPoint1 () const – получить точку L1;

Point GetLPoint2 () const – получить точку L2;

5) Объект «изображение» ключевой объект задания.

Атрибуты:

Trapeze trapeze;

Piece piece;

Circle circle;

List<Point> points;

Методы:

Image(const Piece piece; const Circle circle; const Trapeze trapeze;);

~Image();

void MoveTo(const Point p);

void MoveTodXdY(const double x,const double y);

void ConsSFigure (const Point p);

List<Point> GetPoints() const;

Piece GetPiece () const;

Circle GetCircle () const;

Trapeze Get Trapeze () const;

6) Объект «набор изображений» представлен экземпляром шаблонного класса линейного однонаправленного списка с членом данных «изображение»

Перечисление всех имен классов объектов используемых в проекте:

Название класса Назначение (Объект) Примечание
Point Точка (класс разработан ранее, летняя практика)
Trapeze Трапеция  
Circle Четверть дуги окружности  
Piece Отрезок  
Image Изображение  
Elem Элемент линейного однонаправленного списка (для List) (см. лаб.1)
List Линейный однонаправленный список - точек (для объекта «Изображение») - «изображений» (см. лаб.1)

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: