Dein Fortschritt:
0 / 0 Aufgaben
1
Der Spieleschrank der Brettspiel-AG
AFB I–IIDie Brettspiel-AG verleiht ihre Spiele in den Pausen. Nach dem Vorbild der Bücherverwaltung plant sie ein Programm: Jedes Spiel hat einen Namen, eine kleinste und eine größte Zahl an Mitspielenden und ist ausgeliehen oder nicht. Der Spieleschrank verwaltet alle Spiele in einer Liste. Im Schrank stehen in dieser Reihenfolge: Catan (3–4), Dixit (3–8), Uno (2–10) und Azul (2–4).
Später soll eine Methode ausleihen(name) dazukommen: Sie gibt true zurück und markiert das Spiel als ausgeliehen, wenn es im Schrank steht und frei ist – sonst false.
Material 1: Klassendiagramm
Spieleschrank
- - spiele: Liste vom Typ Spiel
- c Spieleschrank()
- + hinzufuegen(s: Spiel)
- + suche(name: Zeichenkette): Spiel
- + anzahlVerfuegbar(): Ganzzahl
verwaltet0..*
Spiel
- - name: Zeichenkette
- - minSpieler: Ganzzahl
- - maxSpieler: Ganzzahl
- - ausgeliehen: Wahrheitswert
- c Spiel(name: Zeichenkette, minSpieler: Ganzzahl, maxSpieler: Ganzzahl)
- + getName(): Zeichenkette
- + getMinSpieler(): Ganzzahl
- + getMaxSpieler(): Ganzzahl
- + istAusgeliehen(): Wahrheitswert
- + setAusgeliehen(ausgeliehen: Wahrheitswert)
Material 2: Zwei Methoden der Klasse Spieleschrank
public Spiel suche(String name) {
for (Spiel s : spiele) {
if (s.getName().equals(name)) {
return s;
}
}
return null;
}
public int anzahlVerfuegbar() {
int anzahl = 0;
for (Spiel s : spiele) {
if (!s.istAusgeliehen()) {
anzahl++;
}
}
return anzahl;
}
for (Spiel s : spiele) geht die Liste von vorn nach hinten durch.- Beschreibe die Beziehung zwischen den beiden Klassen in Material 1 und die Aufgabe des Attributs
spiele. - Wende die Methode
sucheauf"Uno"und auf"Tabu"an. Gib jeweils die Zahl der Namensvergleiche und die Rückgabe an. - Dixit und Azul werden ausgeliehen:
schrank.suche("Dixit").setAusgeliehen(true);undschrank.suche("Azul").setAusgeliehen(true);Ermittle danach die Rückgabe vonanzahlVerfuegbar()mit einer Tracetabelle. - Gib drei unterschiedliche Testfälle für die geplante Methode
ausleihenan – jeweils Aufruf, Ausgangslage und erwartetes Ergebnis.
Hinweise
Hinweis zu Aufgabe a)
Was bedeutet die Linie mit „verwaltet“ und „0..*“? Welcher Datentyp steckt hinter „Liste vom Typ Spiel“?
Hinweis zu Aufgabe b)
Gehe die Spiele in der Reihenfolge des Schranks durch. Die Methode endet sofort mit
return, sobald der Name passt.„Anwenden“ heißt: das Verfahren mit genau diesen Werten Schritt für Schritt durchführen.Hinweis zu Aufgabe c)
Spalten: aktuelles Spiel
s, s.istAusgeliehen(), anzahl.Hinweis zu Aufgabe d)
Welche Fälle kann es geben? Denke an ein freies, ein schon ausgeliehenes und ein gar nicht vorhandenes Spiel.
