====== 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.