Sie sind auf Seite 1von 2

Aufgabe fr Studierende der Medieninformatik

In diesem Semester werden Sie eine Anwendung implementieren, mit der Wissenskarten bzw.
Lernkarten verwaltet werden knnen.
Pflichtaufgabe 1 umfasst die grundlegenden Datenstrukturen
Pflichtaufgabe 2 wird die Umsetzung einer graphischen Oberflche sein
Pflichtaufgabe 3 wird die Verwaltung der Daten flexibilisieren (Verkettete Liste, Suchen, Sortieren)
Die Pflichtteile dieser Aufgabe 1 besteht aus den Teilaufgaben 1a-e.
Bonuspunkte fr diese Teilaufgabe knnen NUR am 26.04.2016 und 24.05.2016 erreicht werden.
1a) Erstellen Sie eine Datenstruktur Wissenskarte, mit der Sie Wissenseinheiten (z.B.
Definitionen, Merkstze, Formeln usw.) speichern knnen.
Anforderungen:

Die Datenstruktur muss mindestens folgende Eigenschaften besitzen:


o Titel (z.B. Immanuel Kant)
o Inhalt der Karte (z.B. Deutscher Philosoph der Aufklrung)
o Inhalt der Rckseite (z.B. Lebte 1724-1804. Wichtigstes Werk: Kritik der reinen
Vernunft)
o Schlsselwrter (z.B. Kant, Philosophie, Urteilskraft)
o Aktuelle Seite (wird gerade die Vorder- oder die Rckseite gezeigt?)
Die Eigenschaften sollen soweit wie mglich durch den private Modifizierer geschtzt
werden. Stellen Sie entsprechende Zugriffsmethoden bereit.
Die Datenstruktur muss mind. ber folgende Methoden verfgen:
o String getAktuelleSeite() liefert den Titel und Inhalt der aktuellen
Seite (d.h. Vorder- oder Rckseite)
o String flip() dreht die Karte um (Wechsel zwischen Vorder- und
Rckseite) und liefert den Inhalt der nun aktuellen Seite zurck
o boolean enthaelt (String suchbegriff)
liefert true wenn der suchbegriff in den Schlsselwrtern vorkommt

Erzeugen Sie mindestens fnf Objekte dieser Klasse, z.B.


Wissenskarte kant = new Wissenskarte (Immanuel Kant , )

1b) Erstellen Sie eine weitere Datenstruktur Frage, mit der eine Frage und eine Antwort fr die
jeweilige Wissenskarte festgelegt wird. Anforderungen:

Die Datenstruktur Frage muss mindestens folgende Eigenschaften besitzen:


o Frage (z.B. Wann wurde Kant geboren?)
o Antwort (z.B. 1724)
Legen Sie in der Klasse Wissenskarte eine zustzliche Eigenschaft frage an. Diese
enthlt eine Referenz auf ein Frage-Objekt. Legen Sie fr alle Wissenskarten auch eine
Frage fest.
Definieren Sie fr die Klasse Wissenskarte die Methode getFrage(), die das FrageObjekt liefert

1c) Speichern Sie alle von Ihnen erzeugte Wissenskarten in einer ArrayList.
http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
Die ArrayList soll den Typparameter Wissenskarte haben, z.B.:
ArrayList <Wissenskarte> alleKarten = new ArrayList<Wissenskarte> ();

1d) Beim Starten des Programms soll der Benutzer einen Suchbegriff eingeben (z.B. Kant) und das
Programm sucht nach der passenden Wissenskarte.
Durchlaufen Sie hierzu alle Wissenskarte in alleKarten und berprfen Sie, ob der Suchbegriff in
den Schlsselwrtern der jeweiligen Wissenskarte vorkommt. Wenn keine Karte gefunden
wurde, geben Sie einen entsprechenden Hinweis aus.
Sobald eine Karte gefunden wurde, geben Sie bitte den Titel und die Vorderseite aus. Das Programm
muss sich merken, welche Karte gefunden wurde.
Der Benutzer kann nun

Eine andere Karte suchen (Eingabe eines beliebigen Begriffs)


Die Karte drehen (Eingabe flip Es wird sofort der Inhalt der Rckseite ausgegeben.)
Die Frage oder Antwort anzeigen lassen.
(Eingabe teste mich Frage anzeigen. Eingabe lsung Antwort anzeigen.)

Verwenden Sie die Scanner Klasse zum Einlesen einer Zeile ber die Konsole.
1e) Erstellen Sie eine Unterklasse Lernkarte (von Wissenskarte abgeleitet). In Objekten dieser
Klasse werden mehrere Fragen gespeichert. Verwenden Sie hierfr eine ArrayList<Frage>, in
der mehrere Frage-Objekte abgelegt sind.
Definieren Sie folgende zustzliche Methode in dieser Klasse:
void addFrage (String frage, String antwort)
Erzeugt ein neues Frage-Objekt und fgt dieses der ArrayList mit den Fragen hinzu
berschreiben Sie die getFrage()-Methode der Oberklasse, so dass beim Aufruf ein zufllig
ausgewhltes Frage-Objekt zurckgeliefert wird.

Viel Erfolg!