diff --git a/Banksystem/src/bank/Bank.java b/Banksystem/src/bank/Bank.java index d9ffc8e..4c86750 100644 --- a/Banksystem/src/bank/Bank.java +++ b/Banksystem/src/bank/Bank.java @@ -40,12 +40,12 @@ public class Bank implements Serializable { if (bk.getKontonummer() == kontonummer) return bk; } - return null; } //public ArrayList getKontenListe() { public String[] getKontenListe() { + //kontendaten ist ein sog. DTO = Data Transfer Object String kontendaten[] = new String[kontenliste.size()]; for (int i = 0; i < kontendaten.length; i++) { @@ -55,6 +55,14 @@ public class Bank implements Serializable { return kontendaten; } + public String getBetrag(int kontonummer) { + Bankkonto bk = kontoFinden(kontonummer); + if (bk != null) { + return ""+bk.getKontostand(); + } + return "Fehler bei Kontonummer eingabe"; + } + @Override public String toString() { return "Bank{" + @@ -62,4 +70,14 @@ public class Bank implements Serializable { ", kontenliste=" + kontenliste + '}'; } + + public boolean geldAuszahlen(int kontonummer, double betrag) { + Bankkonto bk = kontoFinden(kontonummer); + + if (bk != null) { + return bk.geldAuszahlen(betrag); + } + + return false; + } } diff --git a/Banksystem/src/bank/BankUI.java b/Banksystem/src/bank/BankUI.java index 03e8868..68212d6 100644 --- a/Banksystem/src/bank/BankUI.java +++ b/Banksystem/src/bank/BankUI.java @@ -22,6 +22,9 @@ public class BankUI { System.out.println("Aufgabe auswählen:"); System.out.println("1) Konto anlegen"); System.out.println("2) Geld einzahlen"); + System.out.println("3. Geld aiszahlen"); + System.out.println("4. Konto Betrag anzeigen"); + System.out.println("-"); System.out.println("8. Konten Liste anzeigen"); System.out.println("9) Programm beenden"); @@ -32,6 +35,8 @@ public class BankUI { switch (eingabe) { case 1 -> kontoAnlegenScreen(); case 2 -> geldEinzahlenScreen(); + case 3 -> geldAuszahlenScreen(); + case 4 -> kontoBetraganzeigen(); case 8 -> kontenListeanzeigen(); case 9 -> aufWiedersehenScreen(); } @@ -40,6 +45,24 @@ public class BankUI { } while(true); } + private static void kontoBetraganzeigen() { + System.out.print("Bitte Kontonummer eingeben: "); + int kontonummer = kb.nextInt(); + + System.out.println("Sie haben "+bank.getBetrag(kontonummer)+"€ auf Ihrem Konto"); + } + + private static void geldAuszahlenScreen() { + System.out.print("Bitte Kontonummer eingeben: "); + int kontonummer = kb.nextInt(); + + System.out.print("Bitte Betrag eingeben: "); + double betrag = kb.nextDouble(); + + boolean erg = bank.geldAuszahlen(kontonummer, betrag); + System.out.println("Geld auszahlen " + (erg?"": "nicht ") + "erfolgreich."); + } + private static void kontenListeanzeigen() { System.out.println("Hier sind die Konten: "); diff --git a/Banksystem/src/bank/Bankkonto.java b/Banksystem/src/bank/Bankkonto.java index e7a9c7a..e9f57ee 100644 --- a/Banksystem/src/bank/Bankkonto.java +++ b/Banksystem/src/bank/Bankkonto.java @@ -12,12 +12,13 @@ public class Bankkonto implements Serializable { private double kontostand; private static int kontozähler = 0; + private static int kontostartzaehler = (int) (Math.random()*1000); public Bankkonto(String name) { this.name = name; this.kontostand = 0; - this.kontonummer = 100000 + kontozähler++; + this.kontonummer = kontostartzaehler + kontozähler++; } // sog. Getter-Methoden @@ -39,8 +40,12 @@ public class Bankkonto implements Serializable { // TODO // Geld soll nur ausgezahlt werden, wenn das Konto // auch gedeckt ist - public double geldAuszahlen(double betrag) { - return -1; + public boolean geldAuszahlen(double betrag) { + if (kontostand >= betrag) { + kontostand -= betrag; + return true; + } + return false; } // TODO diff --git a/Banksystem/src/bank/Girokonto.java b/Banksystem/src/bank/Girokonto.java new file mode 100644 index 0000000..81ff4ef --- /dev/null +++ b/Banksystem/src/bank/Girokonto.java @@ -0,0 +1,19 @@ +package bank; + +public class Girokonto extends Bankkonto{ + + public Girokonto(String name) { + super(name); + } + + public boolean überweisen(Bankkonto zielkonto, double betrag){ + + if (this.geldAuszahlen(betrag)) { + zielkonto.geldEinzahlen(betrag); + return true; + } + + return false; + } + +}