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.


 

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

10859. Захист довкілля 76 KB
  Тема: Людина й природа Підтема: Захист довкілля Мета: Провести роботу з учнями з підготовки до екологічної конференції. Обладнання: підручник матеріали до конференції: текст Green Peace вправа Matchingтекстизагадки Guessing питання для конференції додатковий матеріал для...
10861. Послання в майбутнє. ЛЮДИНА І СУСПІЛЬСТВО. ШКІЛЬНЕ ЖИТТЯ 18.77 KB
  Тема: ЛЮДИНА І СУСПІЛЬСТВО. ШКІЛЬНЕ ЖИТТЯ Підтема: Послання в майбутнє. Мета: Практикувати учнів у письмі. Розвивати творчі здібності. Обладнання: підручник бланк послання То the Citizens of the World of the Future Time Capsule a Message to the Future HO1. ХІД УРОКУ I.ПІДГОТОВКА ДО СПРИЙНЯТТЯ ІНШ...
10862. Закінчуючи школу 31.8 KB
  Тема: ЛЮДИНА І СУСПІЛЬСТВО. ШКІЛЬНЕ ЖИТТЯ Підтема: Закінчуючи школу. Мета: Націлити учнів на успішне проходження державної підсумкової атестації. Провести тренувальний тест на перевірку володіння англійською мовою.Обладнання: підручник тест з англійської мови для
10863. Создание простейших графических примитивов в Delphi 372 KB
  Лабораторная работа № 1 Создание простейших графических примитивов в Delphi Delphi позволяет программисту разрабатывать программы которые могут выводить графику: схемы чертежи иллюстрации. Программа выводит графику на поверхность объекта формы или компонента Image. П...
10864. Рисование графиков в Delphi 107.5 KB
  Лабораторная работа № 2 Рисование графиков в Delphi Точка Поверхности на которую программа может осуществлять вывод графики соответствует объект Canvas. Свойство pixels представляющее собой двумерный массив типа TColor содержит информацию о цвете каждой точки графической...
10865. Организация меню. Главное и контекстное меню. Компонент TActionList 1.99 MB
  Лабораторная работа № 3 Организация меню. Главное и контекстное меню. Компонент TActionList Для организации главного меню формы используется невизуальный компонент MainMenu. Располагается этот компонент на вкладке Standard палитры компонентов Delphi. Рассмотрим работу этого ком...
10866. Компонент Timer Создание простейшей анимации 294.5 KB
  Лабораторная работа № 4 Компонент Timer Создание простейшей анимации Вывод иллюстраций. Наиболее просто вывести иллюстрацию которая находится в файле с расширением bmp jpg или ico можно при помощи компонента image значок которого находится на вкладке Additional палитры рис....
10867. Мультимедиа-возможности Delphi. Компоненты Animate и MediaPlayer 381.5 KB
  Мультимедиа-возможности Delphi Большинство современных программ работающих в среде Windows являются мультимедийными. Такие программы обеспечивают просмотр видеороликов и мультипликации воспроизведение музыки речи звуковых эффектов. Типичными