Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Einstieg - Verwaltung von Bankkonten

Eine Bankwelt im Computer

Wenn ein Programm zur Verwaltung von Bankkonten eingesetzt werden soll, dann muss es Kunden- und Kontodaten erfassen und Vorgänge im Bankwesen wie Ein- und Auszahlungen sowie Überweisungen durchführen können. Die Bankwelt mit bestimmten Gegenständen (Kunden, Konten, ...) und Vorgängen (Ein-, Auszahlungen, ...) muss also im Programm geeignet erfasst werden.

Im Folgenden werden Objekte benutzt, um eine Bankwelt softwaretechnisch zu erfassen. Das folgende Objektdiagramm zeigt eine mögliche objektorientierte Beschreibung der Gegenstände einer Bankwelt.

Objektdiagramm

Die Vorgänge einer Bankwelt werden durch die Operationen der Objekte repräsentiert. Im folgenden Klassendiagramm zur Bankwelt sind die Dienste (Operationen) aufgelistet, die die Objekte zur Verfügung stellen.

Klassendiagramm

Aufgabe 1

(a) Welches Objekt ist für welche Aufgaben zuständig?

(b) Welche Vereinfachungen sind bei dieser Beschreibung einer Bankwelt vorgenommen? Schau dir z.B. die Anzahl der Konten an, die ein Kunde haben kann.

Aufgabe 2

Lade dir die Datei bank.txt mit einer Implementierung der Klassen herunter und benenne sie in bank.py um. Versuche, mit Objekten zu den hier vorgegebenen Klassen Vorgänge der Bankwelt durchzuspielen. Das folgende Python-Testprogramm zeigt, wie das gehen könnte.

from bank import *
bank = Bank()
# Konto eröffnen
print("Neues Konto")
name = input("Name: ")
vorname = input("Vorname: ")
bank.kontoEroeffnen(name, vorname)
print()
# Konto eröffnen
print("Neues Konto")
name = input("Name: ")
vorname = input("Vorname: ")
bank.kontoEroeffnen(name, vorname)
print()
# Konto eröffnen
print("Neues Konto")
name = input("Name: ")
vorname = input("Vorname: ")
bank.kontoEroeffnen(name, vorname)
print()
# Ausgabe der Kunden und Konten
for kunde in bank.kunden:
    print("Kunde:")
    print("Name:", kunde.name)
    print("Vorname:", kunde.vorname)
    print("Kontonummer:", kunde.konto.nr)
    print("Kontostand:", kunde.konto.stand)
    print()
# Transaktion
print("Einzahlung")
kontonummer = int(input("Kontonummer: "))
betrag = float(input("Betrag: "))
bank.einzahlen(kontonummer, betrag)
print()
# Transaktion
print("Auszahlung")
kontonummer = int(input("Kontonummer: "))
betrag = float(input("Betrag: "))
bank.auszahlen(kontonummer, betrag)
print()
# Transaktion
print("Überweisung")
vonKontonummer = int(input("Von Kontonummer: "))
nachKontonummer = int(input("Nach Kontonummer: "))
betrag = float(input("Betrag: "))
bank.ueberweisen(vonKontonummer, nachKontonummer, betrag)
print()
# Ausgabe der konten
for kunde in bank.kunden:
    print("Kunde:")
    print("Name:", kunde.name)
    print("Vorname:", kunde.vorname)
    print("Kontonummer:", kunde.konto.nr)
    print("Kontostand:", kunde.konto.stand)

Aufgabe 3

Ändere das Testprogramm aus Aufgabe 2 so, dass vor der Überweisung eine Übersicht über die existierenden Konto(nummmern) und ihren jeweiligen Kontostand angezeigt wird.

Aufgabe 4

Im Testprogramm wird eine Kontenübersicht über die Liste aller Kunden ausgegeben.:

# Ausgabe der konten
for kunde in bank.kunden:
    print("Kunde:")
    ...

Ändere das Testprogramm so, dass eine Kontenübersicht über die Liste aller Konten angezeigt wird.

Aufgabe 5

Bisher wurde die Methode kontoHinzufuegen der Klasse Kunde nicht verwendet Ändere die Klassen Kunde und Bank aus Aufgabe 2 so, dass ein neues Konto erzeugt werden kann und einem bestehenden Kunden zugeordnet wird, so dass dieser nun auch mehrere Konten hat. Achte darauf, dass die Kennt-Beziehung in beide Richtungen hergestellt wird. Passe auch das Testprogramm entsprechend an.

X

Fehler melden

X

Suche