1076
:PI-BLUEJ: Objekte als Datenspeicher und Methoden mit Verzweigung
Keywords: Parameter, if-Anweisung, Attribut, return
Zahlenraten
Problem: Das Spiel Zahlenraten soll implementiert werden: Einer gibt eine Zahl ein und ein anderer soll die Zahl erraten. Dazu muss die zu ratende Zahl während des Spiels gemerkt werden.:
Die Klasse Zahlenraten hat einen Datenspeicher
In dem Attribut zahl wird der Wert der zu ratenden Zahl gespeichert.
Return beendet Ausführung der Methode
Wird der Befehl return ausgeführt steht ja das Ergebnis der Methode fest und es wir zurückgegeben. Daher wird jede weitere Befehlsbearbeitung abgebrochen.
Aufgabe Parkhaus
| Parkhaus |
maxParkplatz : GZ = 100
belegt : GZ {>=0} |
anzeigenFrei()
einfahren()
ausfahren() |
Der Quellcode für eine Klasse Parkhaus soll entwickelt werden:
- Das Objekt-Attribut maxParkplatz enthält die Kapazität des Parkhauses und ist mit 100 vorbelegt.
- Das Objekt-Attribut belegt speichert die Anzahl der belegten Parkplätze und darf nicht negativ werden -Zusicherung: {>=0}
- Die Objekt-Methode anzeigenFrei() gibt z.B. folgenden Text aus: "Von 100 Parkplaetzen sind noch 99 frei"
- Die Methoden einfahren() und ausfahren() werden bei der Einfahrt bzw. Ausfahrt eines Fahrzeugs aufgerufen.
- einfahren() gibt bei vollem Parkhaus den Text "Parkhaus ist belegt" und ausfahren() bei leerem Parkhaus "Parkhaus ist leer" aus.
Erstellen Sie den Quellcode für die Klasse. Lösung..
Aufgabe Party
| Party |
gaeste : GZ
maxGaeste : GZ = 20
|
aendereMaxGaeste(n: GZ)
ausgebenParty()
ankommenGaeste(n : GZ)
gehenGaeste(n : GZ) : GZ |
Es soll der Quellcode für eine Klasse Party entwickelt werden:
- Das Objekt-Attribut gaeste merkt sich die Anzahl der Partygäste, maxGaeste gibt die maximale Anzahl der Partygäste vor -hier mit dem Wert 20 vorbelegt.
- Die Objekt-Methode aendereMaxGaeste(n : GZ) kann maxGaeste ändern, z.B. wenn der Partyraum grösser oder kleiner ist als der Standardwert.
- Die Objekt-Methode ausgebenParty() gibt die Anzahl der Partygaeste auf der Konsole mit System.out.println("Es sind "+gaeste+" auf der Party") aus.
- Die Objekt-Methode ankommenGaeste(n :GZ) arbeitet als Türsteher, solange die maximale Anzahl der Gäste noch nicht erreicht ist lässt er die ankommenden n Gäste herein und erhöht die Anzahl der Gäste um n. Kommen mehr Gäste an, als reinpassen lässt er nur bis zum Maximum passieren und gibt dann auf der Konsole z.B. aus: "Es kamen nur noch 5 Gaeste rein 3 wurden abgewiesen!"
- Die Objekt-Methode gehenGaeste(n : GZ): GZ erfasst die n Gäste, die gehen wollen. Solange n kleiner gleich gaeste ist wird gaeste um n erniedrigt. Sonst wird auf der Konsole z.B. ausgegeben: "Es waren nur noch 3 Gaeste da!". Ist kein Gast mehr auf der Party wird ausgegeben: "Die Party ist vorbei!". Nach jedem Aufruf gibt die Methode die verbleibende Anzahl der Gäste zurück mittels dem Befehl return gaeste.
Erstellen Sie ein neues Projekt und den Quelltext für die Klasse Party. Lösung..
Erstellen Sie ein Struktogramm für die Methode ankommenGaeste(n : GZ) Lösung..
Erstellen Sie ein Struktogramm für die Methode gehenGaeste(n : GZ) : GZ. Lösung..
Aufgabe Würfelspiel
| Wuerfelspiel |
| computerWurf : GZ |
wuerfleComputer()
wuerfleSpieler() |
Es soll eine Klasse Wuerfelspiel entwickelt werden, diesmal sollen keine Objekte erzeugt werden müssen, die Attribute und Methoden sind static:
- Das Klassen-Attribut computerWurf merkt sich das Würfelergebnis des Computers.
- Zufallszahlen von 1 bis 6 können erzeugt werden mit folgendem Ausdruck: (int)(Math.random()*5 + 1)
- Die Klassen-Methode wuerfleComputer() erzeugt eine zufällige Zahl zwischen 1 und 6, speichert diese in computerWurf und gibt die Zahl auf der Konsole aus:
"Computer hat 3 gewuerfelt"
- Die Klassen-Methode wuerfleSpieler() erzeugt eine zufällige Zahl zwischen 1 und 6, vergleicht diese mit computerWurf und gibt das Ergebnis auf der Konsole aus:
"Spieler wuerfelt 3 -> Unentschieden"
"Spieler wuerfelt 2 -> Computer hat gewonnen"
"Spieler wuerfelt 4 -> Spieler hat gewonnen"
Erstellen Sie ein neues Projekt und den Quelltext für die Klasse Wuerfelspiel. Lösung..
Erstellen Sie ein Struktogramm für die Methode wuerfleSpieler(). Lösung..