is-Logo PAT 01 -  V. 2.2
Musterlösung

S. Spolwig

[Home | Unterrichtssequenzen | PAT 01]

UNIT uPerson;
(* ******************************************************************** *)
(* K L A S S E : TPerson                                                *)
(* -------------------------------------------------------------------- *)
(* Version     : 1.21                                                   *)
(* Autor       : S. Spolwig, OSZ-Handel I, 10997 Berlin                 *)
(*                                                                      *)
(* Aufgabe     : bildet das Objekt Person ab.                           *)
(*                                                                      *)
(* Compiler    : DELPHI 3.0                                             *)
(* Aenderung   : V. 1.1  15-AUG-98                                      *)
(*                  1.2  04-SEP-98  Datei lesen, schreiben              *)
(*                                  IstGleich                           *)
(*                  1.21 20-JUL-99  procedure Init, Create              *)
(*                  1.22 11-OCT-00  Geschlecht                          *)
(* ******************************************************************** *)
INTERFACE
(* ========================== Export ================================== *)
USES Classes;
type
  TPerson = class (TObject)
    protected
    Name,
    Vorname     : string[20];
    Geburtstag  : string[10];
    Geschlecht  : string[1];  (* m,w *)
    public
    constructor Create;                      virtual;
    procedure   Init;                        virtual;
    procedure   SetName (n: string);         virtual;
    procedure   SetVorName (vn: string);     virtual;
    procedure   SetGeburtstag (gb : string); virtual;
    procedure   SetGeschlecht (g: string);   virtual;
    function GetName       : string;         virtual;
    function GetVorName    : string;         virtual;
    function GetGeburtstag : string;         virtual;
    function GetGeschlecht : string;   			 virtual;
    function IstGleich (suchpers : TPerson) : boolean; virtual;
    procedure InDateiSchreiben (var fs : TFilestream); virtual;
    procedure AusDateiLesen    (var fs : TFilestream); virtual;
  end; (* TPerson *)
(* -------------------- B e s c h r e i b u n g -------------------------
Oberklasse     : -
Bezugsklassen  : Classes import: TFilestream, read write
                 TAdresse
Methoden
--------
Create
  Auftrag: Person und Adresse erzeugen und Initialisieren
  vorher : -
  nachher: Person ist erzeugt,alle Datenfelder sind leer.
Init
  Auftrag: Person Initialisieren
  vorher : ist erzeugt
  nachher: alle Datenfelder sind leer.
Set...
  Auftrag: Attribut schreiben
  vorher : Person ist vorhanden.
  nachher: Attribut ist gesetzt
Get...
  Anfrage: Attribut aus dem Objekt lesen
  vorher : Person ist vorhanden.
  nachher: -
IstGleich (suchperson : TPerson)  : boolean
  Anfrage: prüfen, ob Person gleich gesuchte Person ist.
  vorher : Person ist vorhanden.
  nachher: IstGleich ist wahr, wenn SuchpersonName und Name übereinstimmen.
InDateiSchreiben (var fs : TFilestream)
  Auftrag: Attribute auf die Festplatte speichern
  vorher : fs ist geöffnet
  nachher: Attribute sind an fs uebergeben
AusDateiLesen (var fs : TFilestream)
  Auftrag: Attribute von der Festplatte laden
  vorher : fs ist geöffnet
  nachher: Attribute sind an Patient uebergeben
----------------------------------------------------------------------- *)
IMPLEMENTATION
(* ==================================================================== *)
constructor TPerson.Create;
(* -------------------------------------------------------------------- *)
begin
   inherited Create;
   Init;
end;
procedure TPerson.Init;
(* -------------------------------------------------------------------- *)
begin
  Name       := '';
  Vorname    := '';
  Geburtstag := '';
  Geschlecht := chr(0);
end;
procedure TPerson.SetName (n: string);
(* -------------------------------------------------------------------- *)
begin
  Name := n;
end;
procedure TPerson.SetVorName (vn: string);
(* -------------------------------------------------------------------- *)
begin
  VorName := vn;
end;
procedure TPerson.SetGeburtstag (gb: string);
(* -------------------------------------------------------------------- *)
begin
  Geburtstag := gb;
end;
procedure TPerson.SetGeschlecht (g: string);
(* -------------------------------------------------------------------- *)
begin
  Geschlecht := g;
end;
function TPerson.GetName : string;
(* -------------------------------------------------------------------- *)
begin
  result := Name;
end;
function TPerson.GetVorName : string;
(* -------------------------------------------------------------------- *)
begin
  result := Vorname;
end;
function TPerson.GetGeburtstag : string;
(* -------------------------------------------------------------------- *)
begin
  result := Geburtstag;
end;
function TPerson.GetGeschlecht : string; //char;
(* -------------------------------------------------------------------- *)
begin
  result := Geschlecht;
end;

function TPerson.IstGleich (suchpers : TPerson) : boolean;
(* -------------------------------------------------------------------- *)
begin
  result := false;
  if suchpers.Name = Name
  then result := true
end;
procedure TPerson.InDateiSchreiben (var Fs : TFileStream);
(* -------------------------------------------------------------------- *)
begin
  Fs.write(Name, SizeOf(Name));
  Fs.write(VorName, SizeOf(VorName));
  Fs.write(Geburtstag, SizeOf(Geburtstag));
  Fs.write(Geschlecht, SizeOf(Geschlecht));
end;
procedure TPerson.AusDateiLesen (var Fs : TFileStream) ;
(* -------------------------------------------------------------------- *)
begin
  Fs.read(Name, SizeOf(Name));
  Fs.read(VorName, SizeOf(VorName));
  Fs.read(Geburtstag, SizeOf(Geburtstag));
  Fs.read(Geschlecht, SizeOf(Geschlecht));
end;
END.



©    05. Oktober 2008    Siegfried Spolwig

page_top