From 3fc358a6cdb2da372962ceac8489d2063ee1f143 Mon Sep 17 00:00:00 2001 From: robinschumann Date: Tue, 18 Oct 2022 13:42:05 +0200 Subject: [PATCH] Konto --- .../informatik/bank/domain/Bank.java | 15 ++- .../informatik/bank/domain/Konto.java | 14 +++ .../informatik/bank/facade/Banksystem.java | 60 +++++++++-- .../de/hs_mannheim/informatik/bank/ui/UI.java | 102 ++++++++++++++---- 4 files changed, 160 insertions(+), 31 deletions(-) diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java index 0b66d3d..a39df90 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java @@ -6,21 +6,26 @@ import java.util.HashMap; public class Bank { private String name; private HashMap konten = new HashMap<>(); - + public Bank(String name) { this.name = name; } - + public void addKonto(Konto k) { konten.put(k.getKontonummer(), k); } - + public String getName() { return name; } - + public Collection getKontenliste() { return konten.values(); } - + + public Konto getKonto(int kontonummer) { + return konten.get(kontonummer); + + } + } 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 654d503..fd8aedf 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 @@ -1,11 +1,17 @@ package de.hs_mannheim.informatik.bank.domain; + + public class Konto { private static int kontozähler = 0; private int nummer; private long stand = 0; private String inhaber; + + + + public Konto(String inhaber) { nummer = 1000 + kontozähler++; @@ -15,10 +21,18 @@ public class Konto { public int getKontonummer() { return nummer; } + + public void setStand(long einzahlung) { + this.stand = einzahlung; + } @Override public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; } + + public long getStand() { + 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 821c2a9..b58ef93 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 @@ -1,5 +1,6 @@ package de.hs_mannheim.informatik.bank.facade; +import java.util.ArrayList; import java.util.Collection; import de.hs_mannheim.informatik.bank.domain.Bank; @@ -7,31 +8,74 @@ import de.hs_mannheim.informatik.bank.domain.Konto; public class Banksystem { private Bank bank; - + ArrayList kontoauszug = new ArrayList<>(); + 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 long geldEinzahlen(int kontonummer, long einzahlen) { + Konto konto = bank.getKonto(kontonummer); + long alterStand = konto.getStand(); + long neuerStand = alterStand + einzahlen; + konto.setStand(neuerStand); + return neuerStand; + + } + + public boolean prüfeKonto(int kontonummer) { + + if (bank.getKonto(kontonummer) == null) { + return false; + } else { + return true; + } + } + + public long kontostandAnzeigen(int kontonummer) { + Konto konto = bank.getKonto(kontonummer); + return konto.getStand(); + } + + public void kontoauszugErstellen(int kontonummer) { + for (int i = 0; i < kontoauszug.size(); i++) { + System.out.println(kontoauszug.get(i)); + } + + } + + public void kontobewegung(long einzahlen) { + if (einzahlen < 0) { + String Auszahlung = einzahlen + ""; + kontoauszug.add(Auszahlung); + } + if (einzahlen > 0) { + String Einzahlung = einzahlen + ""; + kontoauszug.add(Einzahlung); + } + + } } 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 d6eb6e9..bbbc25d 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 @@ -16,32 +16,47 @@ 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("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 -> Einzahlen auf ein Konto"); + System.out.println("4 -> Kontostand anzeigen"); + System.out.println("5 -> Kontoauszug erstellen"); + 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 9: break mainloop; - } + switch (input) { + case 1: + kontenAnzeigen(); + break; + case 2: + kontoAnlegen(); + break; + case 3: + kontoEinzahlen(); + break; + case 4: + kontostandAnzeigen(); + break; + case 5: + kontoauszugErstellen(); + case 9: + break mainloop; } + } System.out.println("Auf Wiedersehen!"); } // hauptmenü - private void kontenAnzeigen() { + private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); if (konten.length > 0) { System.out.println("Folgende Konten sind aktuell verfügbar:"); @@ -61,4 +76,55 @@ public class UI { System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); } + private void kontoEinzahlen() { + // boolean existiert = false; + + System.out.println("Auf welches Konto möchten Sie einzahlen?"); + int kontonummer = Integer.parseInt(sc.nextLine()); + + // Prüfung ob Konto existiert + boolean existiert = bs.prüfeKonto(kontonummer); + if (existiert == true) { + + System.out.println("Wie viel möchten Sie einzahlen?"); + long einzahlen = Long.parseLong(sc.nextLine()); + + long kontostand = bs.geldEinzahlen(kontonummer, einzahlen); + System.out.println("Der Kontostand beträgt: " + kontostand); + bs.kontobewegung(einzahlen); + } else { + kontoEinzahlen(); + } + } + + private void kontostandAnzeigen() { + System.out.println("Welcher Kontostand soll angezeigt werden? "); + int kontonummer = Integer.parseInt(sc.nextLine()); + // Prüfung ob Konto existiert + boolean existiert = bs.prüfeKonto(kontonummer); + if (existiert == true) { + long kontostand = bs.kontostandAnzeigen(kontonummer); + System.out.println("Der Kontostand beträgt: " + kontostand); + } else { + kontostandAnzeigen(); + } + + } + + private void kontoauszugErstellen() { + System.out.println("Von welchem Konto soll ein Kontoauszug erstellt werden? "); + int kontonummer = Integer.parseInt(sc.nextLine()); + // Prüfung ob Konto existiert + boolean existiert = bs.prüfeKonto(kontonummer); + if (existiert == true) { + System.out.println("Kontoauszug für das Konto: " + kontonummer); + System.out.println("----------"); + bs.kontoauszugErstellen(kontonummer); + System.out.println("----------"); + } else { + kontoauszugErstellen(); + } + + } + }