Benutzer-Werkzeuge

Webseiten-Werkzeuge


listen:trennungstrukturdaten:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
listen:trennungstrukturdaten:start [2024/09/27 07:13] – [Klassendiagramm] Martin Pabstlisten:trennungstrukturdaten:start [2024/09/27 08:03] (aktuell) – [Klassendiagramm] Martin Pabst
Zeile 24: Zeile 24:
 **Vorgehen in Prüfungen (auch Abitur):** \\  **Vorgehen in Prüfungen (auch Abitur):** \\ 
 Der Lehrplan unterscheidet die Fälle Aggregation, Komposition und Assoziation bisher nicht in der Symbolik, auch in den Musterlösungen zum Abitur wird in allen drei Fällen nur die Symbolik der Assoziation (Linie mit Verb/Nomen dran und Pfeil für die Leserichtung) verwendet. Entsprechend dürfen auch Sie in schriftlichen Prüfungen verfahren. \\  Der Lehrplan unterscheidet die Fälle Aggregation, Komposition und Assoziation bisher nicht in der Symbolik, auch in den Musterlösungen zum Abitur wird in allen drei Fällen nur die Symbolik der Assoziation (Linie mit Verb/Nomen dran und Pfeil für die Leserichtung) verwendet. Entsprechend dürfen auch Sie in schriftlichen Prüfungen verfahren. \\ 
-**Das Symbol für Vererbung (Dreieckpfeil) wird aber sehr wohlverwendet.**+**Das Symbol für Vererbung (Dreieckpfeil) wird aber sehr wohl verwendet.**
 </WRAP> </WRAP>
  
 ===== Umsetzung in Java ===== ===== Umsetzung in Java =====
-=== Die Klasse Inhalt ===+=== Die Klasse Kunde ===
 Die Klasse ''Kunde'' muss für die Speicherung in der Warteschlange überhaupt nicht mehr angepasst werden: Die Klasse ''Kunde'' muss für die Speicherung in der Warteschlange überhaupt nicht mehr angepasst werden:
 <code learnj> <code learnj>
Zeile 43: Zeile 43:
 <code learnj> <code learnj>
 public class Warteschlange { public class Warteschlange {
-    private Knoten erster+   Knoten anfang
-    +   Knoten ende;
 } }
  
 public class Knoten { public class Knoten {
-    private Knoten nachfolger; +   Knoten nachfolger; 
-    private Inhalt inhalt+   Kunde daten
-         + 
-    public Knoten(Inhalt inhalt){ +   Knoten(Kunde kunde) { 
-       this.inhalt inhalt+      this.daten kunde
-    }+   }
 } }
 </code> </code>
Zeile 149: Zeile 149:
  
 <script type="text/plain" title="Hauptprogramm.java"> <script type="text/plain" title="Hauptprogramm.java">
-Supermarktkasse s = new Supermarktkasse();+Warteschlange s = new Warteschlange();
 s.hintenAnstellen(new Kunde("Max")); s.hintenAnstellen(new Kunde("Max"));
 s.hintenAnstellen(new Kunde("Tina")); s.hintenAnstellen(new Kunde("Tina"));
Zeile 155: Zeile 155:
 s.hintenAnstellen(new Kunde("Tim")); s.hintenAnstellen(new Kunde("Tim"));
  
-println(s.getAnzahlIterativ());+println(s.hatKunde("Silke")); 
 +println(s.hatKunde("Tom"));
  
-println(s.erstenEntnehmen().name); 
-println(s.erstenEntnehmen().name); 
-println(s.erstenEntnehmen().name); 
  
- +class Warteschlange {
-class Supermarktkasse {+
    Knoten anfang;    Knoten anfang;
    Knoten ende;    Knoten ende;
Zeile 203: Zeile 200:
    int getAnzahlRekursiv() {    int getAnzahlRekursiv() {
       if(anfang == null) return 0;       if(anfang == null) return 0;
-      return anfang.getAnzahlRekursiv();+      return anfang.getAnzahl();
    }    }
 +
 +   Kunde gibDenNtenKunden(int n) {
 +      if(n == 0) return anfang.getDaten();
 +      return anfang.gibDenNtenKunden(n);
 +   }
 +
 +   boolean hatKunde(String name) {
 +      if(anfang == null) return false;
 +      return anfang.hatKunde(name);
 +   }
 +
 } }
  
Zeile 215: Zeile 223:
    }    }
  
-   int getAnzahlRekursiv() {+   boolean hatKunde(String name) { 
 +      if(daten.name == name) return true; 
 +      if(nachfolger == null) return false; 
 +      return nachfolger.hatKunde(name); 
 +   } 
 + 
 +   int getAnzahl() {
       if(nachfolger == null) return 1;       if(nachfolger == null) return 1;
-      return nachfolger.getAnzahlRekursiv() + 1;+      return nachfolger.getAnzahl() + 1;
    }    }
  
Zeile 230: Zeile 244:
    Kunde getDaten() {    Kunde getDaten() {
       return daten;       return daten;
 +   }
 +
 +   Kunde gibDenNtenKunden(int n) {
 +      if(n == 1) return daten;
 +      if(nachfolger != null) {
 +         return nachfolger.gibDenNtenKunden(n - 1);
 +      }
 +
 +      // Fehler: n ist zu groß!
 +      return null;
    }    }
 } }
Zeile 239: Zeile 263:
       this.name = name;       this.name = name;
    }    }
-} +}</script>
-</script>+
  
 </div> </div>
listen/trennungstrukturdaten/start.1727421191.txt.gz · Zuletzt geändert: 2024/09/27 07:13 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki