diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath index 57bca72..9e73c62 100644 --- a/Bank-Beispiel/.classpath +++ b/Bank-Beispiel/.classpath @@ -1,10 +1,11 @@ - - - - - - - - - - + + + + + + + + + + + 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..d5f5963 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,44 @@ 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 einzahlen(int kontonummer, long einzahlung) { + + if (konten.get(kontonummer) != null) { + long altStand = konten.get(kontonummer).getStand(); + if (einzahlung > 0) { + konten.get(kontonummer).setStand(altStand += einzahlung); + // Ausgabe + System.out.println("Ihr aktueller Kontostand betraegt " + konten.get(kontonummer).getStand()); + } else { + System.out.println("Der einzuzahlende Geldbetrag muss mindesten 1 Euro betragen!"); + System.out.println("Bitte versuchen Sie es mit einem geeigneten Geldbetrag erneut."); + } + } else { + System.out.println("Diese Kontonummer konnte in unserem System nicht gefunden werden!"); + System.out.println("Bitte Eingabe wiederholen."); + } + return konten.get(kontonummer).getStand(); + } + + public long kontoAnzeigen(int kontonummer) { + return konten.get(kontonummer).getStand(); + } + } 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..1da1391 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,7 +2,7 @@ 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; @@ -11,7 +11,7 @@ public class Konto { nummer = 1000 + kontozähler++; this.inhaber = inhaber; } - + public int getKontonummer() { return nummer; } @@ -20,5 +20,14 @@ public class Konto { public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; } - + + public long getStand() { + return stand; + } + + public void setStand(long stand) { + this.stand = stand; + + } + } 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..ae5f013 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/TestKonto.java @@ -0,0 +1,41 @@ +package de.hs_mannheim.informatik.bank.domain; + +import org.junit.Assert; +import org.junit.jupiter.api.Test; + +class TestKonto { + + Bank bank = new Bank("Volksbank"); + Konto konto = new Konto("Smith"); + + @Test + void testEinzahlen() { + + bank.addKonto(konto); + bank.einzahlen(konto.getKontonummer(), 1000); + + Assert.assertEquals(1000, konto.getStand()); + + } + + @Test + void testInferiorLimit() { + + bank.addKonto(konto); + bank.einzahlen(konto.getKontonummer(), -100); + + Assert.assertEquals(0, konto.getStand()); + + } + + @Test + void testUpperLimit() { + + bank.addKonto(konto); + bank.einzahlen(konto.getKontonummer(), 10001); + + Assert.assertEquals(10001, konto.getStand()); + + } + +} 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..3672307 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,42 @@ 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 einzahlen(int kontonummer, long einzahlung) { + + return bank.einzahlen(kontonummer, einzahlung); + + } + + public long kontoAnzeigen(int kontonummer) { + return bank.kontoAnzeigen(kontonummer); + } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/TestBanksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/TestBanksystem.java new file mode 100644 index 0000000..3d40e6b --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/TestBanksystem.java @@ -0,0 +1,23 @@ +package de.hs_mannheim.informatik.bank.facade; + +import org.junit.Assert; +import org.junit.jupiter.api.Test; + +class TestBanksystem { + + Banksystem bs = new Banksystem("Volksbank"); + int kn = bs.kontoAnlegen("Smith"); + + @Test + void testNegativeNumbers() { + + Assert.assertEquals(0, bs.einzahlen(kn, -100)); + } + + @Test + void testEinzahlen() { + + Assert.assertEquals(1000, bs.einzahlen(kn, 1000)); + } + +} 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..b01e073 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,44 @@ 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("Hauptmenue"); + System.out.println("1 -> Konten anzeigen"); + System.out.println("2 -> Konto anlegen"); + System.out.println("3 -> Geld einzahlen"); + System.out.println("4 -> Kontostand anzeigen"); + 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: + einzahlen(); + break; + case 4: + kontoAnzeigen(); + break; + 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 +73,23 @@ public class UI { System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); } + private void einzahlen() { + System.out.println("Bitte geben Sie den Betrag zum einzahlen ein: "); + long Betrag = Long.parseLong(sc.nextLine()); + + System.out.println("Bitte bestaetigen Sie ihre Kontonummer: "); + int kontonummer = Integer.parseInt(sc.nextLine()); + + bs.einzahlen(kontonummer, Betrag); + + } + + public void kontoAnzeigen() { + System.out.println("Bitte Ihre Kontonummer eingeben: "); + int nummer = Integer.parseInt(sc.nextLine()); + + System.out.println("Ihr aktueller Kontostand betraegt: " + bs.kontoAnzeigen(nummer) + " Euro"); + + } + }