is-Logo Fahrscheinautomat
Anhang - Lösungshinweise

S. Spolwig
 

[Home | Unterrichtssequenzen]
Startseite

 

Das Projekt FSA  ist eine Simulation, die der Funktionalität eines Fahrscheinautomaten möglichst nahekommen soll. Es geht also nicht nur um die nackte Abarbeitung von Zuständen, sondern auch um eine ansprechende und damit motivierende Benutzeroberfläche.

In der Originalversion 3.7 und in 4.0 werden Münzen mit Hilfe von Grafik-Objekten dargestellt. Das bietet viele Möglichkeiten der optischen Gestaltung und erhebliches Übungspotential für die Modellierung von Objekten.

In weiteren Versionen kann man die Münzen mit Bildern darstellen. Das vereinfacht radikal die Münzklassen.

Wie bei den meisten Programmen wird die meiste Zeit für die Gestaltung der Steuerung in der GUI erforderlich sein. FSA ist ein Musterbeispiel für die Funktionsweise von ereignisgesteuerten Programmen: So soll z.B. eine Cancel-Taste jederzeit erreichbar sein. Dieses, die Tarifwahl und die Auswahl mit Münzbuttons erfordert eine sorgfältige Planung der Automatenzustände.


3.7


Die Originalversion

Fachlich

- Es gibt keine kfm. Buchführung; d. h. Geld und Fahrscheine werden unendlich erzeugt und nicht verwaltet.

Technisch

- Exemplare werden nicht aus dem Speicher entsorgt.
- Es wird die Klassenbibliothek DLib benötigt (wie auch für alle anderen Versionen).
 


4.0

In der einfachsten Version kommt eine 1 : 1 - Anpassung in Frage.

- Die Darstellung von ein und zwei Euro-Münzen könnte vereinfacht (ohne Kern) dargestellt werden

- Delphi-Suchen-Ersetzen benutzen und alte Klassen recyclen.
 

4.1


In einer erweiterten Version

- Münzen optisch originalgetreuer darstellen

- die Echtheitsprüfung sollte in TMuenzer stattfinden, nicht als Methode von TMuenze, ev. dafür andere Attribute (Durchmesser, Gewicht) einführen

- Münzeinwurf durch Button-Click anstelle von Tastaturauswahl

- Bei schnellem Muenzklick kann die Anzeige wegen fehlender Nebenläufigkeit durcheinander geraten.
  Einfache Abhilfe: Beim MuenzbuttonClick die anderen temporär disabled.

procedure TFensterFrm.FuenferBtnClick(Sender: TObject);
(* --------------------------------------------------------------- *)
var
  Fuenfer : TFuenfer;
begin
  DisableAll;
  self.Enabled := true;

  Fuenfer := TFuenfer.Create;
  MuenzeEinwerfen(Fuenfer);
  MuenzEinwurfFinish;
  EnableAll;
end;


procedure TFensterFrm.DisableAll;
(* --------------------------------------------------------------- *)
begin
  FuenferBtn.Enabled   := false;
  ZehnerBtn.Enabled    := false;
  ZwanzigerBtn.Enabled := false;
  FuenfzigerBtn.Enabled:= false;
  EinEuBtn.Enabled     := false;
  ZweiEuBtn.Enabled    := false;
  FFuffzigBtn.Enabled  := false;
end;
 

 

4.2


- Geldscheine (wie in Geldwechselautomat) annehmen

- kfm. Verwaltung von Geld u. Fahrschein als erzeugte Exemplare  (wie in Geldwechselautomat)

 

©  05. Oktober 2008    Siegfried Spolwig