diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath index baa1c9f..80da0c7 100644 --- a/Bank-Beispiel/.classpath +++ b/Bank-Beispiel/.classpath @@ -6,10 +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 3818ee4..2ca8c8d 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 @@ -31,12 +31,12 @@ public class Bank { } else System.out.println("Konto nicht vorhanden"); } - + public void auszahlen(long betrag, int kontonummer) { - if(konten.containsKey(kontonummer)) { + if (konten.containsKey(kontonummer)) { konten.get(kontonummer).auszahlen(betrag); - } - else + System.out.println("Betrag " + betrag + " auf Konto " + kontonummer + " eingezahlt"); + } else System.out.println("Konto nicht vorhanden"); } @@ -47,4 +47,12 @@ public class Bank { System.out.println("Konto nicht vorhanden"); } + public void kontoauszügeZeigen(int kontonummer) { + if (konten.containsKey(kontonummer)) { + for(int i = 0;konten.get(kontonummer).getKontoauszüge().size()> i;i++) { + System.out.println(konten.get(kontonummer).getKontoauszüge().get(i)); + } + } else + System.out.println("Konto nicht vorhanden"); + } } \ No newline at end of file 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 70d346f..6d32861 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,32 +1,46 @@ package de.hs_mannheim.informatik.bank.domain; +import java.time.LocalDateTime; +import java.util.HashMap; + public class Konto { private static int kontozähler = 0; - + private int nummer; private long stand = 0; private String inhaber; + private HashMap kontoauszüge = new HashMap<>(); + private int transaktionsCounter = 0; public Konto(String inhaber) { nummer = 1000 + kontozähler++; this.inhaber = inhaber; + kontoauszüge.put(transaktionsCounter++, "Konto wurde am " + LocalDateTime.now() + "eröffnet"); } - + public int getKontonummer() { return nummer; } - + public void einzahlen(long betrag) { stand += betrag; + kontoauszüge.put(transaktionsCounter++, + LocalDateTime.now() + " Betrag " + betrag + " wurde auf Konto " + nummer + " eingezahlt"); } - + public void auszahlen(long betrag) { - if(betrag <= stand) - stand-= betrag; - else + if (betrag <= stand) { + stand -= betrag; + kontoauszüge.put(transaktionsCounter++, + LocalDateTime.now() + " Betrag " + betrag + " wurde von Konto " + nummer + " abgehoben"); + } else System.out.println("Kontostand nicht aureichend"); } + public HashMap getKontoauszüge(){ + return kontoauszüge; + } + public long getKontostand() { return stand; } @@ -35,5 +49,5 @@ public class Konto { public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", stand=" + stand + "]"; } - + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTests.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTests.java new file mode 100644 index 0000000..69615b5 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTests.java @@ -0,0 +1,23 @@ +package de.hs_mannheim.informatik.bank.domain; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class KontoTests { + + @Test + void test() { + Konto k = new Konto("Hans"); + Bank b = new Bank("Sparkasse"); + + b.addKonto(k); + + b.einzahlen(500, k.getKontonummer()); + b.einzahlen(200, k.getKontonummer()); + + assertEquals(700, k.getKontostand()); + + } + +} 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 c108841..09e62a8 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,41 +7,46 @@ 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 void einzahlen(long betrag, int kontonummer) { bank.einzahlen(betrag, kontonummer); } - + public void auszahlen(long betrag, int kontonummer) { bank.auszahlen(betrag, kontonummer); } - + public void kontostandZeigen(int kontonummer) { bank.kontostandZeigen(kontonummer); } + 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 void kontoauszügeZeigen(int kontonummer) { + bank.kontoauszügeZeigen(kontonummer); + } + public String getBankname() { return bank.getName(); } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTests.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTests.java new file mode 100644 index 0000000..011715e --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTests.java @@ -0,0 +1,23 @@ +package de.hs_mannheim.informatik.bank.facade; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +import de.hs_mannheim.informatik.bank.domain.Konto; + +class BanksystemTests { + + @Test + void einzahlenTest() { + Banksystem bs = new Banksystem("Sparkasse"); + + bs.kontoAnlegen("Hans"); + + bs.einzahlen(500, 1000); + bs.einzahlen(200, 1000); + + assertEquals(700, 700); + } + +} 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 e7b0138..314661b 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 @@ -25,6 +25,7 @@ public class UI { System.out.println("3 -> Geld einzahlen"); System.out.println("4 -> Geld auszahlen"); System.out.println("5 -> Kontostand anzeigen"); + System.out.println("6 -> Kontoauszüge zeigen"); System.out.println("9 -> Beenden"); System.out.println(); @@ -48,6 +49,9 @@ public class UI { case 5: kontostandZeigen(); break; + case 6: + kontoauszügeZeigen(); + break; case 9: break mainloop; } @@ -117,4 +121,15 @@ public class UI { System.out.println("Fehlerhafte Eingabe"); } } + + private void kontoauszügeZeigen() { + int kontonummer; + try { + System.out.print("Kontonummer eingeben: "); + kontonummer = Integer.parseInt(sc.nextLine()); + bs.kontoauszügeZeigen(kontonummer); + } catch (Exception e) { + System.out.println("Fehlerhafte Eingabe"); + } + } }