MINT üben

Projekt: Bücherverwaltung

Zwei Textaufgaben mit Hinweisen und Erwartungshorizont – dasselbe Vorgehen, übertragen auf den Spieleschrank der Brettspiel-AG.

Dein Fortschritt:
0 / 0 Aufgaben
1

Der Spieleschrank der Brettspiel-AG

AFB I–II

Die 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)
Ein neues Spiel ist nicht ausgeliehen.
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.
  1. Beschreibe die Beziehung zwischen den beiden Klassen in Material 1 und die Aufgabe des Attributs spiele.
  2. Wende die Methode suche auf "Uno" und auf "Tabu" an. Gib jeweils die Zahl der Namensvergleiche und die Rückgabe an.
  3. Dixit und Azul werden ausgeliehen: schrank.suche("Dixit").setAusgeliehen(true); und schrank.suche("Azul").setAusgeliehen(true); Ermittle danach die Rückgabe von anzahlVerfuegbar() mit einer Tracetabelle.
  4. Gib drei unterschiedliche Testfälle für die geplante Methode ausleihen an – 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.