• Keine Ergebnisse gefunden

Blatt 4: Klassen im Zusammenspiel

N/A
N/A
Protected

Academic year: 2022

Aktie "Blatt 4: Klassen im Zusammenspiel"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Hochschule Niederrhein Objektorientierte Prof. Dr. Rethmann

Fachbereich 03 Anwendungsentwicklung Prof. Dr. Davids

Bachelor Informatik Sommersemester 2018 Ubung 4 ¨

Klassen im Zusammenspiel

Aufgabe 11:

Implementieren Sie das aus der Vorlesung bekannte Bankbeispiel und integrieren Sie die Klassen Sparkonto und Girokonto aus Aufgabe 9, ¨ Ubungsblatt 3. Die parametrisierte Klasse Liste aus der Vorlesung kann zur Speicherung der Kontobewegungen innerhalb der Klasse Konto verwendet werden. Zur Speicherung der Kunden und Konten in der Klasse Bank eignet sich das parametrisierte W¨ orterbuch aus dem Praktikum. So wird bspw. zu einer Kontonummer das entsprechende Konto abgelegt. Ein m¨ ogliches Klassendiagramm ist in Abbildung 1 dargestellt.

Die Angabe des Datums bei Ein-/Auszahlungen und ¨ Uberweisungen w¨ urde in einer echten Bank normalerweise automatisch vom System mit dem aktuellen Datum vorbelegt werden.

Damit wir aber die Zinsberechnung testen k¨ onnen, werden wir immer explizit das Datum von der Tastatur eingeben.

Wir stellen Ihnen eine Benutzeroberfl¨ ache zur Verf¨ ugung, die wie folgt aussieht:

+---+

| Hauptmen¨ u |

+---+

( 1) Einzahlung ( 2) Auszahlung ( 3) ¨ Uberweisung ( 4) Kontoauszug

( 5) Kundenliste anzeigen ( 6) Kontoliste anzeigen ( 7) Stammdaten-Dialog ( 8) Daten einlesen ( 9) Daten pspeichern (10) Zinsgutschrift (11) Programm beenden

--- Ihre Auswahl?

+---+

| Stammdaten-Dialog | +---+

(1) Kunde anlegen (2) Kunde entfernen (3) Kundendaten ¨ andern (4) Konto anlegen (5) Konto entfernen (6) Abbruch

--- Ihre Auswahl?

Bei einer Einzahlung wird zun¨ achst die Kontonummer eingegeben und gepr¨ uft, ob ein entsprechendes Konto vorhanden ist. Anschließend wird der Betrag und das aktuelle Datum eingegeben.

+---+

| Einzahlung |

+---+

Kontonummer? 42 Betrag? 1000

Datum? 5.6.2010

+---+

| Einzahlung |

+---+

Kontonummer? 43

Fehler: Konto existiert nicht!!!

1

(2)

Bank

+schreibenInDatei(name:string)

+lesenAusDatei(name:string)

+girokontoAnlegen(kundeID:int,pin:string,

betrag:int,dispo:int,zinssatz:double, tag:Date=Date::getCurrentDate()) +sparkontoAnlegen(kundeID:int,pin:string, betrag:int,zinssatz:double, tag:Date=Date::getCurrentDate()) +kontoEntfernen(nr:int)

+kontenliste(): string

+kundeAnlegen(name:string,ort:string) +kundeEntfernen(id:int)

+kundeBearbeiten(id:int,name:string,ort:string) +kundenliste(): string

+einzahlen(kontonr:int,betrag:int,tag:Date=Date::getCurrentDate()) +auszahlen(kontonr:int,betrag:int,tag:Date=Date::getCurrentDate()) +überweisen(von:int,nach:int,betrag:int,

info:string,tag:Date=Date::getCurrentDate()) +zinsgutschrift(tag:Date=Date::getCurrentDate()) +existiertKonto(nr:int): bool

+existiertKunde(nr:int): bool +auszug(nr:int): string

Kunde

-number: int -id: int -name: string -ort: string +setzeName(n:string) +setzeOrt(o:string) +toString(): string +parse(line:string): Kunde +hinzuKonto(k:Konto) +entferneKonto(k:Konto) +holeKonten(): Liste<Konto *>

Konto

#number: int

#inhaber: int

#pin: string

#nr: int

#stand: int

+einzahlen(betrag:int,tag:Date) +auszahlen(betrag:int,tag:Date)

+überweisen(kontonr:int,betrag:int,tag:Date, info:string)

+zinsgutschrift(tag:Date) +hinzuKontobew(kb:Kontobewegung) +auszug(): string

+toString(): string +parse(line:string): Konto +holeInhaber(): int

+holeBewegungen(): Liste<Kontobewegung *>

Girokonto

-dispolimit: int

-zinssatz: double -zinsen: int

-berechneZins(tag:Date) +einzahlen(betrag:int,tag:Date) +auszahlen(betrag:int,tag:Date)

+überweisen(kontonr:int,betrag:int,tag:Date, info:string)

+zinsgutschrift(tag:Date) +toString(): string +parse(line:string): Konto

Sparkonto

-zinssatz: double

-zinsen: int

-berechneZins(tag:Date) +einzahlen(betrag:int,tag:Date) +auszahlen(betrag:int,tag:Date)

+überweisen(kontonr:int,betrag:int,tag:Date, info:string)

+zinsgutschrift(tag:Date) +toString(): string +parse(line:string): Konto -konten

0..*

-kunden 0..*

-konten 0..*

Kontobewegung

+info: string

+betrag: int +toString(): string

+parse(line:string): Kontobewegung

Date

-day: int -month: int -year: int +diff(d:Date) +isLeapYear(): bool +toString(): string

#bewegungen 0..*

+tag

#letzteÄnderung

Abbildung 1: UML-Klassendiagramm f¨ ur das Bank-Beispiel

2

Referenzen

ÄHNLICHE DOKUMENTE

E ine nachhaltige Herstellung von Treibstoffen und von Grund- stoffen für die chemische Industrie erfordert Prozesse, die ohne fossile Rohstoffe wie Erdöl auskommen. Verfahren,

Dynamic Programming Algorithm Edit Distance Variants..

Edit distance between two strings: the minimum number of edit operations that transforms one string into the another. Dynamic programming algorithm with O (mn) time and O (m)

Dynamic Programming Algorithm Edit Distance Variants.. Augsten (Univ. Salzburg) Similarity Search WS 2019/20 2

We give a formula for the crystal structure on the integer points of the string polytopes and the ∗-crystal structure on the integer points of the string cones of type A for

NOTE AC:14, 18 stand for the open vowels (front and back respectively) specifically marked in Marathi orthography and to some extent in Hindi orthography.. NOTE AD: 42 stands for

Angenommen der binäre Suchbaum ist stark (d.h. maximal) entartet, auf welche Anzahl (minimal, maximal,.. durchschnittlich) von Vergleichen ändert sich

• In addition to the particles postulated by the standard model of particle physics, string theory naturally incorporates gravity, and so is a candidate for a theory of everything,