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..26675e6 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,34 @@ 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 long kontoEinzahlen(Integer id, Long betrag) { + return konten.get(id).kontoEinzahlen(betrag); + } + + public long kontoStandAnzeigen(Integer id) { + return konten.get(id).getKontostand(); + } + + public long geldAuszahlen(int id, Long betrag) { + + return konten.get(id).geldAuszahlen(betrag); + } + } 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..e4b916f 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 @@ -2,23 +2,43 @@ package de.hs_mannheim.informatik.bank.domain; public class Konto { private static int kontozähler = 0; - + private int nummer; - private long stand = 0; + private long kontostand = 0; private String inhaber; public Konto(String inhaber) { nummer = 1000 + kontozähler++; this.inhaber = inhaber; } - + public int getKontonummer() { return nummer; } + public long getKontostand() { + return kontostand; + } + + public void setKontostand(long kontostand) { + this.kontostand = kontostand; + } + + public long kontoEinzahlen(long betrag) { + this.kontostand = kontostand + betrag; + + return kontostand; + } + @Override public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; } - + + public long geldAuszahlen(Long betrag) { + this.kontostand = kontostand - betrag; + + return kontostand; + } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/TestKonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/TestKonto.java new file mode 100644 index 0000000..6dca4b3 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/TestKonto.java @@ -0,0 +1,18 @@ +package de.hs_mannheim.informatik.bank.domain; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class TestKonto { + + Konto k1 = new Konto("Thomas"); + + @Test + void test() { + + assertEquals(k1.kontoEinzahlen(300L), 300); + + } + +} 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..1664b25 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,31 +7,45 @@ 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 long kontoStandAnzeigen(Integer id) { + + return bank.kontoStandAnzeigen(id); + } + + public long kontoEinzahlen(Integer id, Long betrag) { + + return bank.kontoEinzahlen(id, betrag); + } + + public long geldAuszahlen(int id, Long betrag) { + return bank.geldAuszahlen(id, betrag); + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/TestFacade.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/TestFacade.java new file mode 100644 index 0000000..b633e2c --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/TestFacade.java @@ -0,0 +1,18 @@ +package de.hs_mannheim.informatik.bank.facade; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +class TestFacade { + + Banksystem b1 = new Banksystem("Sparkasse"); + + @Test + void test() { + + b1.kontoAnlegen("1"); + assertEquals(b1.kontoEinzahlen(1000, 300L), 300); + } + +} 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..142b91e 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,79 @@ 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 -> Geld auf Konto einzahlen"); + System.out.println("4 -> Kontostand anzeigen"); + System.out.println("5 -> Geld auszahlen"); + 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: + geldAuszahlen(); + break; + case 9: + break mainloop; } + } System.out.println("Auf Wiedersehen!"); } // hauptmenü - private void kontenAnzeigen() { + private void geldAuszahlen() { + System.out.println("Bitte Kontonummer eingeben"); + int id = Integer.parseInt(sc.nextLine()); + + System.out.println("Bitte Betrag"); + Long betrag = Long.parseLong(sc.nextLine()); + + long kontoStand = bs.geldAuszahlen(id, betrag); + System.out.println("Aktueller Kontostand des Kontos: " + id + " ist " + kontoStand); + } + + private void kontoStandAnzeigen() { + System.out.println("Bitte Kontonummer eingeben"); + int id = Integer.parseInt(sc.nextLine()); + + long kontoStand = bs.kontoStandAnzeigen(id); + System.out.println("Konto mit der Nummer " + id + " hat folgenden Kontostand:" + kontoStand); + + } + + private void kontoEinzahlen() { + System.out.println("Bitte Kontonummer eingeben"); + int id = Integer.parseInt(sc.nextLine()); + + System.out.println("Bitte Betrag"); + Long betrag = Long.parseLong(sc.nextLine()); + + long kontoStand = bs.kontoEinzahlen(id, betrag); + System.out.println("Aktueller Kontostand des Kontos: " + id + " ist " + kontoStand); + } + + private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); if (konten.length > 0) { System.out.println("Folgende Konten sind aktuell verfügbar:");