From 764df918454ba3cf89860fc1fc68715e1fc029a0 Mon Sep 17 00:00:00 2001 From: berkere Date: Mon, 24 Oct 2022 18:19:25 +0200 Subject: [PATCH] =?UTF-8?q?Aktueller=20Stand=20mit=20Kontoausz=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bank-Beispiel/.classpath | 1 + .../informatik/bank/domain/Bank.java | 22 ++++++++ .../informatik/bank/domain/Konto.java | 47 +++++++++++++++- .../informatik/bank/facade/Banksystem.java | 23 +++++++- .../de/hs_mannheim/informatik/bank/ui/UI.java | 55 ++++++++++++++++++- 5 files changed, 143 insertions(+), 5 deletions(-) diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath index 57bca72..257ce1d 100644 --- a/Bank-Beispiel/.classpath +++ b/Bank-Beispiel/.classpath @@ -6,5 +6,6 @@ + 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..868bcbf 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 @@ -23,4 +23,26 @@ public class Bank { return konten.values(); } + public long getKontostand(int nummer) { + return konten.get(nummer).getStand(); + + } + + public void geldEinzahlen(int nummer, long betrag) { + konten.get(nummer).geldEinzahlen(betrag); + + } + + public void geldAuszahlen(int nummer, long betrag) { + konten.get(nummer).geldAuszahlen(betrag); + + } + + public String[] getBewegungen(int nummer) { + return konten.get(nummer).getBewegungen(); + + } + + + } 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..d0fc9ca 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,15 +1,19 @@ package de.hs_mannheim.informatik.bank.domain; +import java.util.ArrayList; + public class Konto { private static int kontozähler = 0; private int nummer; private long stand = 0; private String inhaber; + private ArrayList bewegungen; public Konto(String inhaber) { nummer = 1000 + kontozähler++; this.inhaber = inhaber; + this.bewegungen = new ArrayList<>(); } public int getKontonummer() { @@ -18,7 +22,46 @@ public class Konto { @Override public String toString() { - return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; + return "Konto [Kontonummer: " + nummer + ", Inhaber: " + inhaber + "]"; + } + + public long getStand() { + return stand; + } -} + public String getInhaber() { + return inhaber; + } + + public void setStand(long betrag) { + this.stand = betrag; + + } + + public void geldEinzahlen(long betrag) { + this.stand= this.stand + betrag; + this.bewegungen.add(new KontoBewegungen(betrag/100,"Einzahlung am Terminal","Einzahlung","Inhaber")); + } + + public void geldAuszahlen(long betrag) { + this.stand = this.stand-betrag; + this.bewegungen.add(new KontoBewegungen(-betrag/100,"Auszahlung am Terminal","Auszahlung","Inhaber")); + + } + + public String[] getBewegungen() { + + String[] auszug = new String[this.bewegungen.size()]; + int i=0; + for (KontoBewegungen kb : bewegungen) { + auszug[i++]= kb.toString(); + } + return auszug; + } + + + + + +} \ No newline at end of file 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..0ca8648 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 @@ -31,7 +31,28 @@ public class Banksystem { return liste; } + public void geldEinzahlen(int nummer,long betrag) { + bank.geldEinzahlen(nummer,betrag); + + } + + public void geldAuszahlen(int nummer, long betrag) { + bank.geldAuszahlen(nummer,betrag); + + + } + + public long zeigeKontostand(int nummer) { + return bank.getKontostand(nummer); + + } + + public String[] getBewegungen(int nummer){ + return bank.getBewegungen(nummer); + + } + public String getBankname() { return bank.getName(); } -} +} \ No newline at end of file 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..a31fb4f 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 @@ -10,10 +10,10 @@ public class UI { public UI(Banksystem bs) { this.bs = bs; - hauptmenü(); + hauptmenü(); } - private void hauptmenü() { + private void hauptmenü() { System.out.println("Willkommen bei der " + bs.getBankname() + "!"); mainloop: @@ -23,6 +23,10 @@ public class UI { System.out.println("Hauptmenü"); System.out.println("1 -> Konten anzeigen"); System.out.println("2 -> Konto anlegen"); + System.out.println("3 -> Geld einzahlen"); + System.out.println("4 -> Geld auszahlen"); + System.out.println("5 -> Kontostand anzeigen"); + System.out.println("6 -> Kontoauszug"); System.out.println("9 -> Beenden"); System.out.println(); @@ -33,6 +37,10 @@ public class UI { switch(input) { case 1: kontenAnzeigen(); break; case 2: kontoAnlegen(); break; + case 3: geldEinzahlen(); break; + case 4: geldAuszahlen(); break; + case 5: zeigeKontostand(); break; + case 6: kontoauszug(); break; case 9: break mainloop; } } @@ -60,5 +68,48 @@ public class UI { int kontonummer = bs.kontoAnlegen(name); System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); } + + private void geldEinzahlen() { + + System.out.println("Auf welches Konto soll Geld eingezahlt werden?"); + int nummer = Integer.parseInt(sc.nextLine()); + System.out.println("Welcher Betrag soll eingezahlt werden?"); + double betrag = Double.parseDouble(sc.nextLine()); + bs.geldEinzahlen(nummer, (long) (betrag*100)); + System.out.printf("Neuer Kontostand: %.2f€", bs.zeigeKontostand(nummer)/100.0); + + + } + + private void zeigeKontostand() { + System.out.println("Kontonummer eingeben:"); + int nummer = Integer.parseInt(sc.nextLine()); + + System.out.println(bs.zeigeKontostand(nummer)); + } + + private void geldAuszahlen() { + System.out.println("Von welchem Konto soll Geld ausgezahlt werden?"); + int nummer = Integer.parseInt(sc.nextLine()); + System.out.println("Welcher Betrag soll ausgezahlt werden?"); + double betrag = Double.parseDouble(sc.nextLine()); + bs.geldAuszahlen(nummer,(long)(betrag*100)); + System.out.printf("Neuer Kontostand: %.2f€", bs.zeigeKontostand(nummer)/100.0); + //System.out.printf("Neuer Kontostand = %.2f Euro.", (bs.zeigeKontostand(nummer) / 100.0)); + + }; + + private void kontoauszug() { + System.out.println("Kontonummer eingeben:"); + int nummer = Integer.parseInt(sc.nextLine()); + String[] auszug = bs.getBewegungen(nummer); + if (auszug.length > 0) { + for (String s: auszug) { + System.out.println(s); + } + } + + + } }