Fix: code refactoring & exception handling (ui)
parent
7584bf5e51
commit
b9a0a014a1
|
@ -1,8 +1,7 @@
|
|||
package de.hs_mannheim.informatik.bank;
|
||||
|
||||
import de.hs_mannheim.informatik.bank.facade.Banksystem;
|
||||
|
||||
import de.hs_mannheim.informatik.bank.tui.TUI;
|
||||
import de.hs_mannheim.informatik.bank.ui.UI;
|
||||
|
||||
public class Main {
|
||||
|
||||
|
@ -10,7 +9,7 @@ public class Main {
|
|||
|
||||
Banksystem bs = new Banksystem("Spaßkasse Mannheim");
|
||||
|
||||
TUI tui = new TUI(bs);
|
||||
UI tui = new UI(bs);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package de.hs_mannheim.informatik.bank.tui;
|
||||
package de.hs_mannheim.informatik.bank.ui;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Scanner;
|
||||
|
@ -6,11 +6,11 @@ import java.util.Scanner;
|
|||
import de.hs_mannheim.informatik.bank.domain.Kontoart;
|
||||
import de.hs_mannheim.informatik.bank.facade.Banksystem;
|
||||
|
||||
public class TUI {
|
||||
public class UI {
|
||||
private Banksystem bs;
|
||||
Scanner sc = new Scanner(System.in);
|
||||
|
||||
public TUI(Banksystem bs) {
|
||||
public UI(Banksystem bs) {
|
||||
this.bs = bs;
|
||||
hauptmenü();
|
||||
}
|
||||
|
@ -70,39 +70,73 @@ public class TUI {
|
|||
|
||||
|
||||
private void kundeRegistrieren(){
|
||||
System.out.println("Bitte die folgenden Daten eingeben: ");
|
||||
System.out.println("Vorname: ");
|
||||
|
||||
boolean running = true;
|
||||
|
||||
while(running){
|
||||
|
||||
System.out.println("Bitte geben Sie die folgenden Daten ein: ");
|
||||
System.out.print("Vorname: ");
|
||||
String vorname = sc.nextLine();
|
||||
System.out.println("Nachname: ");
|
||||
System.out.print("Nachname: ");
|
||||
String nachname = sc.nextLine();
|
||||
System.out.println("Alter:");
|
||||
System.out.print("Alter:");
|
||||
int alter = Integer.parseInt(sc.nextLine());
|
||||
try {
|
||||
bs.setCurrentKunde(bs.addNewKunde(vorname, nachname, alter));
|
||||
} catch (Exception e) {
|
||||
System.err.println("Kundenkonto konnte nicht erstellt werden!");
|
||||
e.printStackTrace();
|
||||
break;
|
||||
}
|
||||
System.out.println("Kunde mit der ID " + bs.getKundenID() + " wurde erstellt.");
|
||||
System.out.println("Ihr Kundenkonto mit der ID [" + bs.getKundenID() + "] wurde erstellt.");
|
||||
running = false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void login(){
|
||||
|
||||
boolean running = true;
|
||||
|
||||
while(running){
|
||||
|
||||
try {
|
||||
System.out.println("Bitte geben Sie Ihre Kunden ID ein: ");
|
||||
System.out.println("> ");
|
||||
System.out.print("> ");
|
||||
int kundenID = Integer.parseInt(sc.nextLine());
|
||||
bs.setCurrentKunde(bs.getKunde(kundenID));
|
||||
|
||||
if(bs.getCurrentKunde() != null){
|
||||
System.out.println("Login erfolgreich!");
|
||||
running = false;
|
||||
} else {
|
||||
System.err.println("Kunde nicht gefunden!");
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("Login fehlgeschlagen!");
|
||||
e.printStackTrace();
|
||||
running = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void kontoAnlegen() throws IOException{
|
||||
|
||||
boolean running = true;
|
||||
|
||||
while(running){
|
||||
|
||||
try {
|
||||
|
||||
System.out.println("Bitte geben Sie Ihre Kunden ID ein: ");
|
||||
System.out.println("> ");
|
||||
System.out.print("> ");
|
||||
int kundenID = Integer.parseInt(sc.nextLine());
|
||||
bs.setCurrentKunde(bs.getKunde(kundenID));
|
||||
|
||||
|
@ -113,34 +147,49 @@ public class TUI {
|
|||
for (int i = 0; i < kontoarten.length; i++) {
|
||||
System.out.println(" " + kontoarten[i] + " " + "(" + (i+1) + ")");
|
||||
}
|
||||
System.out.println("> ");
|
||||
System.out.print("> ");
|
||||
int auswahl = Integer.parseInt(sc.nextLine());
|
||||
|
||||
int kontonummer = bs.kontoAnlegen(bs.getCurrentKunde(),kontoarten[auswahl-1]);
|
||||
System.out.println("Konto mit der Kontonummer " + kontonummer + " neu angelegt.");
|
||||
|
||||
System.out.println("Ihr ausgewähltes Konto mit der " + kontonummer + " neu angelegt.");
|
||||
running = false;
|
||||
|
||||
} else {
|
||||
System.err.println("Kunde nicht gefunden!");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("Konto konnte nicht angelegt werden!");
|
||||
e.printStackTrace();
|
||||
running = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void kontenAnzeigen() {
|
||||
|
||||
try {
|
||||
String[] konten = bs.getKontenlisteForKunde();
|
||||
if (konten.length > 0) {
|
||||
System.out.println("Folgende Konten sind aktuell verfügbar:");
|
||||
System.out.println("Sie haben aktuell folgende Konten zur Verfügung:");
|
||||
for (String s : konten) {
|
||||
System.out.println(s);
|
||||
}
|
||||
} else {
|
||||
System.out.println("Bisher keine Konten angelegt.");
|
||||
System.out.println("Sie haben bisher keine Konten angelegt");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.err.println("Konten konnten nicht laden!");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void aktienAnzeigen(){
|
||||
|
||||
try {
|
||||
|
||||
String[] aktien = bs.getAktienliste();
|
||||
|
||||
if (aktien.length > 0) {
|
||||
|
@ -152,6 +201,13 @@ public class TUI {
|
|||
System.out.println("Bisher keine Aktien gekauft.");
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
System.err.println("Aktien konnten nicht laden!");
|
||||
e.printStackTrace();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -347,11 +403,11 @@ public class TUI {
|
|||
|
||||
int kontonummer = 0;
|
||||
double betrag = 0;
|
||||
boolean ok = false;
|
||||
boolean running = true;
|
||||
|
||||
do {
|
||||
while(running) {
|
||||
|
||||
System.out.println("Bitte geben Sie ihre Kontonummer ein: ");
|
||||
System.out.print("Bitte geben Sie ihre Kontonummer ein: ");
|
||||
|
||||
try {
|
||||
|
||||
|
@ -359,31 +415,30 @@ public class TUI {
|
|||
|
||||
if(bs.getKonten().containsKey(kontonummer)){
|
||||
|
||||
System.out.println("Bitte geben Sie den Betrag ein: ");
|
||||
System.out.print("Bitte geben Sie den Betrag ein: ");
|
||||
|
||||
try {
|
||||
|
||||
betrag = Double.parseDouble(sc.nextLine());
|
||||
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("Betrag muss eine Kommazahl sein, Eingabe bitte wiederholen");
|
||||
System.err.println("Betrag muss eine Zahl sein!");
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("Kontonummer muss eine Zahl sein, Eingabe bitte wiederholen");
|
||||
System.err.println("Kontonummer muss eine Zahl sein!");
|
||||
continue;
|
||||
}
|
||||
|
||||
ok = true;
|
||||
running = false;
|
||||
|
||||
} while (!ok);
|
||||
}
|
||||
|
||||
long neuerKontostand = bs.geldEinzahlen(kontonummer, (long) betrag * 100);
|
||||
|
||||
System.out.printf("Einzalung erfolgreich, neuer Kontostand = %.2f Euro", (neuerKontostand) / 100.0);
|
||||
System.out.printf("Einzahlung erfolgreich, Ihr neuer Kontostand beträgt: %.2f€", (neuerKontostand) / 100.0);
|
||||
|
||||
}
|
||||
|
||||
|
@ -392,64 +447,87 @@ public class TUI {
|
|||
|
||||
int kontonummer = 0;
|
||||
double betrag = 0;
|
||||
boolean ok = false;
|
||||
boolean running = true;
|
||||
|
||||
do {
|
||||
while(running){
|
||||
|
||||
System.out.println("Bitte geben Sie ihre Kontonummer ein: ");
|
||||
System.out.print("Bitte geben Sie ihre Kontonummer ein: ");
|
||||
|
||||
try {
|
||||
|
||||
kontonummer = Integer.parseInt(sc.nextLine());
|
||||
|
||||
if(bs.getKonten().containsKey(kontonummer)){
|
||||
|
||||
System.out.println("Ihr aktueller Kontostand beträgt " + bs.getKontostand(kontonummer) / 100 + "€");
|
||||
System.out.println("Bitte geben Sie den Betrag ein: ");
|
||||
System.out.print("Bitte geben Sie den Betrag zum abheben ein: ");
|
||||
|
||||
try {
|
||||
|
||||
betrag = Double.parseDouble(sc.nextLine());
|
||||
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("Betrag muss eine Kommazahl sein, Eingabe bitte wiederholen");
|
||||
System.err.println("Betrag muss eine Zahl sein!");
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("Bitte geben Sie Zahlen ein");
|
||||
System.err.println("Kontonummer muss eine Zahl sein!");
|
||||
continue;
|
||||
}
|
||||
|
||||
ok = true;
|
||||
running = false;
|
||||
|
||||
} while (!ok);
|
||||
}
|
||||
|
||||
boolean erfolg = bs.geldAuszahlen(kontonummer, (long) betrag * 100);
|
||||
long neuerKontostand = bs.getKontostand(kontonummer) / 100;
|
||||
|
||||
System.out.printf("Auszahlung" + ((!erfolg)? " nicht" : "" ) + " erfolgreich. ");
|
||||
System.out.println("Neuer Kontostand = " + neuerKontostand + "€");
|
||||
System.out.println("Ihr neuer Kontostand beträgt: " + neuerKontostand + "€");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void kontoauszugDrucken() {
|
||||
|
||||
boolean running = true;
|
||||
|
||||
while(running){
|
||||
|
||||
try {
|
||||
|
||||
System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: ");
|
||||
int kontonummer = Integer.parseInt(sc.nextLine());
|
||||
|
||||
System.out.println("Auszug für Konto " + kontonummer);
|
||||
String[] kontobewegungen = bs.erstelleKontoauszug(kontonummer);
|
||||
|
||||
try {
|
||||
|
||||
if (kontobewegungen.length > 0)
|
||||
for (String kb : kontobewegungen) {
|
||||
System.out.println(kb);
|
||||
}
|
||||
else
|
||||
System.out.println("Noch keine Kontobewegungen.");
|
||||
running = false;
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("Keine Kontobewegungen vorhanden");
|
||||
running = false;
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
System.err.println("Kontoauszug fehlgeschlagen!");
|
||||
e.printStackTrace();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void überweisungBeauftragen() throws Exception {
|
||||
System.out.print("Bitte die Kontonummer des Ausgangskontos der Überweisung eingeben: ");
|
||||
int startkonto = Integer.parseInt(sc.nextLine());
|
Loading…
Reference in New Issue