\documentclass{bschlangaul-aufgabe}
\bLadePakete{java}
\begin{document}
\bAufgabenMetadaten{
  Titel = {1 Objektorientierung},
  Thematik = {Getränkelieferservice},
  Referenz = 66116-2012-H.T2-TA2-A1,
  RelativerPfad = Examen/66116/2012/09/Thema-2/Teilaufgabe-2/Aufgabe-1.tex,
  ZitatSchluessel = examen:66116:2012:09,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Objektorientierung, Implementierung in Java, Einfach-verkettete Liste},
  EinzelpruefungsNr = 66116,
  Jahr = 2012,
  Monat = 09,
  ThemaNr = 2,
  TeilaufgabeNr = 2,
  AufgabeNr = 1,
}

Ein\index{Objektorientierung}
\footcite{examen:66116:2012:09} Getränkelieferservice verwaltet die Bestellungen verschiedener
Kunden. Die folgenden Teilaufgaben sind in einer objektorientierten
Programmiersprache zu lösen (die verwendete Sprache ist vorab
anzugeben.).
\index{Implementierung in Java}

\begin{enumerate}

%%
% 1.
%%

\item Implementieren Sie eine Klasse \bJavaCode{Kasten} zur
Beschreibung eines Getränkekastens mit den folgenden Eigenschaften.
Entscheiden Sie dabei jeweils ob eine Realisierung als Objekt- oder
Klassenfeld sinnvoll ist.

\begin{itemize}
\item Es existiert ein einheitliches Kastenpfand in Höhe von 1,50 Euro.

\item Für alle Flaschen in einem Kasten gelte ein einheitliches
Flaschenpfand, das jedoch von Kasten zu Kasten verschieden sein kann.

\item Während das Flaschenpfand für alle Flaschen eines Kastens gleich
ist, sind die Einzelpreise der Flaschen je nach Inhalt unterschiedlich.
Die Einzelpreise (ohne Flaschenpfand) der im Kasten enthaltenen Flaschen
sollen in einem 2-dimensionalen Array abgelegt werden.
\end{itemize}

Geben Sie für die Klasse \bJavaCode{Kasten} einen geeigneten
Konstruktor an. Ergänzen Sie in der Klasse \bJavaCode{Kasten} eine
Objektmethode zur Berechnung des Gesamtpreises des Getränkekastens
inklusive Kasten- und Flaschenpfand.

%%
% 2.
%%

\item Schreiben Sie eine Klasse \bJavaCode{Bestellung}. Jeder
Bestellung soll eine eindeutige Bestellnummer zugeordnet werden, die
über den Konstruktoraufruf erstellt wird. Außerdem soll zu jeder
Bestellung der Name des Kunden gespeichert werden, sowie eine einfach
verkettete Liste der bestellten Getränkekästen. Die Klasse Bestellung
soll weiterhin eine Methode beinhalten, die den Gesamtpreis der
Bestellung ermittelt.
\index{Einfach-verkettete Liste}

%%
% 3.
%%

\item Schreiben Sie ein kleines Testprogramm, das eine Bestellung
erstellt, die zwei Getränkekästen umfasst. Der erste Kasten soll ein 1 x
1 Getränkekasten mit einer Flasche zu 0,75 Euro sein, der zweite Kasten
soll - wie in Abbildung 1 dargestellt - ein 3 x 3 Getränkekasten mit 3
Flaschen zu 0,7 Euro auf der Diagonalen und 3 weiteren Flaschen zu je 1
Euro sein. Das Flaschenpfand beider Kästen beträgt 0,15 Euro pro
Flasche, das Kastenpfand 1,50 Euro. Anschließend soll der Preis der
Bestellung berechnet und auf der Standardausgabe ausgegeben werden.

\begin{center}
\begin{tabular}{|l|l|l|}
\hline
1,0 & 1,0 & 0,7\\\hline
1,0 & 0,7 & 0\\\hline
0,7 & 0 & 0\\\hline
\end{tabular}
\end{center}

\begin{bAntwort}
\bJavaExamen{66116}{2012}{09}{getraenke/Kasten}

\bJavaExamen{66116}{2012}{09}{getraenke/Bestellung}
\end{bAntwort}

\end{enumerate}

\end{document}
