Objektorientierte Programmierung
LVA 185.162, VL 2.0, 2005 W
2. Übungsaufgabe
Themen:
Zusammenhalt, Kopplung, Refaktorisierung
Termine:
| Ausgabe: |
20.10.2005 |
| reguläre Abgabe: |
27.10.2005, 12:45 Uhr |
| nachträgliche Abgabe: |
03.11.2005, 12:45 Uhr |
Abgabeverzeichnis:
Aufgabe2
Programmaufruf:
java Reservierung
Grundlage:
Skriptum bis Seite 44
Aufgabe:
Erweitern Sie Ihr Reservierungsprogramm aus der 1. Übungsaufgabe
entsprechend folgenden neuen Anforderungen:
- Das Programm soll Reservierungen für mehrere Vorstellungen im selben
Theater zu unterschiedlichen Terminen ermöglichen. Bei Reservierungen,
Abfragen der Reservierungsdaten und Auflistungen der noch freien Plätze
muss zusätzlich der gewünschte Termin (Datum und Uhrzeit)
eingegeben werden. Die Benutzereingaben und Ausgaben des Programms sollen
jedoch (im Vergleich zur bereits bestehenden Lösung) unverändert
formatiert sein, wenn die zusätzliche Funktionalität nicht
benötigt wird. Daher soll es möglich sein, die Eingabe des Termins
wegzulassen und in diesem Fall einen vorher festgelegten Default-Termin
(z.B. die nächste stattfindende Vorstellung) zu verwenden.
- Der Default-Termin soll gesetzt und neue Termine für Vorstellungen
hinzugefügt werden können.
- Es soll (wieder ohne Änderung der bestehenden Benutzerschnittstelle)
möglich sein, beliebige Plätze in einem angegebenen Bereich (ohne
Angabe einer Reihe oder Platznummer) zu reservieren, solange es in diesem
Bereich noch freie Plätze gibt. Reihe und Platznummer sollen in der
Ausgabe aufscheinen.
- Es soll auch möglich sein, mehrere nebeneinander liegende Plätze
in einem angegebenen Bereich (ohne Angabe einer Reihe oder Platznummer)
gleichzeitig zu reservieren. Beispielsweise werden, wenn 3 Plätze im
Parterre gebraucht werden, die Platznummern 3 bis 5 in der 2. Reihe im
Parterre reserviert. Die reservierten Plätze müssen jedenfalls
in derselben Reihe nebeneinander liegen.
Lesen Sie das Skriptum bis Seite 44. Erweitern Sie Ihr Programm aus der 1.
Übungsaufgabe zunächst so, dass Sie in möglichst kurzer Zeit mit
möglichst wenigen Änderungen auskommen. Danach überlegen Sie
sich, wie Sie dieses Programm verbessern können, damit der
Klassenzusammenhalt höher und die Objektkopplung schwächer wird.
Refaktorisieren Sie Ihre Lösung so, dass Klassenzusammenhalt und
Objektkopplung Ihrer Meinung nach optimal sind. Abgesehen von den Vorgaben
können Sie die Aufgabenstellung frei interpretieren.
Schreiben Sie Ihre Lösung in den bereits existierenden Ordner
Aufgabe2
in Ihrem Verzeichnis auf dem Übungsrechner b3. Das
Programm soll von diesem Ordner aus durch java Reservierung
aufrufbar
sein; das heißt, die Methode main
soll in der Klasse
Reservierung
in der Datei Reservierung.java
(die Sie selbst
schreiben) stehen. Schreiben Sie nicht mehr als eine Klasse in jede Datei.
Der Ordner soll zum Zeitpunkt der Abgabe (27.10.2005, 12:45 Uhr) und der
nachträglichen Abgabe (03.11.2005, 12:45 Uhr) alle .java
-Dateien
enthalten, die Sie für Ihre Lösung benötigen. Bitte entfernen
Sie alle .java
-Dateien, die nicht zur Abgabe gehören. Dateien mit
anderen Endungen werden bei der Beurteilung nicht berücksichtigt.
Verzichten Sie auf die Verwendung von Ordnern innerhalb von Aufgabe2
.