Тема. Объекты. Наследование.
Разработать и реализовать иерархию классов для описанных объектов предметной области, используя механизмы наследования. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных.
Объект – доска. Параметры: два целых числа – длина и ширина, Методы: инициализирующий, определения площади и возвращающие значения длины и ширины.
Объект – доска. Параметры: длина, ширина и толщина. Методы: инициализирующий, определения объема и вывода параметров и объема.
Исходный код программы Delphi:
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TDoska2D = class (TObject)
protected
W, L:Integer;
public
procedure Init(w_,l_:Integer);
function Length:Integer;
function Width:Integer;
function S:integer;
end;
TDoska3D = class (TDoska2D)
protected
H:Integer;
public
procedure Init(w,l,h_:Integer);
function V:integer;
function Height:integer;
procedure print();
end;
{ TODO -oUser -cConsole Main : Insert code here }
{ TDoska2D }
procedure TDoska2D.Init(w_, l_: Integer);
begin
W := w_;
L := l_;
end;
function TDoska2D.Length: Integer;
begin
Result:=L;
end;
function TDoska2D.S: integer;
begin
Result:= Width*Length;
end;
function TDoska2D.Width: Integer;
begin
Result:=W;
end;
{ TDoska3D }
procedure TDoska3D.Init(w, l, h_: Integer);
begin
Inherited Init(w,l);
H:=h_;
end;
function TDoska3D.V: integer;
begin
Result:= S*H;
end;
function TDoska3D.Height: integer;
begin
Result:= S*H;
end;
procedure TDoska3D.print;
begin
Writeln('V:',V);
end;
var
W,L,H:Integer;
Doska2d:TDoska2D;
Doska3d:TDoska3D;
begin
Writeln(' - - - - - ');
Writeln (' Doska 2D ');
Write('Width: ');
Readln(W);
Write('Length: ');
Readln(L);
Doska2d:=TDoska2D.Create;
Doska2d.Init(w,l);
Writeln('S:',Doska2d.S);
Writeln;
Writeln(' - - - - - ');
Writeln (' Doska 3D ');
Write('Width: ');
Readln(W);
Write('Height: ');
Readln(H);
Write('Length: ');
Readln(L);
Doska3d:=TDoska3D.Create;
Doska3d.Init(w,l,h);
Doska3d.print();
Writeln;
readln;
end.
Блок схемы:
|