From 006d33d97f9f5fe0224ef0b621b947a32478c6a3 Mon Sep 17 00:00:00 2001 From: informatikperson <62358979+informatikperson@users.noreply.github.com> Date: Tue, 18 Oct 2022 11:08:18 +0200 Subject: [PATCH] fertiger einbau von auszahlen und einzahlen mit eingabekorrektur und richtiger auswahl --- .../informatik/bank/domain/Konto.java | 3 + .../informatik/bank/domain/KontoTest.java | 2 + .../informatik/bank/facade/Banksystem.java | 86 +++-- .../de/hs_mannheim/informatik/bank/ui/UI.java | 347 +++++++++++------- 4 files changed, 265 insertions(+), 173 deletions(-) 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 7e13267..48b99b4 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 @@ -15,6 +15,9 @@ public class Konto { public int getKontonummer() { return nummer; } + public String getKontoinhaber() { + return inhaber; + } @Override public String toString() { diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java index 99de540..8170c06 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java @@ -12,6 +12,8 @@ class KontoTest { } @Test void hilf() { + Konto konto = new Konto("hans"); + konto.getKontonummer(); } 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 a23495c..8b615e9 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 @@ -7,69 +7,65 @@ import de.hs_mannheim.informatik.bank.domain.Konto; public class Banksystem { private Bank bank; - + public Banksystem(String bankname) { this.bank = new Bank(bankname); } - + public int kontoAnlegen(String name) { Konto k = new Konto(name); bank.addKonto(k); - + return k.getKontonummer(); } - + public String[] getKontenliste() { Collection konten = bank.getKontenliste(); String[] liste = new String[konten.size()]; - + int i = 0; for (Konto k : konten) { - liste[i++] = k.toString(); + liste[i++] = k.toString(); } - + return liste; } - + public String getBankname() { return bank.getName(); } public void kontoAufladen(String name, long aufzahlen) { Collection konten = bank.getKontenliste(); - for (Konto k: konten) { + for (Konto k : konten) { String konto = k.toString(); if (konto.contains(name)) { - k.addKontostand(name,aufzahlen); + k.addKontostand(name, aufzahlen); + } + } + + } + public void kontoAufladen(int nummer, long aufzahlen) { + Collection konten = bank.getKontenliste(); + String num = Integer.toString(nummer); + for (Konto k : konten) { + String konto = k.toString(); + if (konto.contains(num)) { + k.addKontostand(k.getKontoinhaber(), aufzahlen); } } - - } - public boolean checkForBalance(String inhaber) { + + public boolean checkForInstance(String name) { Collection konten = bank.getKontenliste(); for (Konto k : konten) { String konto = k.toString(); - if (konto.contains(inhaber)) { - if(k.getKontostand()<=0) { - return false; - } - } - } - return true; - - } - - public boolean checkForInstance(String name) { - Collection konten = bank.getKontenliste(); - for (Konto k:konten) { - String konto = k.toString(); - if(konto.contains(name)) { + if (konto.contains(name)) { return true; } } - return false; + return false; } public boolean checkForInstance(int nummer) { @@ -77,14 +73,38 @@ public class Banksystem { String num = Integer.toString(nummer); for (Konto k:konten) { String konto = k.toString(); - if(konto.matches(num)) { + if(konto.contains(num)) { return true; } } return false; } - - public void kontoBewegungen(String name) { - + 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; + +} + public boolean checkForBalance(int nummer) { + Collection konten = bank.getKontenliste(); + String num = Integer.toString(nummer); + for (Konto k : konten) { + String konto = k.toString(); + if (konto.contains(num)) { + 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 d185a95..1cbd6e6 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 @@ -1,7 +1,6 @@ package de.hs_mannheim.informatik.bank.ui; import java.util.Scanner; - import de.hs_mannheim.informatik.bank.facade.Banksystem; public class UI { @@ -15,179 +14,134 @@ public class UI { private void hauptmenü() { System.out.println("Willkommen bei der " + bs.getBankname() + "!"); + mainloop: while (true) { + System.out.println(); + System.out.println("--------"); + System.out.println("Hauptmenü"); + System.out.println("1 -> Konten anzeigen"); + System.out.println("2 -> Konto anlegen"); +// System.out.println("3 -> Auf bestehendes Konto einzahlen oder auszahlen"); + System.out.println("4 -> Auf bestehendes Konto einzahlen/auszahlen"); + System.out.println("9 -> Beenden"); + System.out.println(); - mainloop: - while (true) { - System.out.println(); - System.out.println("--------"); - System.out.println("Hauptmenü"); - System.out.println("1 -> Konten anzeigen"); - System.out.println("2 -> Konto anlegen"); - System.out.println("3 -> Auf bestehendes Konto einzahlen oder auszahlen"); - System.out.println("4 - > Erstz für 3"); - System.out.println("9 -> Beenden"); - System.out.println(); + System.out.print("> "); + int input = Integer.parseInt(sc.nextLine()); + System.out.println(); - System.out.print("> "); - int input = Integer.parseInt(sc.nextLine()); - System.out.println(); - - switch(input) { - case 1: kontenAnzeigen(); break; - case 2: kontoAnlegen(); break; - case 3: kontoAktionen(); break; - case 4: kontoBewegungen(); break; - case 9: break mainloop; - } + switch (input) { + case 1: + kontenAnzeigen(); + break; + case 2: + kontoAnlegen(); + break; +// case 3: +// kontoAktionen(); +// break; + case 4: + kontoBewegungen(); + break; + case 9: + break mainloop; } - + } System.out.println("Auf Wiedersehen!"); } // hauptmenü - private void kontoBewegungen() { System.out.println("1 -> Konto über Namen auswählen"); - System.out.println("2 -> KOnto über Nummer auswählen"); + System.out.println("2 -> Konto über Nummer auswählen"); System.out.println(); System.out.print(">"); int input = Integer.parseInt(sc.nextLine()); - switch(input) { - case 1: kÜberNamen();break; - case 2: kÜberNummer();break; + switch (input) { + case 1: + kÜberNamen(); + break; + case 2: + kÜberNummer(); + break; } - - } + } private void kÜberNamen() { System.out.println("Welches Konto? - Namen"); String name = sc.nextLine(); if (bs.checkForInstance(name) == true) { - System.out.println("Sie haben das Konto von "+name+" ausgesucht."); - bs.kontoBewegungen(name); - }else { + System.out.println("Sie haben das Konto von " + name + " ausgesucht."); + System.out.println("Einzahlen -> 1"); + System.out.println("Auszahlen -> 2"); + System.out.print("> "); + int input = Integer.parseInt(sc.nextLine()); + System.out.println(); + switch (input) { + case 1: + bs.kontoAufladen(name, kontoEinzahlen()); + break; + case 2: + if(bs.checkForBalance(name)== false) { + System.out.println("Sie haben kein Guthaben. Sie müssen erst einzahlen"); + kontoBewegungen();break; + } + bs.kontoAufladen(name, kontoAuszahlen()); + break; + } + } else { System.out.println("Konto existiert nicht"); hauptmenü(); } - - } public void kÜberNummer() { System.out.println("Welches Konto - Nummer"); int nummer = Integer.parseInt(sc.nextLine()); if (bs.checkForInstance(nummer) == true) { - System.out.println("Sie haben das Konto "+ nummer +" ausgewählt"); - }else { + System.out.println("Sie haben das Konto " + nummer + " ausgewählt"); + System.out.println("Einzahlen -> 1"); + System.out.println("Auszahlen -> 2"); + System.out.print("> "); + int input = Integer.parseInt(sc.nextLine()); + System.out.println(); + switch (input) { + case 1: + bs.kontoAufladen(nummer, kontoEinzahlen()); + break; + case 2: + if(bs.checkForBalance(nummer)== false) { + System.out.println("Sie haben kein Guthaben. Sie müssen erst einzahlen"); + kontoBewegungen();break; + } + bs.kontoAufladen(nummer, kontoAuszahlen()); + break; + } + } else { System.out.println("Konto existiert nicht"); hauptmenü(); } } - - 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"); + private long kontoAuszahlen() { + System.out.println("Wieviel möchten sie auszahlen?"); + System.out.print("> "); + long input = Long.parseLong(sc.nextLine()); System.out.println(); - System.out.print(">"); - int input = Integer.parseInt(sc.nextLine()); - switch(input) { - case 1: kÜberNamenEinzahlen(); break; - case 2: kÜberNummerEinzahlen();break; - case 3: kÜberNamenAuszahlen(); break; - case 4: KÜberNummerAuszahlen();break; + if (input < 0) { + System.out.println("Sie haben können nichts unter 0 auszahlen"); + kontoAuszahlen(); } - + return -input; } - - 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 long kontoEinzahlen() { + System.out.println("Wieviel möchten sie einzahlen?"); + System.out.print("> "); + long input = Long.parseLong(sc.nextLine()); + System.out.println(); + if (input <= 0) { + System.out.println("Sie können nichts unter 0 einzahlen"); + kontoEinzahlen(); } - + return input; } - - private void kÜberNamenAuszahlen() { - System.out.println("Welches Konto soll auszahlen? Namen"); - String 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Ü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.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ÜberNummerEinzahlen(); - } - bs.kontoAufladen(k, input2); - } - } - } - - private void kontenAnzeigen() { + private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); if (konten.length > 0) { System.out.println("Folgende Konten sind aktuell verfügbar:"); @@ -206,5 +160,118 @@ public class UI { int kontonummer = bs.kontoAnlegen(name); System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); } +// 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ÜberNamenEinzahlen(); +// break; +// case 2: +// kÜberNummerEinzahlen(); +// break; +// case 3: +// kÜberNamenAuszahlen(); +// break; +// case 4: +// KÜberNummerAuszahlen(); +// break; +// } +// +//} + +//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(); +// 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Ü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.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ÜberNummerEinzahlen(); +// } +// bs.kontoAufladen(k, input2); +// } +// } +//} + }