====== Abitur 2011 I (Lösung) ======
==== Lösung ====
**1. a)** \\ Es empfiehlt sich, die beim Lesen der Aufgabenstellung die Klassen, ihre Attribute und Methoden farbig zu unterstreichen und dann das Klassendiagramm zu zeichnen:
{{ :listen:kompositum:aufgaben:2011:pasted:20241007-201243.png }} \\
**b)** \\ Die Aufgabenstellung der Aufgabe 1a) legt die Bezeichnung "Leistung" für die Oberklasse von ''Gericht'' und ''Getränk'' nahe.
{{ :listen:kompositum:aufgaben:2011:pasted:20241007-201116.png }} \\
**c)** \\
public abstract class Produkt {
public boolean istVorhanden() {
return(portionen > 0);
}
public abstract void drucken();
}
public class Getränk extends Produkt {
public void drucken() {
if(alkoholisch) {
System.out.print(“A ”);
}
System.out.println(bezeichnung + “ “ + preis);
}
}
public class Gericht extends Produkt {
public void drucken() {
System.out.println(bezeichnung + “ “ + preis);
}
}
**d)** \\
Objektdiagramm:
{{ :listen:kompositum:aufgaben:2011:pasted:20241007-201157.png }}
Klassendiagramm:
{{ :listen:kompositum:aufgaben:2011:pasted:20241007-201213.png?400 }}
public class BESTELLUNG {
public double rechnungsbetragGeben() {
return erster.gesamtPreis();
}
}
public abstract class Bestellungselement {
public abstract double gesamtPreis();
}
public class KNOTEN extends Bestellungselement {
public double gesamtPreis() {
if(inhalt.istAusgeliefert()) {
return inhalt.preisGeben() + nachfolger.gesamtPreis();
} else {
return nachfolger.gesamtPreis();
}
}
}
public class ABSCHLUSS extends Bestellungselement {
public double gesamtPreis() {
return 0;
}
}
**f)** \\
SELECT Bezeichnung, Preis FROM speisen WHERE AnzahlVorhanden > 10
**g)** Das Programm müsste eine Verbindung zur Datenbank herstellen, die SQL-Abfrage an die Datenbank senden, das Abfrageergebnis auslesen und auf den Bildschirm ausgeben. Abschließend müsste die Verbindung noch geschlossen werden.