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)