Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.12.2009, 20:15
Nostalgia Nostalgia вне форума
Прохожий
 
Регистрация: 29.12.2008
Сообщения: 15
Репутация: 10
По умолчанию Классы

Если здесь есть знающие люди, помогите пожалуйста разобратся, подскажите алгоритм.
вот задание: опишите класс 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  
Старый 09.12.2009, 20:37
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну если строго следовать заданию, то:

Код:
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  
Старый 09.12.2009, 20:51
Nostalgia Nostalgia вне форума
Прохожий
 
Регистрация: 29.12.2008
Сообщения: 15
Репутация: 10
По умолчанию

спасибо за помощь

Последний раз редактировалось Nostalgia, 09.12.2009 в 21:00.
Ответить с цитированием
  #4  
Старый 09.12.2009, 21:06
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

У Вас точно подключен модуль DateUtils?
Ответить с цитированием
  #5  
Старый 09.12.2009, 21:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

У меня - да.
Ответить с цитированием
  #6  
Старый 09.12.2009, 21:19
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Imikle, это было не Вам. Просто, Nostalgia следовало бы не редактировать свое предыдущее сообщение, а написать новое. Так было бы понятнее Вам и тем, кого в дальнейшем будет интересовать эта тема.
Ответить с цитированием
  #7  
Старый 09.12.2009, 21:21
Nostalgia Nostalgia вне форума
Прохожий
 
Регистрация: 29.12.2008
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Kapitoshka438
Imikle, это было не Вам. Просто, Nostalgia следовало бы не редактировать свое предыдущее сообщение, а написать новое. Так было бы понятнее Вам и тем, кого в дальнейшем будет интересовать эта тема.
да, у меня подключён этот модуль, уже подключён...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:06.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025