Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Projekt „Filmsammlung“

Zur Einführung generischer Datentypen, Sammlungen und der Iteration über Sammlungen z.B. mit der erweiterten for-Schleife oder Lambdaausdrücken kann das Projekt „Filmsammlung“ als Beispiel genutzt werden.

Programmierparadigmen

Abbildung 1: Klassendiagramm des Projektes „Filmsammlung“ ZPG Informatik [CC BY-SA 4.0 DE], aus 03_unterrichtsverlauf.odt, bearbeitet

Die Projektidee geht von einer Filmsammlung aus, wie sie auf Seiten wie https://www.imdb.com/ oder https://moviepilot.de genutzt werden. Dort sind Informationen zu sowohl Kino/Fernsehfilmen als auch Serien und ihre Episoden zu finden. Manchmal können Filme vom Nutzer bewertet werden oder zumindest wird eine Bewertung angezeigt. Im vorliegenden Projekt soll die Bewertung einer Serie aus den Bewertungen der Episoden der Serie berechnet werden. Der Grundaufbau des Projekts ist in Abbildung 1 beschrieben.

Das Projekt ist so aufgebaut, dass es prinzipiell direkt aus BlueJ über die Direkteingabe und Aufruf statischer Methoden gesteuert wird. Hierfür gibt es die Klasse Basis, welche es als Unit- Test ermöglicht einen Objektzustand vorzugeben. Folgende Objekte werden dadurch fixiert:

s: Filmsammlung  //hier sind nur Serien enthalten
kf: Filmsammlung //hier sind nur Kinofilme enthalten
sG: FilmsammlungGeneric
kfG: FilmsammlungGeneric

Auf diesem Zustand können dann von der Direkteingabe aus Operationen durchgeführt werden. In der Klasse Aufgabe können einfache Aufgaben in je einer statischen Methode implementiert und in der Direkteingabe aufgerufen werden. Zum Beispiel Aufgabe a1 mit einer Filmsammlung von Kinofilmen:

Aufgabe.a1(kf);

Die jeweilige Aufgabe ist dabei direkt im Code als Methodenkommentar beschrieben und wird hier nicht dupliziert.

Mit der Klasse Daten stehen Beispieldaten bereit, welche über statische Methoden direkt gentutzt werden können.

Daten.kinofilme().values() //liefert eine Collection von Kinofilmen.

Die Klasse Filmsammlung hat einen Konstruktor, welcher das Ergebnis obiger Anweisung als konkretes Argument annimmt.

Die Klasse Settings ermöglicht es Methodenaufrufen Verbosität hinzufügen, welche an- und abgeschaltet werden kann. Infos zur genauen Nutzung liefert die Dokumentation im Code.

 

Unterrichtsverlauf: Herunterladen [odt][216 KB]

 

Weiter zu Unterrichtsgang