Hier einige Hinweise zur Vorbereitung auf die Klassenarbeit.

ArrayList-Methode size()

Nur für den Fall, dass mir jemand unterstellt, die Methode size() sei im Unterricht noch nie zur Sprache gekommen:

  • Am Montag, 19.06.2017, haben wir im Unterricht Übungen zur ArrayList bearbeitet, wo u.a. die Methode size() behandelt wurde. Möglicherweise haben Sie die ausführlichen Lösungen zu diesen Übungen auch als Video betrachtet, bei 14:25 wird die size()-Methode verwendet (klick).
  • Am Montag, 10.07.2017, haben wir im Unterricht zu diesem Arbeitsblatt die Übungen 1d und 1e bearbeitet. Bei 1e wurde der Durchschnitt von int-Werten in einer ArrayList berechnet, dazu brauchen wir die Methode size().
  • Die Hausaufgabe auf 14.09.2017 war wiederholend noch einmal explizit die Bearbeitung der Übungen 1d und 1e (Link zur Hausaufgabenseite).

Girokonto-Projekt

Das besprochene Projekt mit den Aufgaben finden Sie hier: 171008_GIROKONTOPROJEKT.zip

Die Lösungen sehen aus wie in diesem Textdokument (startklasse_mit_loesungen.txt) oder wie unten - bitte beachten Sie, dass ich das folgende Dokument ohne die Möglichkeit zu testen direkt hier reingeschrieben habe, es kann also schon sein, dass irgendwo eine Klammer o.ä. fehlt; geben Sie mir dann kurz per Mail Bescheid.

Da wir verschachtelte Schleifen weglassen wollten, habe ich für die Übung(en) 7 auch keine Lösung reingetippt.

