Класс «Trapeze» (Трапеция)
Атрибуты:
Point P1,P2,P3,P4 – точки оснований;
const double h – высота;
Название | Предусловия | Постусловия |
Trapeze | P2– точка большего основания h – высота>0 | this->P2=P2 this->h=h Р1=Р2-> MoveTodXdY(-а/2;0) Р4=Р1-> MoveTodXdY(2а;0) Р3=Р2-> MoveTodXdY(2а;0) |
~ Trapeze | P1,P2,P3,P4 – точки основания h – высота | экземпляр класса разрушен |
MoveTo | P1 – точка основания | P1=p |
MoveTodXdY | (dx Є R) & (dy Є R) | P1-> MoveTodXdY(dx,dy) |
ConsSFigure | Point – точка отн. кот. строится симметрия | P2->ConsSР(Point) |
GetPoint1 | P1 – точка основания | P11=P1 |
GetPoint2 | P2 – точка основания | P21=P |
GetPoint3 | P3 – точка основания | P31=P3 |
GetPoint4 | P4 – точка основания | P41=P4 |
GetH | h - высота | h1=h |
Инвариант: (P1.x Є R) && (P1.y Є R) && (P2.x Є R) && (P2.y Є R) && (P3.x Є R) && (P3.y Є R) && (P4.x Є R) && (P4.y Є R) && (h>0) && (a=1/3L)&&(d=2a), где R – подмножество вещественных чисел в диапазоне (-500, 500)
Класс «Circle» (Четверть дуги окружности)
Атрибуты: Атрибуты:
Point Р5 – координаты центра
const double r – радиус
Название | Предусловия | Постусловия |
Circle | P5 – центр. r=L | this->P5=P5 this->r=r |
~ Circle | P5 – центр. r - радиус | экземпляр класса разрушен |
MoveTo | P5 - центр | P5=p |
MoveTodXdY | (dx Є R) & (dy Є R) | P5-> MoveTodXdY(dx,dy) |
ConsSFigure | Point – точка отн. кот. строится симметрия | Р5->consSP(Point) |
GetPoint5 | P5 – центр. | P51=P5 |
GetR | r - радиус | r1=r |
Инвариант:
|
|
(P5.x Є R) && (P5.y Є R) && (r= L), где R – подмножество вещественных чисел в диапазоне (-500, 500)
Класс «Piece» (Отрезок)
Атрибуты:
Point L1,L2– точки концов отрезка;
Название | Предусловия | Постусловия |
Piece | L1,L2– точки концов | this->L1=L1 this->L2=L2 |
~ Piece | L1,L2– точки концов | экземпляр класса разрушен |
GetLPoint1 | L1 – точка конца отрезка | L11=L1 |
GetLPoint1 | L2 – конца отрезка | L21=L2 |
MoveTo | L1 – точка конца отрезка | L1=p |
MoveTodXdY | (dx Є R) & (dy Є R) | L1-> MoveTodXdY(dx,dy) L2-> MoveTodXdY(dx,dy) |
ConsSFigure | Point – точка отн. кот. строится симметрия | L1->consSP(Point) L2->consSP(Point) |
Инвариант: (L1.x Є R) && (L1.y Є R) && (L2.x Є R) && (L2.y Є R), где R – подмножество вещественных чисел в диапазоне (-500, 500)
Класс «Image» (Изображение)
Атрибуты:
Piece piece1, piece2, piece3;
Circle circle;
Trapeze trapeze;
List<Point> points;
Название | Предусловия | Постусловия |
Image | trapeze - трапеция circle – четверть дуги окружности piece 1– отрезок1 piece 2– отрезок2 piece 3– отрезок3 | piece - трапеция создана circle – дуга создана piece 1– отрезок1 создан piece 2– отрезок2 создан piece 3– отрезок3 создан |
~ Image | trapeze - трапеция circle – четверть дуги окружности piece 1– отрезок1 piece 2– отрезок2 piece 3– отрезок3 points – характерные точки | экземпляр класса разрушен трапеция, четверть дуги окружности отрезок 1, отрезок 2, отрезок 3, характерные точки разрушены |
Get Trapeze | Trapeze - трапеция | trapeze = trapeze – копия |
GetCircle | circle - круг | circle = circle – копия |
GetPiece1 | рiece1 – отрезок | рiece1 = piece1 – копия |
GetPiece2 | рiece 2 – отрезок | рiece2 = piece2 – копия |
GetPiece3 | рiece 3 – отрезок | рiece3 = piece3 – копия |
GetPoints | Points | this->points=points |
MoveTodXdY | (dx Є R) & (dy Є R) | Все точки в списке переместить Все объекты переместить |
ConsSImage | Point – точка отн. кот. строится симметрия | Всем точкам в списке сопоставить симметричные Всем объектам сопоставить симметричные |
Инвариант: все условия предусмотрены ранее
|
|