Schulkiosk (ohne Vererbung)

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 die zu verkaufenden Brötchen verwaltet, ihr Gesamtbestand festgehalten und der Gesamtgewinn berechnet werden. Die Brötchen haben eine Bezeichnung, einen Einkaufspreis und einen Verkaufspreis. Außerdem wird die Art des Belags (Kräuter-Aufstrich, Wurst, Käse,…) angegeben werden. Die Brötchen werden über ihre Warenbezeichnung eindeutig festgelegt. Bei der Neuaufnahme eines Brötchens sollen die Bezeichnung, der Einkaufspreis, der Verkaufspreis und die Art des Belags eingegeben werden.

(A1)

Erstelle für die die Klasse Broetchen ein Implementationsdiagramm und implementiere einen Konstruktor.

(A2)

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.

Deklariere und initialisierein der Klasse Kiosk eine geeignete Datenstruktur zur Verwaltung der Waren. Im Implementationsdiagramm findest du den Namen des Attributs warenListe ohne Datenstruktur.

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

Implementieren Sie beispielhaft für die Klasse Broetchen die Methode einkaufenBroetchen(…) mit der im Klassendiagramm angegebenen Parameterliste. Der Verkaufspreis soll dabei um 20% über dem Einkaufspreis liegen.
Gleichzeitig soll der Warenbestand des Kiosks aktualisiert werden.

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

Implementiere in der Klasse Kiosk eine Methode getGewinnerwartung():double.

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

Implementiere in der Klasse Kiosk eine Methode ausmusternBackwaren(), bei der aus der Warenbestandsliste alle Gebäckwaren entfernt werden. Du darfst davon ausgehen, dass in jeder Klasse eine funktionierende Methode istKlassenTyp(Class cls):boolean zur Feststellung der Klassenzugehörigkeit existiert undbenutzt werden kann.