Announcement

Collapse
No announcement yet.

Eine Einfache Spielverwaltung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Eine Einfache Spielverwaltung

    Hallo Leute ich habe folgende Aufgabenstellung erhalten:

    1. Erzeugen Sie mit BlueJ ein neues Projekt (Menü: Project/New Project. . . ). Geben Sie dem Projekt den Namen Spieleverwaltung. Bitte legen Sie das Projekt so ab, dass sie es im Dateisystem ihres Rechners auch wiederfinden! Führen Sie alle weiteren Schritte in BlueJ aus, speichern Sie dabei die Ergebnisse regelmäßig und stellen Sie sicher, dass Ihre Lösung compiliert und wunschgemäß funktioniert.

    2. Erzeugen Sie mit dem Button New Class. . . eine Klasse mit dem Namen Spieleverwaltung und eine Klasse mit dem Namen Spiel.

    3. BlueJ hat die beiden Klassen mit einem vorgegebenen Grundgerüst erzeugt, ändern Sie die Klassen nun wie folgt:

    a) Entfernen Sie aus beiden Klassen das vorgegebene Datenfeld x, dessen Initialisierung im Konstruktor und die Methode sampleMethod

    b) Definieren Sie für die Klasse Spieleverwaltung ein Datenfeld spielesammlung, das einen Verweis auf eine Sammlung von Objekten vom Typ Spiel aufnehmen kann. Vergessen Sie nicht die import-Anweisung am Anfang des Quelltextes.
    c) Erzeugen Sie im Konstruktor von Spieleverwaltung das Objekt für die Sammlung und weisen Sie es dem Datenfeld zu.
    d) Schreiben Sie für die Klasse Spieleverwaltung eine Methode int anzahlSpiele(), die die Anzahl der in spielesammlung gespeicherten Objekte zurückliefert.

    e) Definieren Sie für die Klasse Spiel die folgenden Datenfelder:
    • name (vom Typ Zeichenkette)
    • upc (ganze Zahl)
    • minSpieler (ganze Zahl)
    • maxSpieler (ganze Zahl)


    f) Löschen Sie den parameterlosen Konstruktor von Spiel und schreiben Sie einen Konstruktor, der vier den Datenfeldern entsprechende Parameter akzeptiert und deren Werte an die Datenfelder zuweist.

    4. Schreiben Sie für die Klasse Spieleverwaltung die Methode void spielHinzufuegen(Spiel spiel), die das als Parameter übergebene Spiel der Sammlung spielesammlung hinzufügt.

    5. Schreiben Sie für die vier Datenfelder der Klasse je eine sondierende Methode, die denWert des Datenfelds zurückliefert. Lassen Sie den Namen jeder dieser Methoden mit gib beginnen, gefolgt vom Namen des
    Datenfelds (d.h. die sondierende Methode für das Datenfeld name erhält den Namen gibName usw.). Die Methoden benötigen keine Parameter, achten Sie aber darauf den korrekten Ergebnistyp anzugeben.

    6. Schreiben Sie für die Klasse eine Methode void ausgeben(), die den Wert des Datenfelds name, gefolgt von einer öffnenden runden Klammer, dem Wert des Datenfelds minSpieler, einem Bindestrich, dem Wert des Datenfelds maxSpieler, einem Leerzeichen, der Zeichenkette "Spieler" und einer schließenden runden Klammer ausgibt.

    1. Schreiben Sie eine Methode void gibGeeigneteSpiele(int anwesendeSpieler) die alle Spiele in der Sammlung spielesammlung ausgibt, die alle der folgenden Kriterien erfüllen:
    Der Wert des Datenfelds minSpieler ist h¨ochstens so groß wie der Wert des ¨ubergebenen Parameters.
    Der Wert des Datenfelds maxSpieler ist mindestens so groß wie der Wert des ¨ubergebenen Parameters.

    Dazu mein Lösungsansatz:

    Klasse Spielverwaltung:

    import java.util.ArrayList;
    /**
    * Write a description of class Spieleverwaltung here.
    *
    * @author (your name)
    * @version (a version number or a date)
    */
    public class Spieleverwaltung
    {
    private ArrayList<Spiel> spielesammlung;

    public Spieleverwaltung() {
    spielesammlung = new ArrayList<Spiel>();
    }

    public int anzahlSpiele() {
    return spielesammlung.size();
    }

    public void spielHinzufuegen(Spiel spiel){
    spielesammlung.add(spiel);
    }


    public void gibGeeigneteSpiele(int anwesendeSpieler) {
    int index = 0;
    while (index < spielesammlung.size()) {
    if (minSpieler <= anwesendeSpieler && maxSpieler >= anwesendeSpieler) {
    System.out.println(spielesammlung.get(index));
    index++;
    }
    else{
    index++;
    }
    }
    }
    }

    /**
    * Write a description of class Spiel here.
    *
    * @author (your name)
    * @version (a version number or a date)
    */
    public class Spiel
    {
    String name;
    int upc;
    int minSpieler;
    int maxSpieler;


    public Spiel(
    String nameWert,
    int upcWert,
    int minSpielerWert,
    int maxSpielerWert) {

    name = nameWert;
    upc = upcWert;
    minSpieler = minSpielerWert;
    maxSpieler = maxSpielerWert;
    }

    public void gibName(String name){
    name = name;
    }

    public String gibName() {
    return name;
    }


    void gibUpc(int upc){
    upc = upc;
    }

    public int gibUpc() {
    return upc;
    }

    public void gibMinSpieler(int minSpieler){
    minSpieler = minSpieler;
    }

    public int gibMinSpieler() {
    return minSpieler;
    }

    void gibMaxSpieler(int maxSpieler){
    maxSpieler = maxSpieler;
    }

    public int gibMaxSpieler() {
    return maxSpieler;
    }

    void ausgeben(){
    System.out.print(name);
    System.out.print("(");
    System.out.print(minSpieler);
    System.out.print("-");
    System.out.print(maxSpieler);
    System.out.print(" ");
    System.out.print("Spieler)");
    }

    }




    Meine Frage ist nun ob das soweit richtig ist bis auf die Methode void gibGeeigneteSpiele(int anwesendeSpieler)?

    Bezüglich der o. g. Methode weiß ich auch nicht wie ich die entsprechende Werte minSpieler und maxSpieler übergeben kann bzw. wie ich diese aus der Klasse Spiel in die Klasse Spielauswertung übertragen kann :-(

    Wäre euch echt verbunden wenn ihr mir weiterhelfen könntet.

    Danke.
Working...
X