faecher:informatik:oberstufe:modellierung:2019a:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:modellierung:2019a:start [16.12.2021 08:36] sbelfaecher:informatik:oberstufe:modellierung:2019a:start [16.12.2021 08:56] (aktuell) – [Teil 3] sbel
Zeile 1: Zeile 1:
 ====== Whalewatching Events ====== ====== Whalewatching Events ======
  
 +((Abituraufgabe 2019 in BW, Teil A)) ((Photo by [[https://unsplash.com/@sagredophotography?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText|Richard Sagredo]] on [[https://unsplash.com/s/photos/whale?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText|Unsplash]]))
 +  
 +
 +
 +{{ :faecher:informatik:oberstufe:modellierung:2019a:whale.jpg?400|}}
  
 Eine Eventfirma, die Whalewatching betreibt, möchte ihre Touren mit einer neuen Software Eine Eventfirma, die Whalewatching betreibt, möchte ihre Touren mit einer neuen Software
Zeile 29: Zeile 34:
 eine eigene Klasse geben. eine eigene Klasse geben.
  
-{{ :faecher:informatik:oberstufe:modellierung:2019a:waleuml.png?400 |}}+{{ :faecher:informatik:oberstufe:modellierung:2019a:waleuml.png?500 |}} 
 + 
 + 
 +===== Teil 1 ===== 
 + 
 +{{:aufgabe.png?nolink  |}} 
 +=== (T1A1) === 
 +Stellen Sie die Beziehungen zwischen den Klassen ''Bartenwal'', ''Buckelwal'', 
 +Delfin, Fleckendelfin, ''Grauwal'', ''Tier'', ''Tour'' und ''Tuemmler'' in einem Klassendiagramm dar. Die Klassen sollen nur den Klassennamen, keine Attribute und Methoden enthalten. Gib außerdem an, ob bzw. welche Klassen abstrakt sind 
 +und begründe deine Entscheidung. 
 + 
 +  * Gib an, in welchen Klassen die Attribute ''alter'', ''spitzname'' und ''gruppengroesse'' deklariert werden müssen. Begründe deine Entscheidung. 
 +  * Implementiere einen Konstruktor für die Klasse ''Delfin'' und einen Konstruktor für 
 +die Klasse ''Tuemmler''. Dem Konstruktor der Klasse ''Tuemmler'' darf nur die Gruppengröße übergeben werden, weil Tümmler grundsätzlich nicht geschützt sind und immer 1EUR pro gesichtetes Tier kosten. 
 + 
 +===== Teil 2 ===== 
 + 
 + 
 +Wenn ein Boot sich einem oder mehreren Tieren nähert, wird die Methode 
 +''beobachten'' der Klasse ''Tour'' aufgerufen. Diese prüft, ob das Boot sich weiter den 
 +Tieren nähern darf. Dazu ruft sie die Methode ''darfBeobachtetWerden()'' des 
 +gesichteten Tieres auf. Wenn die Annäherung erlaubt ist, trägt die Methode 
 +beobachten das Tier in das Array ''sichtungen'' ein; dieses Array bietet dabei immer 
 +genügend Platz. Die Methode gibt zurück, ob die Beobachtung erlaubt ist. 
 + 
 +----  
 +{{:aufgabe.png?nolink  |}} 
 +=== (T2A1) === 
 + 
 +  * Erläutere, warum der Methode ''beobachten(t: Tier): boolean'' der Klasse Tour sowohl Grauwal- als auch Tuemmler-Objekte übergeben werden können. 
 +  * Implementiere die Methode ''beobachten(t: Tier): boolean'' der Klasse Tour. 
 + 
 +Die Methode ''darfBeobachtetWerden(): boolean'' gibt in der Klasse Tier 
 +immer ''true'' zurück. Da Fleckendelfine aus Artenschutzgründen nicht immer beobachtet werden dürfen, muss die Methode entweder in der Klasse ''Delfin'' oder in der Klasse ''Fleckendelfin'' überschrieben werden. 
 + 
 +  * Vergleiche die beiden Varianten in Bezug auf Erweiterbarkeit um weitere Delfinarten oder Änderungen der Artenschutzbestimmungen bei bestehenden Tierarten. 
 + 
 +===== Teil 3  ===== 
 +Nach Beendigung der Tour soll der Preis nach den oben beschriebenen Regeln 
 +berechnet werden. 
 + 
 + 
 +  * Implementiere die Methode'' berechneTourPreis(): int'' in der Klasse Tour. Die Methode ''getPreis(): int'' in der Klasse ''Bartenwal'' liefert den Einzelpreis eines Tiers zurück, in der Klasse ''Delfin'' liefert sie den Preis der gesamten Gruppe 
 +zurück. 
 + 
 +Zum Abschluss sollen die Teilnehmer eine Urkunde erhalten. Dort wird unter anderem die Anzahl der beobachteten Delfine und die Spitznamen der gesichteten Bartenwale aufgeführt. 
 + 
 + 
 +**Beispiel:** 
 +<code> 
 +Sie haben 17 Delfine gesichtet. 
 +Sie haben die Bartenwale Wally Walter Walburga gesichtet. 
 +</code> 
 + 
 +Falls keine Delfine oder keine Bartenwale gesichtet werden, soll die entsprechende 
 +Zeile weggelassen werden. Du musst dich bei der Ausgabe nicht um Einzahl und 
 +Mehrzahl kümmern. 
 + 
 +----  
 +{{:aufgabe.png?nolink  |}} 
 +=== (T3A1) === 
 +Implementiere eine Methode ''druckeZertifikat()'', die die gewünschte 
 +Ausgabe erzeugt. 
 + 
 +//Hinweis:// Du kannst davon ausgehen, dass für alle Attribute die entsprechenden 
 +öffentlichen'' get''-Methoden existieren. Verwende die Methode 
 +''ausgeben(s: String)'', um eine Zeile Text ausdrucken zu lassen.
  • faecher/informatik/oberstufe/modellierung/2019a/start.txt
  • Zuletzt geändert: 16.12.2021 08:56
  • von sbel