4056

Принцип наследования. Создание иерархии классов. Классы и модули

Лабораторная работа

Информатика, кибернетика и программирование

Принцип наследования. Создание иерархии классов. Классы и модули. Задание: Создать иерархию графических классов в соответствии с рисунком. Описания классов оформить в отдельном модуле. Для создания данной программы, нам нужно обязательно созда...

Русский

2012-11-12

46.5 KB

65 чел.

Принцип наследования. Создание иерархии классов. Классы и модули.

Задание:

Создать иерархию графических классов в соответствии с рисунком. Описания классов оформить в отдельном модуле.

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

Текст программы:

Unit labs3;

Interface

TYPE

    tLocation=object {создание типа фигуры}{класс TLocation}

       x,y,x1,y1:integer; {описание переменных координат}

       procedure Init(InitX,InitY:integer); {процедура инициализации}

    end;

    tPoint=object(tLocation) {описание объекта}{ класс tPoint}

       color:word; {цвет}

       procedure Init(InitX,InitY:integer;col:word);

       procedure Move(NewX,NewY:integer); {процедура движения фигур}

      { procedure Hide;}

       Procedure Draw; {процедура рисования}

    end;

    tCircle=object(tPoint) {класс tCircle, окружность}

       Rx,Ry,VRx:word;

       procedure Init(InitX,InitY:integer;col,RRx:word);

       procedure Move(NewX,NewY:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tEllipse=object(tCircle) {элипс}

       procedure Init(InitX,InitY:integer;col,NRx,NRy:word);

       procedure Move(NewX,NewY:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tLine=object(tPoint) {линия}

       Rx,Ry:word;

       procedure Init(InitX,InitY:integer;coll:word);

       procedure Move(NewX,NewY,NewX1,NewY1:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tTriangle =object(tLine) {треугольник}

       procedure Init(InitX,InitY:integer;coll:word);

       procedure Move(NewX,NewY,NewX1,NewY1:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

    tKvadrat=object(tLine) {квадрат}

       procedure Init(InitX,InitY:integer;coll:word);

       procedure Move(NewX,NewY,NewX1,NewY1:integer);

      { procedure Hide;}

       Procedure Draw;

    end;

implementation

Uses Crt,Graph; {инициализация графики}

                   {Метод tLocation}

procedure TLocation.Init(InitX,InitY:integer); {процедура, имя класса имя метода и так везде, где в скобках()указаны параметры}

begin

x:=InitX; y:=InitY;

end;

                   {Метод tPoint}

procedure tPoint.Init(InitX,InitY:integer;col:word);

begin

tLocation.Init(InitX,InitY);

color:=col;

end;

procedure tPoint.Move(NewX,NewY:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

Draw; {метод рисующий фигуру заданным цветом}

end;

{procedure tPoint.Hide;

begin

PutPixel(x,y,GetBkColor);

end;}

procedure tPoint.Draw; {процедура рисования}

begin

PutPixel(x,y,color);

end;

                 {Метод класса tCircle}

procedure tCircle.Init(InitX,InitY:integer;col,RRx:word);

begin

tPoint.Init(InitX,InitY,col);

Rx:=RRx;

end;

procedure tCircle.Move(NewX,NewY:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

Draw;

end;

{procedure tCircle.Hide;

begin

SetFillStyle(1,GetBkColor);

Setcolor(GetBkcolor);

Circle(x,y,Rx);

end;}

procedure tCircle.Draw;

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

Circle(x,y,Rx);

end;

                 {Метод класса tEllips}

procedure tEllipse.Init(InitX,InitY:integer;col,NRx,NRy:word);

begin

tCircle.Init(InitX,InitY,col,VRx);

Rx:=NRx;

Ry:=NRy;

end;

procedure tEllipse.Move(NewX,NewY:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

Draw;

end;

{procedure tEllipse.Hide;

begin

SetFillStyle(1,GetBkColor);

Setcolor(GetBkcolor);

FillEllipse(x,y,Rx,Ry);

end;}

procedure tEllipse.Draw;

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

FillEllipse(x,y,Rx,Ry);

end;

                  {Метод класса tLine}

procedure tLine.Init(InitX,InitY:integer;Coll:word);

begin;

tLocation.Init(InitX,InitY);

color:=coll;

end;

procedure tLine.Move(NewX,NewY,NewX1,NewY1:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

x1:=NewX1;

y1:=NewY1;

Draw;

end;

procedure tLine.Draw;

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

Line(x,y,x1,y1);

end;

            {Метод класса tTriangle}

procedure tTriangle.Init(InitX,InitY:integer;Coll:word);

begin;

tLine.Init(InitX,InitY,color);

color:=coll;

end;

procedure tTriangle.Move(NewX,NewY,NewX1,NewY1:integer);

begin

{Hide;}

x:=NewX;

y:=NewY;

x1:=NewX1;

y1:=NewY1;

Draw;

end;

procedure tTriangle.Draw; {процедура прорисовки треугольника}

begin

SetFillStyle(1,GetBkColor);

Setcolor(color);

  Line(x,x,y,x1); {линии треугольника}

  Line(x,x,y1,x1);

  Line(y,x1,y1,x1);

end;

              {Метод класса tKvadrat}

procedure tKvadrat.Init(InitX,InitY:integer;Coll:word);

begin;

tLine.Init(InitX,InitY,color);

color:=coll;

end;

procedure tKvadrat.Move(NewX,NewY,NewX1,NewY1:integer);

{Hide;} {метод, рисующий фигуру цветом фона}

begin

x:=NewX;

y:=NewY;

x1:=NewX1;

y1:=NewY1;

Draw; {метод, рисующий фигуру цветом фона}

end;

procedure tKvadrat.Draw; {класс,объект}

begin

SetFillStyle(1,GetBkColor); {цвет закраски}

Setcolor(color); {цвет которым будет производится закраска}

Rectangle(x,y,x1,y1); {прямоугольник}

end;

end.


 

А также другие работы, которые могут Вас заинтересовать

72783. Бизнес планирование, его роль и назначение. Основные разделы бизнес-плана их краткая характеристика 116.5 KB
  Бизнес-планирование является особым видом планирования. Бизнес-планы разрабатываются в случае создания нового предприятия сферы услуг; при обосновании заявок на кредиты; при выходе на новые рынки сбыта и т. п.
72785. Расчёт электродинамичных характеристик прямоугольных волноводов 144.24 KB
  Критическая длина волны с учётом диэлектрической проницаемости Критическая частота Выберем для данного типа волны в волноводе рабочую длину волны. Рабочая длина волны Рабочая частота Вычислим мощность переносимую волной заданного типа по волноводу на выбранной частоте Волновое число...
72786. Сигнализатор уровня воды на базе транзистора BS547 730.5 KB
  Сигнализаторы уровня воды позволяют автоматизировать управление и контроль в технологических процессах; т.е. снизить влияние человеческого фактора, что позволяет, с одной стороны, повысить качество продукции и оптимизировать расход сырья, а, с другой, снизить требования к квалификации и опыту персонала.
72787. Организация процесса приготовления и приготовление полуфабрикатов для сложной кулинарной продукции 274.5 KB
  При написании курсовой работы обучающийся должен иметь практический опыт: разработки ассортимента полуфабрикатов из мяса рыбы и домашней птицы для сложных блюд; расчета массы мяса рыбы и домашней птицы для полуфабрикатов; организации технологического процесса подготовки мяса рыбы и домашней...
72790. Экологическое страхование 220.18 KB
  Целью курсовой работы является изучение теоретических положений о понятии экологического страхования, о его видах и формах, тенденциях развития обязательственных отношений в сфере экологического страхования, регулирующих их правовых норм, а также законодательства об экологическом страховании, и соответствующих им практических рекомендаций.