Hotelkette Prog 1 Aufgabe
Hintergrund
Sie wurden beauftragt, ein System zur Verwaltung einer Hotelkette mit Einbettzimmern zu erstellen.
Modellierung
Jedes Hotel verfügt über genau 10 Zimmer, wobei in jedes Zimmer nur eine Person passt. Zu jeder Person sollen ihr Vorname, ihr Nachname sowie ihre E-Mail-Adresse festgehalten werden. Zu jedem Zimmer soll die jeweilige Zimmernummer festgehalten werden.
Zimmer sollen über eine Methode hasPerson verfügen, die zurückgibt, ob das Zimmer aktuell belegt ist. Über Getter und Setter soll die gebuchte Person gesetzt oder zurückgegeben werden. Die Angabe, ob ein Zimmer belegt ist, soll nicht zusätzlich gespeichert werden sondern „dynamisch“ über das Vorhandensein bzw. Fehlen einer gebuchten Person ermittelt werden!
Hotels sollen über eine Methode checkIn verfügen, die als Eingabe eine Person übergeben bekommt, und diese Person dann zufällig in eines der freien Zimmer einbucht und true zurückgibt. Sind jedoch keine Zimmer mehr frei, soll die Methode false zurückgeben.
Die Methode checkIn soll überladen werden, sodass neben der Person auch eine konkrete Zimmernummer mitgegeben werden kann. Ist das Zimmer mit der übergebenen Nummer belegt, ändert sich nichts und es wird false zurückgegeben - ansonsten wird die Person in das entsprechende Zimmer eingebucht und die Methode liefert true zurück.
Das System soll die Verwaltung von mindestens 15 Hotels unterstützen. Mit einer Methode checkIntoAny soll eine übergebene Person in ein beliebiges Hotel aus einer übergebenen Menge von Hotels (ohne Angabe einer Zimmernummer) eingecheckt werden können.
Weitere Anforderungen
Erstellen Sie eine Main-Methode samt Testdaten, die checkIntoAny sowie checkIn mit einer spezifischen Nummer aufruft und so die Funktionalität Ihrer Implementierung demonstriert.
Der Fall eines ausgebuchten Hotels muss nicht beachtet werden.
Bei der Modellierung der Klassen ist das Prinzip des Information Hiding zu beachten.
Die Nutzung der vorgefertigten Java-Klasse Optional ist untersagt!
Hinweise
Achten Sie auf ordentlich formatierten und sauber strukturierten Quellcode, der die Ihnen aus der Vorlesung bekannten Konventionen einhält.