Schulkiosk

Der Hausmeister am QG betreibt einen kleinen Kiosk. Die Verwaltung soll mit einem Computerprogramm erledigt werden.

Er kommt mit folgendem Pflichtenheft zu dir und möchte die Kioskverwaltung von dir programmieren lassen:

Mit dem Kioskverwaltungsprogramm sollen verschieden Waren verwaltet, der Gesamtbestand festgehalten und der Gesamtgewinn berechnet werden. In dem Kiosk gibt es als Waren Getränke und Backwaren. Als Backwaren werden ausschließlich Brezeln und belegte Brötchen verkauft.

Die Waren haben eine Warenbezeichnung, einen Einkaufspreis und einen Verkaufspreis. Getränke haben unterschiedliche Inhaltsgrößen. Für die belegten Brötchen muss die Art des Belags (Kräuter-Aufstrich, Wurst, Käse,…) angegeben werden, bei den Brezeln, ob sie mit Butter bestrichen sind oder nicht.

Die Waren werden über ihre Warenbezeichnung eindeutig festgelegt. Bei der Neuaufnahme einer Ware sollen die Warenbezeichnung, der Einkaufspreis und der Verkaufspreis eingegeben werden. Bei den Getränken wird zusätzlich die Inhaltsgröße und bei den belegten Brötchen die Art des Belags eingegeben.

Das folgende vereinfachte Klassendiagramm stellt die Beziehung zwischen den einzelnen Waren-Klassen dar.


(A1)

Benenne die Beziehungen zwischen den Klassen und erläutere kurz die Prinzipien der Objektorientierung.

Erläutere, warum hier einige Klassen als abstrakt deklariert sind und gib Gründe für diese Art der Deklaration an.


(A2)

Erstelle für die die Klassen Ware, Getraenk, Backware, Brezel und Broetchen ein Implementationsdiagramm und implementiere jeweils einen Konstruktor.


(A3)

Das Kiosk-Verwaltungsprogramm verwaltet den Warenbestand und den aktuellen Kontostand. Beim Einkauf von Waren wird der Kontostand belastet, beim Verkauf wird der Verkaufspreis dem Konto gut geschrieben.

Für jeden Warentyp enthält die Klasse Kiosk eine Methode, mit der beim Einkauf von einer Anzahl gleicher Artikel der Warenbestand verwaltet wird.

Der Hausmeister will den zu erwarten Gewinn ermitteln. Dazu vergleicht er Einkaufs- und Verkaufspreis der vorhandenen Waren.

Am Ende eines Verkaufstages werden die nicht verkauften Gebäckwaren an die lokale Hilfsorganisation "Tafel" abgegeben.