diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java index 4e0fc83..838d770 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -18,11 +18,14 @@ public class Konto { @Override public String toString() { - return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; + return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", stand=" + stand + "]"; } public long addKontostand(String inhaber, long zahl) { - stand = stand+zahl; + stand = getKontostand() +zahl; + return stand; + } + public long getKontostand() { return stand; } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 4362af8..be7f068 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -46,4 +46,17 @@ public class Banksystem { } + + public boolean checkForBalance(String inhaber) { + Collection konten = bank.getKontenliste(); + for (Konto k : konten) { + String konto = k.toString(); + if (konto.contains(inhaber)) { + if(k.getKontostand()<=0) { + return false; + } + } + } + return true; + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index 057f7f5..447b126 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -20,10 +20,10 @@ public class UI { while (true) { System.out.println(); System.out.println("--------"); - System.out.println("Hauptmenü"); + System.out.println("Hauptmenü"); System.out.println("1 -> Konten anzeigen"); System.out.println("2 -> Konto anlegen"); - System.out.println("3 -> Auf bestehendes Konto einzahlen"); + System.out.println("3 -> Auf bestehendes Konto einzahlen oder auszahlen"); System.out.println("9 -> Beenden"); System.out.println(); @@ -34,60 +34,114 @@ public class UI { switch(input) { case 1: kontenAnzeigen(); break; case 2: kontoAnlegen(); break; - case 3: kontoAufladenAuswahl(); break; + case 3: kontoAktionen(); break; case 9: break mainloop; } } System.out.println("Auf Wiedersehen!"); - } // hauptmenü + } // hauptmenü - private void kontoAufladenAuswahl() { + private void kontoAktionen() { System.out.println("Konto über Namen auffüllen? -> 1"); System.out.println("Konto über Kontonummer aufladen? -> 2"); + System.out.println("Konto über Namen auszahlen -> 3"); + System.out.println("Konto über Nummer auszahlen -> 4"); + System.out.println(); + System.out.print(">"); int input = Integer.parseInt(sc.nextLine()); switch(input) { - case 1: kÜberNamen(); break; - case 2: kÜberNummer();break; + case 1: kÜberNamenEinzahlen(); break; + case 2: kÜberNummerEinzahlen();break; + case 3: kÜberNamenAuszahlen(); break; + case 4: KÜberNummerAuszahlen();break; } - System.out.println("Pups"); } - private void kÜberNamen() { - System.out.println("Welches Konto soll aufgeladen werden? Name"); + private void KÜberNummerAuszahlen() { + System.out.println("Welches Konto soll auszahlen? Nummer"); + CharSequence input = sc.nextLine(); + String[] konten = bs.getKontenliste(); + long input2 = 0; + for(String k: konten) { + if (k.contains(input)) { + System.out.print("Aktueller Stand: "); + if(bs.checkForBalance(k) == false) { + System.out.println("Sie müssen erst einzahlen um auszahlen zu können"); + kontoAktionen(); + break; + } + System.out.println("Wieviel möchten sie auszahlen?"); + input2 = Long.parseLong(sc.nextLine()); + input2 = input2*-1; + bs.kontoAufladen(k, input2); + System.out.println(k.toString()); + } + } + + } + + private void kÜberNamenAuszahlen() { + System.out.println("Welches Konto soll auszahlen? Namen"); String input = sc.nextLine(); String[] konten = bs.getKontenliste(); - for (String k : konten) { - + long input2 = 0; + for(String k: konten) { if (k.contains(input)) { - System.out.println("auf dieses Konto wird geladen"); - System.out.println(k.toString()); - System.out.println("Wieviel möchten sie aufladen?"); - long input2 = Long.parseLong(sc.nextLine()); - if(input2<0) { - System.out.println("Betrag muss plus sein"); - kÜberNamen(); + System.out.print("Aktueller Stand: "); + if(bs.checkForBalance(k) == false) { + System.out.println("Sie müssen erst einzahlen um auszahlen zu können"); + kontoAktionen(); + break; } - bs.kontoAufladen(k,input2); + System.out.println("Wieviel möchten sie auszahlen?"); + input2 = Long.parseLong(sc.nextLine()); + input2 = input2*-1; + bs.kontoAufladen(k, input2); + System.out.println(k.toString()); } } } - private void kÜberNummer() { + private void kÜberNamenEinzahlen() { + System.out.println("Welches Konto soll aufgeladen werden? Name"); + String input = sc.nextLine(); + + String[] konten = bs.getKontenliste(); + for (String k : konten) { + + if (k.contains(input)) { + System.out.print("auf dieses Konto wird geladen: "); + System.out.println(k.toString()); + System.out.println("Wieviel möchten sie aufladen?"); + System.out.print(">"); + long input2 = Long.parseLong(sc.nextLine()); + if(input2<0) { + System.out.println("Betrag muss plus sein"); + kÜberNamenEinzahlen(); + } + bs.kontoAufladen(k,input2); + } + System.out.println(k.toString()); + } + } + + private void kÜberNummerEinzahlen() { System.out.println("Welches Konto soll aufgeladen werden? Nummer"); CharSequence input = sc.nextLine(); String[] konten = bs.getKontenliste(); for(String k: konten) { if(k.contains(input)) { - System.out.println("auf dieses Konto wird geladen"); + System.out.print("auf dieses Konto wird geladen: "); System.out.println(k.toString()); - System.out.println("Wieviel möchten sie aufladen"); + System.out.println("Wieviel möchten sie aufladen?"); + System.out.print(">"); long input2 = Long.parseLong(sc.nextLine()); if(input2<0) { System.out.println("Betrag muss plus sein"); - kÜberNummer(); + kÜberNummerEinzahlen(); } bs.kontoAufladen(k, input2); }