Sitzplan-Reservierung in der Turing-Schule

In dieser Abituraufgabe aus dem Jahre 2022 geht es um Sitzplanreservierung in der Aula einer Schule. In der kleinen Aula gibt es 12 Sitzplätze, die in vier Reihen mit je drei Sitzen angeordnet sind (Reihe 0 ... Reihe 3, Sitz 0 ... Sitz 2).

Ein Besucher kann sich nicht nur einen Sitzplatz reservieren, sondern gleich mehrere. Wenn eine Veranstaltung in der Aula bereits ausgebucht ist, kann sich eine Person auch auf eine Warteliste setzen lassen, für den Fall, dass jemand seine Reservierung storniert.

Auf der zweiten Seite des umfangreichen Materials findet sich ein großes Implementationsdiagramm mit drei zentralen Klassen: Person, Veranstaltung und Veranstaltungsverwaltung.

Die Klasse Veranstaltung enthält tatsächlich einen zweidimensionalen Array sitzplaetze[][]: Person als Attribut, und dann recht viele manipulierende und sondierende Methoden. Eine der Methoden heißt schreibeAufWarteliste(pPerson: Peron). Diese Methode speichert die Person dann in einer Queue.

Die Klasse Veranstaltungsverwaltung kann viele solcher Veranstaltungen managen, die einzelnen Veranstaltungen werden in einer Liste gespeichert (Klasse List).

In der Teilaufgabe a) soll dieses Implementationsdiagramm beschrieben werden, und die Wahl der Queue soll begründet werden. Außerdem soll der Einsatz des zweidimensionalen Arrays begründet werden.

In der Teilaufgabe b) wird eine Java-Methode 

public void macheEtwas(Person pPerson)

präsentiert. Diese Methode soll nun analysiert und ihre Funktionsweise erläutert werden.

In der Teilaufgabe c) soll eine neue Methode für die Klasse Veranstaltungsverwaltung entwickelt werden, die eine Liste mit den Veranstaltungen zurückliefert, bei denen noch eine bestimmte Anzahl von Plätzen frei ist.

In den Teilaufgaben d) und e) geht es dann um eine Erweiterung des Projektes, es sollen ein paar weitere Funktionen eingebaut werden, zum Beispiel soll für jede Veranstaltung eine E-Mail-Adresse gespeichert werden können, oder es sollen Eintrittspreise verwaltet werden können.