![]() |
|
#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
|
|||
|
|||
![]() ![]() |
#7
|
|||
|
|||
![]() Цитата:
|