![]() |
|
|
#1
|
|||
|
|||
|
Если здесь есть знающие люди, помогите пожалуйста разобратся, подскажите алгоритм.
вот задание: опишите класс human, который используется для хранения фамилии, года рождени человека и содержит методы получения значения года рождения, вычисления возраста. Вызовите три метода(включая конструктор). Не могу разобраться что требуется в этой программе. эта программа для 1 человека или для нескольких тоже можно? где прописывать фамилии? Я пробовала написать код, но там две ошибки. Причина первой мне совсем непонятна. может кто то сможет разобраться? могу скинуть программку на электронный адрес. первый модуль: Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit2, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
H:THuman;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
H:=THuman.Create;
Form1.Memo1.Lines.Add(H.Describe);
H.fam:='Petrov';
H.God_rozd:=1985;
Form1.Memo1.Lines.Add(H.Describe);
end;
end.второй модуль Код:
unit Unit2;
interface
type
THuman=class
Ffam:string;
FGod_rozd:integer;
private
function GetFfam:string;
procedure SetFfam(Ff:string);
function GetFGod_rozd:integer;
procedure SetFGod_rozd(FGR:integer);
public
function Describe:string;
property fam: string read GetFfam
write SetFfam;
property God_rozd: integer read GetFGod_rozd
write SetFGod_rozd;
procedure A;
end;
implementation
function THuman.GetFfam:string;
begin
GetFfam:=Ffam;
end;
function THuman.GetFGod_rozd:integer;
begin
GetFGod_rozd:=FGod_rozd;
end;
procedure THuman.SetFfam(Ff:string);
begin
Ffam:=Ff;
end;
procedure THuman.SetFGod_rozd(FGR:integer);
begin
FGod_rozd:=FGR;
end;
function THuman.Describe:string;
begin
Describe:='Ffam-'+Ffam+' '+'God_rozd'+Inttostr(FGod_rozd);
end;
procedure THuman.A();
begin
FGod_rozd:=2009-FGod_rozd;
end;
end. |
|
#2
|
|||
|
|||
|
Ну если строго следовать заданию, то:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DateUtils, StdCtrls;
type
THuman = class
private
FLastName : String;
FYearOfBirth : Integer;
procedure SetYearOfBirth(Value : Integer);
public
constructor Create(ALastName : String; AYearOfBirth : Integer); virtual;
function GetAge : Integer;
property LastName : String read FLastName write FLastName;
property YearOfBirth : Integer read FYearOfBirth write SetYearOfBirth;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ THuman }
constructor THuman.Create(ALastName: String; AYearOfBirth: Integer);
begin
FLastName := ALastName;
FYearOfBirth := AYearOfBirth;
end;
function THuman.GetAge: Integer;
begin
Result := Integer(YearOf(Date) - FYearOfBirth);
end;
procedure THuman.SetYearOfBirth(Value: Integer);
begin
If Value < 1900 Then Raise Exception.Create('Год меньше 1900');
FYearOfBirth := Value;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
H : THuman;
begin
H := THuman.Create('Иванов',1985);
ShowMessage(Format('Создан объект THuman:'#13#10'Фамилия: %s'#13#10'Год рождения: %d'#13#10'Возраст: %d',[H.LastName,H.YearOfBirth,H.GetAge]));
H.Free;
end;
end. |
|
#3
|
|||
|
|||
|
спасибо за помощь
Последний раз редактировалось Nostalgia, 09.12.2009 в 21:00. |
|
#4
|
|||
|
|||
|
У Вас точно подключен модуль DateUtils?
|
|
#5
|
|||
|
|||
|
У меня - да.
|
|
#6
|
|||
|
|||
Imikle, это было не Вам. Просто, Nostalgia следовало бы не редактировать свое предыдущее сообщение, а написать новое. Так было бы понятнее Вам и тем, кого в дальнейшем будет интересовать эта тема. |
|
#7
|
|||
|
|||
|
Цитата:
|