Unterrichtsmaterialien für den Informatikunterricht

Vorbereitung auf Klassenarbeit 1 (19.10.2017)

Stand 17.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).