4056

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

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

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

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

Русский

2012-11-12

46.5 KB

58 чел.

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

Задание:

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

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

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

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.


 

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

55997. Ми тепер не просто діти – ми тепер вже школярі! 99 KB
  Я -– лінь Живу вже сотні поколінь Всі мене люблять всі чекають Коли прийду не проганяють І я вас діточки люблю За лінощі вас поважаю Сама нічого не роблю І вам усім того ж бажаю
55998. Ми тепер не просто діти, ми тепер вже школярі 84.5 KB
  А як називається казка в якій ви зі мною познайомилися хто скажеДіти відповідають. А ви діти хотіли б помандрувати до цієї країни Але що ж мені робити Як потрапити до країни Знань Заходить Карабас Карабас...
56000. СХОДИНКИ ДО ВЕРШИНИ «Я» 565 KB
  Заняття можуть проводитися як з цілим класом так і з окремими групами. Заняття вміщують теоретичну та практичну частини. Підсумкове заняття.
56001. Літературний монтаж до дня народження класика світової літературі Шолом-Алейхема 85.5 KB
  Мене радує що ти з великим бажанням взявся за вивчення ремесла Наші мудреці говорили що не соромно здирати шкуру з падалі тільки б не жити милостинею людською. Дорогий тато Сьогодні о пятій шостій годині після обіду я повідомив тобі радісну новину...
56002. Музыкальные образы в творчестве Ф. Шопена 70.5 KB
  Организационный момент музыкальное приветствие 56 минут Учитель: Ребята сегодня наш урок немного необычный. Вопрос Ответ Национальность Поляк Семья Мать отец три сестры Первый учитель по классу фортепиано...
56003. «Серце моє там, де моя батьківщина» Ф.Шопен 65.5 KB
  На фоні музики декламуються вислови митців про Шопена. Шопен хворів стражданнями своєї батьківщини хворів розлукою зі своїми рідними і друзями хворів тугою за вітчизною і своє щире глибоке горе висловив у дивних поетичних звуках.
56004. Дітям про Шопена 150 KB
  МЕТА: показати учням можливості музики у втіленні почуттів людини через жанр інструментальної мініатюрипрелюдії; дати визначення понять ноктюрн скерцо; поглибити знання учнів про життя і творчість ...
56005. Lets Go Shopping 470 KB
  Sit down, please. But I am not your teacher, I am a shop assistant. Today we are going to do the shopping together and I am going to teach you how to do it in the best way. Do you like to go shopping?