Java-Code
    // 1) Lassen Sie sich für kb1 name, vorname, kreditlimit ausgeben. // Muss genau SO aussehen:   // KB1: van Helsing, Dietmar - Kreditlimit: 10000.0   System.out.println("\t+++++++++++ Aufgabe 1 ++++++++++");   System.out.println("KB1: " + kb1.getName() + ", " + kb1.getVorname() + " - Kreditlimit: " + kb1.getKreditlimit()); // 2) Geben Sie eine Liste aller Kontoinhaber für Kundenbetreuer kb1 aus. // Muss genau SO aussehen:   // Kundenbetreuer van Helsing betreut Kontoinhaber Metz (Kundennr.: 1) // Kundenbetreuer van Helsing betreut Kontoinhaber Bayazitoglu (Kundennr.: 2)   System.out.println("\t+++++++++++ Aufgabe 2 ++++++++++"); for(Kontoinhaber k : kb1.getKunden()) { System.out.println("Kundenbetreuer " + kb1.getName() + " betreut Kontoinhaber " + k.getName() + " (Kundennr.: " + k.getKundennumer() + ")"); } // 3) Geben Sie für den Kundenbetreuer kb2 eine liste aller Kontoinhaber und ihrer Girokonten aus (Name, Kundenummer, Girokontonr, Kontostand). // Muss genau SO aussehen:   //Kundenbetreuer Nr. 4, Knirschi van Dracula, betreut //- Maier (Kundenr. 3), Girokonto-Nr. 441 mit 43333.0 Euro. //- Huber (Kundenr. 4), Girokonto-Nr. 45551 mit 3123.0 Euro. //- Burger (Kundenr. 5), Girokonto-Nr. 566641 mit 12.0 Euro.   System.out.println("\t+++++++++++ Aufgabe 3 ++++++++++"); System.out.println("Kundenbetreuer Nr. " + kb2.getMitarbeiternummer() + ", " + kb2.getVorname + " " + kb2.getName() + ", betreut");   for(Kontoinhaber z : kb2.getKunden()) { System.out.println("- " + z.getName() + "(Kundenr. " + z.getKundennumer() + "), Girokonto-Nr. " + z.getGirokonto().getKontonummer() + " mit " + z.getGirokonto().getKontostand() + " Euro."); }     // 4) Geben Sie für das Girokonto 4 (gk4) eine Liste aller zugehörigen Darlehen aus. // Muss genau SO aussehen:   // Girokonto Nr. 45551 hat folgende Darlehen zugeordnet: // Nr. 66555 8888.0 Euro 2 Jahre // Nr. 3332325 999999.0 Euro 7217 Jahre // Nr. 1555541 1006.0 Euro 833 Jahre // Nr. 312122 111.0 Euro 74 Jahre   // verwenden Sie \t für die Tabstopps/Abstaende zwischen den "Spalten"   System.out.println("\t+++++++++++ Aufgabe 4 ++++++++++"); System.out.println("Girokonto Nr. " + gk4.getKontonummer() + " hat folgende Darlehen zugeordnet:"); for(Darlehen dl : gk4.getDarlehen()) { System.out.println("Nr." + dl.getDarlehensnummer() + "\t" + d.getDarlehensbetrag() + "Euro\t" + dl.getLaufzeit() + " Jahre"); }   // 5a) Berechnen Sie für das Girokonto 4 (gk4) die Summe aller Darlehensbetraege // Loesung: 1010004.0 // Tipp: lokale Variable summeDarlehensbetraege:double VOR der For-Schleife deklarieren   System.out.println("\t+++++++++++ Aufgabe 5a ++++++++++"); double summeDarlehensbetraege = 0; for(Darlehen dl : gk4.getDarlehen()) { summeDarlehensbetraege = summeDarlehensbetraege + dl.getDarlehensbetrag(); } System.out.println("Summe aller Darlehen: " + summeDarlehensbetraege);     // 5b) Berechnen Sie für das Girokonto 4 (gk4) den Durchschnitt aller Darlehensbetraege // Loesung: 252501.0 // Tipp: Gleiche Aufgabe wie 5a, aber den Endwert teilen durch die Anzahl der Elemente in der ArrayList (size() )   System.out.println("\t+++++++++++ Aufgabe 5b ++++++++++"); double summeDarlehensbetraege = 0; for(Darlehen dl : gk4.getDarlehen()) { summeDarlehensbetraege = summeDarlehensbetraege + dl.getDarlehensbetrag(); }   System.out.println("Durchschnittshöhe aller Darlehen: " + summeDarlehensbetraege/gk4.getDarlehen().size());   // oder mit lokalen variablen: // int anzahlAllerDarlehen = gk4.getDarlehen().size()); // double schnitt = summeDarlehensbetraege/schnitt; // System.out.println("Durchschnittshöhe: " + schnitt + " Euro");     // 6a) Berechnen Sie fuer das Girokonto 4 (gk4), welches Darlehen die laengste Laufzeit hat. // Loesung: 7217 // Tipp: Deklarieren Sie vor der For-Schleife eine lokale Variable maximum. In der For-Schleife pruefen Sie fuer jedes Darlehen, // ob die Laufzeit groesser ist als maximum; wenn ja, erhaelt Maximum diesen Wert. // ACHTUNG: Das ist ein Mechanismus, den Sie sehr haeufig in Abiaufgaben finden (ebenso Durchschnittsberechnung wie in 5b)   System.out.println("\t+++++++++++ Aufgabe 6a ++++++++++");   double laengsteLaufzeit = 0; for(Darlehen dl : gk4.getDarlehen()) { if(dl.getLaufzeit() > laengsteLaufzeit) { laengsteLaufzeit = dl.getLaufzeit(); } } System.out.println("Längste Laufzeit: "+ laengsteLaufzeit + " Jahre.");   // 6b) wie 6a, geben Sie aber bitte noch die Darlehensnummer und den Namen des Kontoinhabers aus! // Muss genau SO aussehen:   // Laengstes Darlehen: Nr. 3332325 mit 7217 Jahren, Kontoinhaber: Huber   System.out.println("\t+++++++++++ Aufgabe 6b ++++++++++");   double laengsteLaufzeit = 0; int darlehensNr = 0; String darlehensNehmer = "";   for(Darlehen dl : gk4.getDarlehen()) { if(dl.getLaufzeit() > maximum){ laengsteLaufzeit = dl.getLaufzeit(); darlehensNr = dl.getDarlehensnummer(); darlehensNehmer = dl.getAbwicklungskonto().getKontoinhaber().getName(); } } System.out.println("Laengestes Darlehen: Nr. " + darlehensNr + " mit " + laengsteLaufzeit + " Jahren, Kontoinhaber: " + darlehensNehmer);  

Klassendiagramm

Wenn sie üben wollen, machen Sie doch eine beliebige Abi-Aufgabe (i.d.R. immer die erste Aufgabe des zweiten Aufgabenblockes).