POS Name: Übung 001 Klasse: Collection Datum:

Werbung
POS
Übung 001
Collection
Name:
Klasse:
Datum:
Erstellen Sie die folgenden Klassen:
Zimmer
- nummer: String = "A3"
- dusche: boolean = true
- betten: int = 2
- frei: boolean = true
+ Zimmer()
+ Zimmer(dusche, betten,
frei)
+ toString()
+
+
+
+
Arbeiterzimmer
preisMonat: double = 500
toString()
preisNacht()
preisMonat()
buchen()
dusche ...
betten ...
bettenBelegt ...
preisNacht ...
preisMonat ...
frei ...
buchungsgebuhr ...
gibt
gibt
gibt
gibt
gibt
gibt
gibt
+
+
+
+
+
+
+
+
+
+
+
+
+
Hotel
zimmer: Collection<Zimmer>
buchungsgebuhr: double = 20
ausbauen(...)
ausbauen(...)
berechneTagesumsatz()
avgPreisBett()
teuerstesZimmer()
bucheTeuer()
bucheGunstig(...)
buchen(...)
bucheTeuer(anzPersonen)
Hotelzimmer
preisNacht: double = 70
bettenBelegt: int = 2
toString()
preisNacht()
preisMonat()
buchen()
an, ob im Zimmer eine Dusche vorhanden ist.
an, wie viele Personen im Zimmer übernachten können.
an, wie viele Betten im Zimmer belegt sind.
den Zimmerpreis an.
den Personenpreis pro Monat an.
an, ob das Zimmer frei ist oder nicht.
die Buchungsgebühr pro Zimmer an.
Verwenden Sie folgende Collections und prüfen Sie die interne Speicherung:
• ArrayList
• HashSet
• LinkedHashSet
• LinkedList
• Stack
• TreeSet
• Vector
Welche Klassen haben auch das Interface List bzw. Set implementiert?
Welche Änderungen müssen Sie in den Methoden der Klasse Hotel vornehmen, wenn
Sie eine andere Collection verwenden wollen?
Implementieren das Interface Comparable, damit jede Zimmernummer im Set
eindeutig ist.
Die Methode ausbauen(...) hängt ein neues Arbeiterzimmer am Ende des Arrays
an.
public void ausbauen(boolean dusche, int betten, boolean frei,
double preisMonat)
Die Methode ausbauen(...) hängt ein neues Hotelzimmer am Ende des Arrays an.
public void ausbauen(boolean dusche, int betten, boolean frei,
double preisNacht, int bettenBelegt)
Die Methode berechneTagesumsatz() berechnet den Tagesumsatz. Bei einem
Arbeiterzimmer muss der Monatspreis durch 30 dividiert werden; es sind immer alle
Betten belegt! Es können nur belegte (nicht frei!) verrechnet werden!
public double berechneTagesumsatz()
Die Methode avgPreisBett() liefert den durchschnittlichen Preis pro Bett und
Nacht.
public double avgPreisBett()
Die Methode teuerstesZimmer() liefert als Objektreferenz das teuerste freie
Zimmer.
public Zimmer teuerstesZimmer()
Die Methode bucheTeuer() bucht das teuerste freie Zimmer.
public void bucheTeuer()
Die Methode bucheGunstig(...) bucht für die entsprechende Personenanzahl
das günstigste Zimmer. Dabei müssen sämtliche Personen in einem Zimmer platz
haben. Den Personen ist es egal, ob sie ein ganzes Monat ein Arbeiterzimmer mieten
oder tageweise in einem Hotelzimmer übernachten.
public void bucheGunstig(int anzPersonen, int anzahlTage)
Die Methode buchen(...) bucht für die entsprechende Personenanzahl ein oder
mehrere Zimmer. Der Preis spielt dabei keine Rolle.
public void buchen(int anzPersonen)
Die Methode bucheTeuer(anzPersonen) bucht für die Personenanzahl die
teuersten freien Zimmer. Es möchte auch jede Person alleine in einem Zimmer
liegen!
public void bucheTeuer(int anzPersonen)
Herunterladen