Fix: code refactor & exception handling

main
Caner 2022-11-27 15:51:49 +01:00
parent 91ffe2cfab
commit 9ad8c5760b
1 changed files with 160 additions and 25 deletions

View File

@ -426,6 +426,9 @@ public class UI {
continue;
}
} else {
System.out.println("Kontonummer existiert nicht!");
break;
}
} catch (NumberFormatException nfe) {
@ -471,6 +474,9 @@ public class UI {
continue;
}
} else {
System.out.println("Kontonummer existiert nicht!");
break;
}
} catch (NumberFormatException nfe) {
@ -529,52 +535,181 @@ public class UI {
}
private void überweisungBeauftragen() throws Exception {
System.out.print("Bitte die Kontonummer des Ausgangskontos der Überweisung eingeben: ");
int startkonto = Integer.parseInt(sc.nextLine());
System.out.print("Bitte die Kontonummmer für das Zielkonto der Überweisung eingeben: ");
int zielkonto = Integer.parseInt(sc.nextLine());
boolean running = true;
int startkonto = 0;
int zielkonto = 0;
double betrag = 0;
String verwendungszweck = "";
System.out.print("Bitte den gewünschten Überweisungsbetrag eingeben: ");
double betrag = Double.parseDouble(sc.nextLine());
while (running) {
System.out.print("Bitte den Verwendungszweck eingeben: ");
String verwendungszweck = sc.nextLine();
System.out.print("Bitte geben Sie die Kontonummer des Ausgangskontos der Überweisung ein: ");
try {
startkonto = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(startkonto)){
System.out.print("Bitte geben Sie die Kontonummer des Zielkontos der Überweisung ein: ");
try {
zielkonto = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(zielkonto)){
System.out.print("Bitte geben Sie den gewünschten Überweisungsbetrag ein: ");
try {
betrag = Double.parseDouble(sc.nextLine());
} catch (Exception e) {
System.err.println("Betrag muss eine Zahl sein!");
e.printStackTrace();
break;
}
System.out.print("Bitte geben Sie den Verwendungszweck ein: ");
verwendungszweck = sc.nextLine();
} else {
System.out.println("Zielkonto existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Startkonto existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long) (betrag * 100), verwendungszweck);
System.out.println("Überweisung" + ((!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt.");
}
private void saldoAbfragen() {
System.out.print("Bitte die Kontonummer des gewünschten Kontos eingeben: ");
int konto = Integer.parseInt(sc.nextLine());
System.out.print("Bitte die Anzahl der Kontobewegungen für den Saldo eingeben: ");
int anzahl = Integer.parseInt(sc.nextLine());
boolean running = true;
int kontonummer = 0;
int anzahl = 0;
long saldo = bs.saldoBestimmen(konto, anzahl);
while(running) {
System.out.print("Geben Sie bitte die Kontonummer des gewünschten Kontos ein: ");
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.print("Bitte geben Sie die Anzahl der Kontobewegungen für den Saldo ein: ");
try {
anzahl = Integer.parseInt(sc.nextLine());
} catch (Exception e) {
System.err.println("die Anzahl muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Kontonummer existiert nicht");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
long saldo = bs.saldoBestimmen(kontonummer, anzahl);
System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo / 100d));
}
private void aktienKaufen() {
System.out.println("Aktien kaufen");
System.out.println("Bitte geben Sie die Kontonummer ein: ");
int kontonummer = Integer.parseInt(sc.nextLine());
boolean running = true;
int kontonummer = 0;
int anzahl = 0;
String aktienName = "";
System.out.println("Folgende Aktien sind Verfügbar");
System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)");
System.out.println("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:");
String aktienName = sc.nextLine();
while (running) {
System.out.println("Preis der Aktie");
System.out.println(bs.getAktienPreis(aktienName));
System.out.println("Aktien kaufen");
System.out.print("Bitte geben Sie die Kontonummer ein: ");
System.out.println("Bitte geben Sie die Anzahl der Aktien ein, die Sie kaufen möchten: ");
int anzahl = Integer.parseInt(sc.nextLine());
try {
kontonummer = Integer.parseInt(sc.nextLine());
if(bs.getKonten().containsKey(kontonummer)){
System.out.println("Folgende Aktien sind Verfügbar");
System.out.println("1 -> Deutsche Bank AG (DBK.DE)\n2 -> Deere & Company (DCO.DE)");
System.out.print("Bitte geben Sie den Namen in Klammern ein um den Preis zu sehen:");
aktienName = sc.nextLine();
System.out.println("Preis der Aktie");
System.out.println(bs.getAktienPreis(aktienName));
System.out.print("Bitte geben Sie die Anzahld er Aktien ein, die sie kaufen möchten: ");
try {
anzahl = Integer.parseInt(sc.nextLine());
} catch (Exception e) {
System.err.println("Die Anzahl muss eine Zahl sein!");
e.printStackTrace();
break;
}
} else {
System.out.println("Kontonummer existiert nicht!");
break;
}
} catch (Exception e) {
System.err.println("Kontonummer muss eine Zahl sein!");
e.printStackTrace();
break;
}
running = false;
}
boolean erg = bs.aktienKauf(kontonummer, anzahl, aktienName);
System.out.printf("Aktienkauf" + ((!erg)? " nicht" : "" ) + " erfolgreich. ");