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