OSZ Handel I
Informatik

PAT 01 -  V. 2.2
Musterlösung

S. Spolwig

[Home | Wirtschaftsgymnasium | Informatik | Unterrichtsmaterialien | PAT 01]

UNIT uPatient;
(* ******************************************************************** *)
(* K L A S S E : TPatient                                               *)
(* -------------------------------------------------------------------- *)
(* Version     : 1.3                                                    *)
(* Autor       : S. Spolwig, OSZ-Handel I, 10997 Berlin                 *)
(*                                                                      *)
(* Beschreibung: bildet das Objekt Patient ab.                          *)
(*                                                                      *)
(* Compiler    : DELPHI 3.0                                             *)
(* Aenderung   : V. 1.1  15-AUG-98                                      *)
(*                  1.3  21-JUL-99  erbt von TPerson, Create statt Init *)
(*                       02-OKT-01 Pat agg. ADR                         *)
(*                  2.0  Datei schreiben, lesen                         *)
(* ******************************************************************** *)
INTERFACE
(* ========================== Export ================================== *)
USES  Classes,
      uPerson,
      uAdresse;
type
   TPatient = class (TPerson)
      Adresse     : TAdresse;
     private
      Krankenkasse: string[25];
      Blutgruppe  : string[4];  (* AB-p *)
     public
      constructor Create;       override;
      procedure Init;           override;
      procedure SetKrankenkasse (k : string);
      procedure SetBlutgruppe (b : string);
      function GetKrankenkasse : string;
      function GetBlutgruppe : string;
      procedure InDateiSchreiben (var Fs : TFilestream);  override;
      procedure AusDateiLesen  (var Fs : TFilestream);    override;
   end; (* TPatient *)
(* -------------------- B e s c h r e i b u n g -------------------------
Oberklasse     : TPerson
Bezugsklassen  : TClasses - import: TFilestream, read,write
                 TAdresse -       : alles
Methoden
--------
Create
  Auftrag: Patienten erzeugen und init.
  vorher : -
  nachher: ist vorhanden; alle Felder sind leer
Init
  Auftrag: Patienten mit Anfangswerten initialisieren
  vorher : Person ist vorhanden.
  nachher: alle Felder sind leer
Set...
  Auftrag: Attribut schreiben
  vorher : Person ist vorhanden.
  nachher: Attribut ist gesetzt
Get...
  Auftrag: Attribut aus dem Objekt lesen
  vorher : Person ist vorhanden.
  nachher: -
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 TPatient.Create;
begin
  inherited Create;  // geerbte Person zuerst erzeugen
  Adresse := TAdresse.Create; // als Komposition miterzeugen
  Init;
end;
procedure TPatient.Init;
(* -------------------------------------------------------------------- *)
begin
  inherited Init;   // was von TPerson kommt
  Krankenkasse := '';
  Blutgruppe   := ' ';
end;
procedure TPatient.SetKrankenkasse (k : string);
(* -------------------------------------------------------------------- *)
begin
  Krankenkasse := k;
end;
procedure TPatient.SetBlutgruppe (b : string);
(* -------------------------------------------------------------------- *)
begin
  Blutgruppe := b;
end;
function TPatient.GetKrankenkasse : string;
(* -------------------------------------------------------------------- *)
begin
  result := Krankenkasse;
end;
function TPatient.GetBlutgruppe : string;
(* -------------------------------------------------------------------- *)
begin
  result := Blutgruppe;
end;
procedure TPatient.InDateiSchreiben (var Fs : TFilestream);
(* -------------------------------------------------------------------- *)
begin
  inherited InDateiSchreiben(Fs);
  Adresse.InDateiSchreiben(Fs);
  Fs.write( Krankenkasse, sizeoF(Krankenkasse));
  Fs.write( Blutgruppe, sizeoF(Blutgruppe));
end;
procedure TPatient.AusDateiLesen (var Fs : TFilestream) ;
(* -------------------------------------------------------------------- *)
begin
  inherited AusDateiLesen(Fs);
  Adresse.AusDateiLesen(Fs);
  Fs.read( Krankenkasse, sizeoF(Krankenkasse));
  Fs.read( Blutgruppe, sizeoF(Blutgruppe));
end;

END.



©    27. August 2005    Siegfried Spolwig

page_top