unit pruefung2016s; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Contnrs; type TForm2 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; Medium = class abstract (TObject) private bibNR : Integer; titel : String; zustand : String; public function getBibNR : Integer; end; Buch = class(Medium) private Seitenzahl : Integer; end; Hoerbuch = class(Medium) private Dauer : Integer; end; Leser = class(TObject) private leserNR : Integer; name : String; ausleihliste : TObjectList; vormerkliste : TObjectList; public constructor Create(nr : Integer; name : String); function getAusleihliste : TObjectList; function getvormerkliste : TObjectList; function hatAusgeliehen(nr : Integer) : Boolean; end; Biblio = class(TObject) private leserliste : TObjectList; medienliste : TobjectList; public constructor Create; function getVormerkungen (nr : Integer) : Integer; end; var Form2: TForm2; implementation {$R *.dfm} { Medium } function Medium.getBibNR: Integer; begin result := bibNR; end; { Leser } constructor Leser.Create(nr: Integer; name: String); begin leserNR := nr; self.name := name; ausleihliste := TObjectList.Create; vormerkliste := TObjectList.Create; end; function Leser.getAusleihliste: TObjectList; begin result := ausleihliste; end; function Leser.getvormerkliste: TObjectList; begin result := vormerkliste; end; function Leser.hatAusgeliehen(nr: Integer): Boolean; var x : Medium; begin result := false; for x in ausleihliste do begin if x.getBibNR = nr then result := true; end; end; { Biblio } constructor Biblio.Create; begin leserliste := TObjectList.Create; medienliste := TObjectList.Create; end; function Biblio.getVormerkungen(nr: Integer): Integer; var k : Medium; x : Leser; begin result := 0; for x in leserliste do begin for k in x.getvormerkliste do begin if k.getBibNR = nr then inc(result); end; end; end; end.