Vorbereitung auf Klassenarbeit 1 (19.10.2017)
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.
// 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).