FH Darmstadt 
FB Informatik 
Prof.Dr. H.P.Weber
Programmieren I 
Praktikum
6

Ziel: Sie sollen problemangepasste Datentypen als Klassen entwerfen und ein Anwendungsprogramm als System aus Objekten implementieren können. 

1    Erwärmen eines Tiefkühlgerichts in einer Mikrowelle

Realisieren Sie eine Klasse Microwave sowie eine Klasse FrozenMeal
Microwave
- power : int 
- volume : int
- period : double
Constructor(a certain volume) 
Destructor()
+ morePower() : void
+ lessPower() : void
+ setPeriod(a certain period) : void 
+ heatMeal(a certain FrozenMeal) : void
+ getPower() : int
+ getPeriod() : double
FrozenMeal
- name : char* (or string)
- volume : int
- temperature : double
- coeffizient : double
Constructor(a certain name, a certain volume) 
Destructor()
+ changeTemperature(a certain temperature) : void
+ getName() : char* (or string)
+ getVolume() : int
+ getCoeffizient() : double
+ getTemperature() : double

Besonderheiten der Methoden sind:
  • Durch morePower() und lessPower() soll die Leistung im Bereich von minimal 200 W bis maximal 1000 W in Schritten von 200 W geändert werden.
  • Das Erwärmen eines Gerichtes wird durch folgenden Zusammenhang beschrieben:
    Temperatur = Anfangstemperatur + ( Koeffizient * Leistung * Zeitdauer / Volumen)
  • Als Erwärmungskoeffizient soll der Wert für Wasser verwendet werden: Koeffizient = 0.24 cm3 * Grad / Ws.
  • Achten Sie auf die Einheiten: am einfachsten ist es, wenn Volumen von Mikrowelle und Tiefkühlgericht in cm3 vom Anwendungsprogramm übernommen werden.
  • Beim Erzeugen soll ein Tiefkühlgericht eine Temperatur von -18 Grad haben.
  • Die Destruktoren sollen den Endzustand des jeweiligen Objektes am Bildschirm ausgeben.
  • Keine Methode der beiden Klassen liest irgendwelche Daten von Tastatur ein oder gibt etwas auf den Bildschirm aus. Dafür ist allein das Anwendungsprogramm zuständig.

Realisieren Sie zum Testen Ihrer Klassen ein Anwendungsprogramm, das mit verschiedenen Tiefkühlgerichten und einer geeigneten Mikrowelle die vorhandenen Methoden benutzt.


2    Tic-Tac-Toe

Entwickeln Sie einen Datentyp TicTacToe, der es ermöglicht ein vollständiges Programm zum Spielen von Tic-Tac-Toe zu schreiben.

  • Die Klasse TicTacToe soll als private Attribut ein char-Array mit neun Elementen enthalten.
  • Der Konstruktor soll ein leeres Spielfeld initialisieren.
  • Die public Methode playOneGame soll den Ablauf eines Tic-Tac-Toe-Spieles realisieren. Dabei soll sie verschiedene private Methoden aufrufen, die die verschiedenen Teilaufgaben während des Spielablaufs (Eingaben, Ausgaben, Ermitteln eines Siegers, Realisierung einer Strategie für die Computerzüge) erledigen.
  • Das Spiel soll für zwei Spieler realisiert werden, wobei der Computer einen der beiden Spieler spielt. Der menschliche Spieler soll aussuchen können, ob er erster oder zweiter Spieler ist.Wenn der erste Spieler zieht, soll ein X in das entsprechende Kästchen gesetzt werden, wenn der zweite Spieler zieht, soll ein O in das entsprechende Kästchen gesetzt werden. Es darf nur in ein leeres Kästchen gezogen werden.
  • Nach jedem Zug soll bestimmt werden, ob ein Spieler gewonnen hat oder ob das Spiel unentschieden endete.

3    Große Integer-Zahlen (fakultativ)

Entwickeln Sie einen Datentyp Integer40, der ein Array mit 40 Elementen benutzt, um ganze Zahlen mit bis zu 40 Dezimalstellen zu speichern.

  • Implemetieren Sie die Methoden read, write, add, subtract.
  • Für den Vergleich von Integer40-Objekten sollen die Methoden isEqual, isNotEqual, isGreaterThan, isSmallerThan, isGreaterOrEqual, isSmallerOrEqual zur Verfügung stehen. Jede dieser Methoden ist eine Prädikat-Funktion, die true zurückgibt, wenn die entsprechende Beziehung zwischen zwei Objekten stimmt und false, wenn sie nicht stimmt. Realisieren Sie außerdem eine Prädikat-Funktion isZero.

Testen Sie Ihre Klasse in einem Anwendungsprogramm, das die vorhandenen Operationen mit geeignet gewählten Integer40-Objekten ausführt.


4    Übungsklausur (fakultativ)

Als Klausurvorbereitung können Sie die PG 1-Klausur vom letzten Jahr bearbeiten. Am besten halten Sie sich dabei auch schon an die allgemeinen Hinweise, die Sie bei der Klausur am 10.02.05 beachten müssen.