Seite 1 von 4
BKO – W AH12 2. Arbeit: Wirtschaftsinformatik Kerstin Fröhlig
März 2018
Name: __________________________ Punkte: ____ von 45 Note: ______________
G
egeben ist das folgende UML-DIAGRAMM:Konto
Kontoinhaber: String geschlecht: boolean Kontostand: double dispositionslimit:double kontonummer:long treuepunkte: int gebJahr: int gebMonat: int gebTag: int
einzahlen(double betrag) auszahlen(double betrag)
kontoabschlussBerechnen(double sollzinsen, double habenzinsen) treuepunkteAuswerten
geburtstagBerechnen (aktJahr, aktTag, aktMonat) sowie diverse SET und GET-Methoden
Dispositionslimit: Auch Dispo genannt, legt fest, um welchen Betrag der Kunde sein Konto überziehen darf.
Zu den Methoden
• einzahlen: der Kontostand erhöht sich um den entsprechenden Betrag.
• auszahlen: Es wird zunächst geprüft, ob eine Auszahlung überhaupt möglich ist, d.h. ob entweder genügend auf dem Konto zur Verfügung steht bzw. der Dispositionsrahmen nicht überschritten wird. Nur dann erfolgt eine Auszahlung und der Kontostand verringert sich entsprechend. Im anderen Fall erfolgt eine Meldung, dass eine Auszahlung nicht möglich ist und ausgegeben wieviel maximal ausgezahlt werden könnte.
• geburtstagBerechnen: Die Methode überprüft, ob der Kunde heute Geburtstag hat. Hat er Geburtstag, wird noch weiter unterschieden, ob dies ein runder Geburtstag ist. Darüberhinaus stellt sie fest, ob er in diesen Monat noch Geburtstag haben wird und wie viele Tage dies noch dauert bzw. ob er diesen Monat schon Geburtstag hatte. In allen diesen Fällen wird eine entsprechende Meldung mit Angabe des Alters ausgegeben. Die Feststellung, ob ein runder Geburtstag vorliegt, erfolgt mit Hilfe der mathematischen Funktion „modulo“ (in JAVA %). Diese gibt den ganzzahligen Rest der Division zurück.
(Bsp.: 22:5 = 4 Rest 2 -> 22%5-> 2 bzw. 40%10 → 0)
• kontoabschlussBerechnen: Jeden Abend wird der Kontostand neu berechnet. Hat der Kunde Guthaben wird dies mit dem Habenzinssatz verzinst und dem Konto gutgeschrieben. Hat der Kunde sein Konto überzogen, so muss er Sollzinsen bezahlen. Die Zinsangabe ist auf der Jahr bezogen. (Zinssatz pro Jahr)
• treuepunkteAuswerten → Wirbt der Kunde andere Bankkunden und/oder kauft er bestimmte Bankprodukte, so erhält der Kunde Treuepunkte. Regelmäßig erhält der Kunde für seine Treuepunkte eine Prämie und die Treuepunkte werden entsprechend vermindert. Weitere Prämien sind noch in Planung.
◦ 10 Punkte: Zeitschriften Abo
◦ 20 Punkte: Reise nach London
◦ 3 Punkte: weitere Kreditkarte für 0 Euro
Aufgabe:
Ergänze den nachfolgenden Quellcode und behebe vorhandene Fehler.
Seite 2 von 4
JAVA-Quellcode
pu
blic class Konto{ kontoinhaber;
boolean geschlecht;
kontostand;
long kontonummer;
double dispositionslimit;
int treuepunkte;
int gebJahr;
int ; int gebTag;
public Konto(long meinkontonummer,String meinkontoinhaber,double meindispositionslimit,int meinJahr, int meinMonat, , boolean meingeschlecht)
{ kontoinhaber=meinkontoinhaber;
geschlecht=meingeschlecht;
dispositionslimit=meindispositionslimit;
Kontostand= ; treuepunkte=0;
kontonummer=meinkontonummer;
gebJahr=meinJahr;
gebMonat=meinMonat;
gebTag=meinTag; } public String getAnrede () { String anrede;
if (geschlecht=true) anrede="Frau";
else
anrede="Herr";
; }
public String einzahlen ( ) { ;
kontostand=kontostand + einzahlung;
meldung= "Die Einzahlung beträgt: " + + " Der neue Kontostand beträgt: " + kontostand;
return meldung; }
public void settreupunkte(int meinetreuepunkte) { treuepunkte=
return treuepunkte;}
public void setkreditlimit(double dispositionslimit) { dispositionslimit=dispositionslimit; }
public double getdispositionslimit(meindispostionslimit) { return dispositionslimit; }
public double getkontostand() { return kontostand; }
Seite 3 von 4
public String auszahlen(double auszahlung) {
return meldung; }
public void kontoabschlussBerechnen(double sollzinsen, double habenzinsen) { String rückmeldung;
If ( )
kontostand=kontostand + kontostand*habenzinsen*1/360;
else
System.out.println ("Ihr neuer Kontostand beträgt: " );}
public String geburtstagBerechnen(int aktTag, int aktMonat, ) {String meldung="Initialisierung";
int rest=(aktJahr-gebJahr)%10;
int alter= ; int TagebisGeb=aktTag-gebTag;
if ((aktMonat== )&&( ))
meldung="Du hast heute einen runden Geburtstag und wirst " + +"
Jahre alt";
else
meldung="Du hast heute Geburtstag und wirst " +alter+" Jahre alt";
else if ((aktMonat==gebMonat)&& ) meldung="Du hast in "+TagebisGeb+" Tagen Geburtstag und wirst "
+alter+" Jahre alt";
else if ( )
meldung="Du hattest in diesem Monat schon Geburtstag und wurdest "
+alter+" Jahre alt";
else
meldung="";
return meldung; }
Seite 4 von 4
public String treuepunkteAuswerten() {String praemie;
Switch( ){
case 0:
praemie="keine Prämie"; break;
case
praemie="Zeitschriften Abo";
treuepunkte = break;
case
case
default:
praemie="weitere Prämien sind noch nicht vorgesehen"; } ;
}}