Тема. Объекты. Композиция.
Разработать и реализовать диаграмму классов для описанных объектов предметной области, используя механизмы композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных.
Объект – комната. Параметры: размеры и количество дверей. Методы: инициализирующий и функция, определяющая площадь.
Объект – квартира. Параметры: количество комнат, их размеры и стоимость одного метра. Методы: инициализирующий и функция, определяющая стоимость квартиры.
Исходный код программы для Delphi 7:
program Project4;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TRom = class
protected
Width,Height:Integer;
Count:Integer;
public
procedure Init(W,H,C:Integer);
function S:Integer;
end;
THouse = class
protected
CountRom:Integer;
HousePrice:Integer;
public
Procedure Init(const rom:TRom;N,Cost:Integer);
function GetHousePrice():integer;
end;
{ THouse }
procedure THouse.Init(const rom: TRom; N, Cost: Integer);
begin
HousePrice := rom.S * N * Cost;
end;
function THouse.GetHousePrice():integer;
begin
Result:= HousePrice;
end;
{ TRom }
procedure TRom.Init(W, H, C: Integer);
begin
Width := W;
Height := H;
Count := C;
end;
function TRom.S: Integer;
begin
Result:=Width*Height;
end;
var
rom:TRom;
House:THouse;
W,H,C,price:Integer;
begin
writeln(' Rom ');
Writeln;
write('Width:');
Readln(W);
write('Height:');
Readln(H);
write('Count door:');
Readln(c);
Writeln;
rom:=TRom.Create;
rom.Init(W,H,C);
writeln(' House ');
write('Count rom:');
Readln(C);
write('Price 1 m^2:');
Readln(price);
House:=THouse.Create;
House.Init(rom,C,price);
Writeln;
Writeln('House cost: ',House.GetHousePrice);
readln;
end.
Блок схема:
|