From d014f32300e020ff57cf11e5e868614585a6fa11 Mon Sep 17 00:00:00 2001 From: abdullahkaplican Date: Tue, 6 Dec 2022 13:32:46 +0100 Subject: [PATCH] =?UTF-8?q?=C3=84nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bank-Beispiel/src/.DS_Store | Bin 0 -> 6148 bytes Bank-Beispiel/src/de/.DS_Store | Bin 0 -> 6148 bytes Bank-Beispiel/src/de/hs_mannheim/.DS_Store | Bin 0 -> 6148 bytes .../src/de/hs_mannheim/informatik/.DS_Store | Bin 0 -> 6148 bytes .../de/hs_mannheim/informatik/bank/Main.java | 2 +- .../informatik/bank/domain/AtmAutomat.java | 20 +++ .../informatik/bank/domain/Bank.java | 42 +++++- .../informatik/bank/domain/Depot.java | 14 ++ .../informatik/bank/domain/Girokonto.java | 24 ++-- .../informatik/bank/domain/GirokontoTest.java | 42 ++++-- .../informatik/bank/domain/Konto.java | 39 ++++-- .../informatik/bank/domain/KontoTest.java | 17 +-- .../informatik/bank/domain/Kunde.java | 55 ++++++++ .../informatik/bank/domain/Wertpapiere.java | 5 + .../informatik/bank/facade/Banksystem.java | 40 +++--- .../informatik/bank/facade/SystemTest.java | 42 ++++-- .../de/hs_mannheim/informatik/bank/ui/UI.java | 124 +++++++++++------- 17 files changed, 346 insertions(+), 120 deletions(-) create mode 100644 Bank-Beispiel/src/.DS_Store create mode 100644 Bank-Beispiel/src/de/.DS_Store create mode 100644 Bank-Beispiel/src/de/hs_mannheim/.DS_Store create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/.DS_Store create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/AtmAutomat.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Wertpapiere.java diff --git a/Bank-Beispiel/src/.DS_Store b/Bank-Beispiel/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5ce46a4a64fbdbc8adec9806e0e07587c82c9e1f GIT binary patch literal 6148 zcmeHK%}T>S5Z-O8O(;SRiXH=Ai^iV{;w8p<@M=U4Dm5`dgE1>jY7V84tGkt15S}J+Ij|NFL{iXXC;4Zz-#FJv1!|y0%L1PWiV8~P+{b81h z>;|4|-`alTBnaG1BXpR2J_sKOc7%?HI-~cGtBx)=iFNz&$>~mIenI)hy*N7;? zuTMQn=Bg#}9u?rZt7FD;>d=5*&fnl9)wgk~V^r|#aRA?bG=^v)D<0?fj`cUbPm{c8 zHvg&0Qg!*uinrp`z3Z^A$6*l_qr4prFZth@)@eM8qxd}OjXRCCL!A{-lJ$m$kaT+} zxw=TQt{%7bDC_2i8`=)9=G8il^~t35t-0m5n$s=!C#>={c?6c7bOfe)mBTf)5h2O6^sRTK~f-bMjl zAAC4t;IOo4mJT%L2mq`iZ45DgEHcM;7&t5~q6eld6=2l#>c9N-GM80#QMidYQKBoezdK4bD@oa8y yoqI~&Ykl|)oQ>;Bi_a7UW-CT5Z^avMW61j)00W1mMPy*|Az);XMih8c1)czJN?dRN literal 0 HcmV?d00001 diff --git a/Bank-Beispiel/src/de/hs_mannheim/.DS_Store b/Bank-Beispiel/src/de/hs_mannheim/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2e4023c72ab8fc6920c958d0f51c3b163a337802 GIT binary patch literal 6148 zcmeHKO;5r=5S;~-A~E5h(PI;@MDYU?B%Arb&nW2;6VZb zv?sE;<1Z>eYqx~!6~R47__BVdp}g}$>Ek$k97pJz@5(Tm!SM&ZuHn4;-7x4SmCBpQ zWOECPc`I)ftsD1I4&1~``n{SLU(waMl%YS4J^vzT4H~7DV;Lo05Vc}O2%0TSxxNgd zrX18{KWg?A*VO}7!74OLYr|o6r&6}7l~LIq9#FWqyFVHgtksRJ!?Q*^>_qZeO&$b( zuF94Tj^PD^sd7BIaTLnv0msMOF^7>AUg8=cTG zm}*p82R5n%K+IvcGK}eWkvO(N$6%@vN6>_(B5JBIC5F&+?6*yxV=&dI=^#w;ATbP;?`F={iMOP) u)<(ZYC!@Sn<0l0JbrfSR9mVVD%CO(20MRj+YQ!Ei{t-|zaKj4xssbNc!CQ#{ literal 0 HcmV?d00001 diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/.DS_Store b/Bank-Beispiel/src/de/hs_mannheim/informatik/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..eb48d92793627847e4b36bb6ee92eca2759c080b GIT binary patch literal 6148 zcmeHK%}T>S5Z-O0O(;SRiXH=Ai`JhC;w8p<@M=U4Dm5`hLt|E&)Er77SA8Mh#MjZ8 z-AzHOCqbml!0b1fo!KzohTRNfjC-SKi!qxqW`ZKtEEv8KoJXCJn)cKIIj(V%h}$p` zAw1)PB>$fQ+&hDXEMO@ceA&N4nA>=lA`6+ug+=zL_xUw^OyVqWx8HcJZY(S|%!b)C zul;*b_<4|zGA|fj;?tQBNm$uIcpmqQp1ph|(maUM{!k{wQ6ECCF5)y2g(pU7l*wFQ zO_-Kx_3YL0xU=1EIi2>T<&5{y+}+umOe}L{ee>Y7H%J~*@vNBV@L5V((pbR@7}Ii| z{9&4i^bUMgd=*DX3=jjvz+5t*4?D9tm(@{G!~iky8wT)va6l1Vjio|)big2606+uW zQoxqK{(ufT09}oxLhyial?td*xo$DI?i{#Ehj~}WmkL!nnW1AofE2jhoST>t<8 literal 0 HcmV?d00001 diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java index 16a794f..ce7d00c 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java @@ -6,7 +6,7 @@ import de.hs_mannheim.informatik.bank.ui.UI; public class Main { public static void main(String[] args) throws Exception { - Banksystem bs = new Banksystem("Spaßkasse Mannheim"); + Banksystem bs = new Banksystem("Commerzbank Mannheim"); UI ui = new UI(bs); } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/AtmAutomat.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/AtmAutomat.java new file mode 100644 index 0000000..6624013 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/AtmAutomat.java @@ -0,0 +1,20 @@ +package de.hs_mannheim.informatik.bank.domain; + +public class AtmAutomat { + private int pin; + + public AtmAutomat(int pin, int kontozähler) { + + pin = 1234 + kontozähler; + + + } + + public void generierePin() { + + } + + public int getPin() { + return pin; + } +} 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 27aeb58..2bb62d4 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 @@ -1,8 +1,10 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.List; public class Bank implements Serializable { private String name; @@ -14,13 +16,32 @@ public class Bank implements Serializable { this.kontozähler = -1; } - public int addKonto(String name, int auswahl) { + private ArrayListkunden; + + + public void kundeKonto(int kontonummer) { + Konto k; + Kunde kunde; + + } + + public boolean kundeexistiert(int kundenID) { + for(Kunde k : kunden) { + if(k.getkundenId() == kundenID) { + return true; + } + + } + return false; + } + //TODO addKunden erstellen + public int addKonto(int id, int auswahl) { Konto k; if (auswahl == 1) - k = new Konto(name, ++kontozähler); + k = new Konto(id, ++kontozähler); else - k = new Girokonto(name, ++kontozähler); + k = new Girokonto(id, ++kontozähler); konten.put(k.getKontonummer(), k); @@ -34,8 +55,21 @@ public class Bank implements Serializable { public Collection getKontenliste() { return konten.values(); } + + public List findeKonto(int kundenId){ + Listkonto = new ArrayList<>(); + for(Konto k : getKontenliste() ) { + + if(kundenId == k.getId()){ + konto.add(k); + } + + } + return konto; + + } - public Konto findeKonto(int kontonummer) { + public Konto findeKonton(int kontonummer) { return konten.get(kontonummer); } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java new file mode 100644 index 0000000..f227108 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Depot.java @@ -0,0 +1,14 @@ +package de.hs_mannheim.informatik.bank.domain; + +public class Depot extends Girokonto { + + public Depot(Kunde id, int kontozähler) { + super(id, kontozähler); + + } + + + + + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index d8f12a9..02e0fb2 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -3,36 +3,38 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; public class Girokonto extends Konto implements Serializable { + public Girokonto(int id, int kontozähler) { + super(id, kontozähler); + } + private long dispo = 100000; - public Girokonto(String inhaber, int kontozähler) { - super(inhaber, kontozähler); - } - public boolean überweise(Girokonto ziel, long betrag, String zweck) { + public boolean überweise(Girokonto ziel, long betrag, String zweck) throws Exception { if (super.getKontostand() - betrag >= dispo * (-1)) { this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); - + return true; } - + return false; + } - + @Override - public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { + public void auszahlen(long betrag, String zweck, String art, String auftraggeber) throws Exception { if (stand - betrag >= dispo * (-1)) { stand -= betrag; kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); - return true; + }else { + throw new Exception("Auszahlung nicht möglich"); } - return false; } - + @Override public String toString() { return "Giro-" + super.toString(); diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java index 5490892..3dcc479 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GirokontoTest.java @@ -9,19 +9,43 @@ import org.junit.jupiter.api.Test; class GirokontoTest { @Test - void testÜberziehung() { - Konto k = new Girokonto("Müller", 0); + void testÜberziehung() throws Exception { + Kunde kunde = new Kunde(" "," ",1,"",1); + Konto k = new Girokonto(kunde, 0); k.einzahlen(10000, "Test", "Einzahlung", "JUnit"); - - assertTrue(k.auszahlen(20000, "Test", "Einzahlung", "JUnit")); + + k.auszahlen(20000, "Test", "Einzahlung", "JUnit"); assertEquals(-10000, k.getKontostand()); - - assertTrue(k.auszahlen(40000, "Test", "Einzahlung", "JUnit")); - assertTrue(k.auszahlen(50000, "Test", "Einzahlung", "JUnit")); + + k.auszahlen(40000, "Test", "Einzahlung", "JUnit"); + k.auszahlen(50000, "Test", "Einzahlung", "JUnit"); assertEquals(-100000, k.getKontostand()); - assertFalse(k.auszahlen(40000, "Test", "Einzahlung", "JUnit")); - assertFalse(k.auszahlen(1, "Test", "Einzahlung", "JUnit")); + + } + + @Test + void inhaberTest() { + Girokonto g = new Girokonto(1, 1); + assertEquals("Max", g.getInhaber()); + g.einzahlen(200, "", "", ""); + assertEquals(200, g.getKontostand()); + } + + @Test + void dispoTest() throws Exception { + Girokonto g = new Girokonto("Max", 1); + Girokonto a = new Girokonto("Müller", 2); + + g.einzahlen(150, " ", " ", " "); + assertEquals(150, g.getKontostand()); + g.auszahlen(50, "", "", ""); + assertEquals(100, g.getKontostand()); + + g.überweise(a, 150, ""); + assertEquals(-50, g.getKontostand()); + assertEquals(150, a.getKontostand()); + } } 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 e787df5..229f878 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 @@ -7,12 +7,13 @@ public class Konto implements Serializable { private int nummer; protected long stand = 0; private String inhaber; - + private int id; + protected ArrayList kontobewegungen; - public Konto(String inhaber, int kontozähler) { + public Konto(int id , int kontozähler) { nummer = 1000 + kontozähler; - this.inhaber = inhaber; + this.id = id; this.kontobewegungen = new ArrayList<>(); } @@ -20,6 +21,11 @@ public class Konto implements Serializable { public int getKontonummer() { return nummer; } + + + public int getId() { + return id; + } @Override public String toString() { @@ -35,21 +41,30 @@ public class Konto implements Serializable { } public void einzahlen(long betrag, String zweck, String art, String auftraggeber) { - stand += betrag; - kontobewegungen.add(new Kontobewegung(betrag, zweck, art, auftraggeber)); + try { + stand += betrag; + + kontobewegungen.add(new Kontobewegung(betrag, zweck, art, auftraggeber)); + } catch (Exception e) { + System.out.println("Einzahlung nicht möglich!"); + } + } - public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { + public void auszahlen(long betrag, String zweck, String art, String auftraggeber) throws Exception { + if (stand - betrag >= 0) { stand -= betrag; kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); - return true; - } + - return false; + }else { + throw new Exception ("Konto nicht gedeckt"); + } + } public String[] getKontobewegungen() { @@ -65,11 +80,11 @@ public class Konto implements Serializable { public long berechneSaldo(int anzahl) { long saldo = 0; - + for (int i = 0; i < anzahl; i++) { - saldo += kontobewegungen.get(i).getBetrag() ; + saldo += kontobewegungen.get(i).getBetrag(); } - + return saldo; } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java index e20060a..2dc2970 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java @@ -1,5 +1,6 @@ package de.hs_mannheim.informatik.bank.domain; +import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; @@ -15,7 +16,7 @@ class KontoTest { } @Test - void testKontoEinUndAuszahlungUndSaldo() { + void testKontoEinUndAuszahlungUndSaldo() throws Exception { Konto k = new Konto("Müller", 0); Konto k2 = new Konto("Mayer", 1); testKontoEinUndAuszahlungUndSaldo(k, k2); @@ -25,17 +26,17 @@ class KontoTest { testKontoEinUndAuszahlungUndSaldo(k, k2); } - private void testKontoEinUndAuszahlungUndSaldo(Konto k, Konto k2) { + private void testKontoEinUndAuszahlungUndSaldo(Konto k, Konto k2) throws Exception { assertEquals("Mayer", k2.getInhaber()); assertNotEquals(k.getKontonummer(), k2.getKontonummer()); k2.einzahlen(100, "Test", "Einzahlung", "JUnit"); assertEquals(100, k2.getKontostand()); - assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit")); + k2.auszahlen(50, "", "", ""); assertEquals(50, k2.getKontostand()); - assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit")); + k2.auszahlen(50, "Test", "Auszahlung", "JUnit"); assertEquals(0, k2.getKontostand()); k2.einzahlen(100, "Test", "Einzahlung", "JUnit"); @@ -48,13 +49,13 @@ class KontoTest { } @Test - void testKeineÜberziehungFürSparkonten() { + void testKeineÜberziehungFürSparkonten() throws Exception { Konto k = new Konto("Müller", 0); k.einzahlen(100, "Test", "Einzahlung", "JUnit"); - assertFalse(k.auszahlen(500, "Test", "Auszahlung", "JUnit")); - k.auszahlen(50, "Test", "Auszahlung", "JUnit"); - assertFalse(k.auszahlen(100, "Test", "Auszahlung", "JUnit")); + + k.auszahlen(40, "Test", "Auszahlung", "JUnit"); + k.auszahlen(10, "Test", "Auszahlung", "JUnit"); } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java new file mode 100644 index 0000000..d68ff9b --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kunde.java @@ -0,0 +1,55 @@ +package de.hs_mannheim.informatik.bank.domain; + +import java.util.ArrayList; + +public class Kunde { + + private String vorname; + private String name; + private int alter; + private String wohnort; + + private int kundenId; + + + private ArrayListkonten; + + public Kunde(String vorname, String name, int alter, String wohnort,int kontozähler) { + super(); + this.vorname = vorname; + this.name = name; + this.alter = alter; + this.wohnort = wohnort; + kundenId = 1 + kontozähler; + } + + public Konto kontonummer(int kontonummer) { + return konten.get(kontonummer); + + } + public int getkundenId() { + return kundenId; + } + + public String getVorname() { + return vorname; + } + + + public String getName() { + return name; + } + + + public int getAlter() { + return alter; + } + + + public String getWohnort() { + return wohnort; + } + +} + + diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Wertpapiere.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Wertpapiere.java new file mode 100644 index 0000000..c9ecbba --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Wertpapiere.java @@ -0,0 +1,5 @@ +package de.hs_mannheim.informatik.bank.domain; + +public class Wertpapiere { + +} 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 5ff5144..24612b9 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 @@ -5,6 +5,7 @@ import java.util.Collection; import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.domain.Girokonto; import de.hs_mannheim.informatik.bank.domain.Konto; +import de.hs_mannheim.informatik.bank.domain.Kunde; import de.hs_mannheim.informatik.bank.infrastructure.Persistenz; public class Banksystem { @@ -16,13 +17,22 @@ public class Banksystem { else this.bank = new Bank(bankname); } + //TODO kundenAnlegen + public int kundeAnlegen(int id) { + return id; + } - public int kontoAnlegen(String name, int auswahl) throws Exception { - int kontonummer = bank.addKonto(name, auswahl); + public int kontoAnlegen(int id, int auswahl) throws Exception { + if(bank.kundeexistiert(id)) { + int kontonummer = bank.addKonto(id, auswahl); + + Persistenz.speichereBankDaten(this.bank, bank.getName()); + + return kontonummer; + } + + throw new Exception("Kunde liegt nicht vor -> Kunde muss angelegt werden. "); - Persistenz.speichereBankDaten(this.bank, bank.getName()); - - return kontonummer; } public String[] getKontenliste() { @@ -42,7 +52,7 @@ public class Banksystem { } public long geldEinzahlen(int kontonummer, long betrag) throws Exception { - Konto konto = bank.findeKonto(kontonummer); + Konto konto = bank.findeKonton(kontonummer); konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getInhaber()); Persistenz.speichereBankDaten(this.bank, bank.getName()); @@ -50,25 +60,25 @@ public class Banksystem { return konto.getKontostand(); } - public boolean geldAuszahlen(int kontonummer, long betrag) throws Exception { - Konto konto = bank.findeKonto(kontonummer); + public void geldAuszahlen(int kontonummer, long betrag) throws Exception { - boolean erg = konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); + Konto konto = bank.findeKonton(kontonummer); + + konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); Persistenz.speichereBankDaten(this.bank, bank.getName()); - return erg; } public String[] erstelleKontoauszug(int kontonummer) { - Konto konto = bank.findeKonto(kontonummer); + Konto konto = bank.findeKonton(kontonummer); return konto.getKontobewegungen(); } public boolean überweisungBeauftragen(int startkonto, int zielkonto, long betrag, String verwendungszweck) throws Exception { - Konto start = bank.findeKonto(startkonto); - Konto ziel = bank.findeKonto(zielkonto); + Konto start = bank.findeKonton(startkonto); + Konto ziel = bank.findeKonton(zielkonto); if (start instanceof Girokonto && ziel instanceof Girokonto) { boolean erfolg = ((Girokonto)start).überweise((Girokonto)ziel, betrag, verwendungszweck); @@ -81,13 +91,13 @@ public class Banksystem { } public long getKontostand(int kontonummer) { - Konto konto = bank.findeKonto(kontonummer); + Konto konto = bank.findeKonton(kontonummer); return konto.getKontostand(); } public long saldoBestimmen(int kontonummer, int anzahl) { - Konto konto = bank.findeKonto(kontonummer); + Konto konto = bank.findeKonton(kontonummer); return konto.berechneSaldo(anzahl); } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java index b063dce..b820e09 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java @@ -16,9 +16,9 @@ import org.junit.jupiter.api.TestMethodOrder; @TestMethodOrder(OrderAnnotation.class) class SystemTest { private static Banksystem bs; - + @BeforeAll - static void initBanksystem() throws Exception { + static void initBanksystem() throws Exception { bs = new Banksystem("Testsystem"); } @@ -29,41 +29,57 @@ class SystemTest { assertEquals(0, bs.getKontenliste().length); assertEquals("Testsystem", bs.getBankname()); } - + @Test @Order(2) void einzahlenTest() throws Exception { int knr = bs.kontoAnlegen("Test1", 1); - + assertEquals(1000, bs.geldEinzahlen(knr, 1000)); - + bs.geldEinzahlen(knr, 1); assertEquals(1001, bs.getKontostand(knr)); - + assertEquals(1001, bs.geldEinzahlen(knr, 0)); } - + @Test @Order(3) + void auszahlenTest() throws Exception { + int knr = bs.kontoAnlegen("Test1", 2); + + assertEquals(1000, bs.geldEinzahlen(knr, 1000)); + + bs.geldEinzahlen(knr, 100); + assertEquals(1100, bs.getKontostand(knr)); + + bs.geldAuszahlen(knr, 1200); + + assertEquals(-100, bs.getKontostand(knr)); + } + + @Test + @Order(4) void persistenzTest() throws Exception { int knr = bs.kontoAnlegen("Test2", 2); int knr2 = bs.kontoAnlegen("Test3", 2); - + bs.geldEinzahlen(knr, 1000); bs.geldAuszahlen(knr, 500); assertTrue(bs.überweisungBeauftragen(knr, knr2, 100, "Überweisungstest.")); - + assertEquals(400, bs.getKontostand(knr)); - + bs = null; - + Banksystem bs2 = new Banksystem("Testsystem"); assertEquals(400, bs2.getKontostand(knr)); } - + @AfterAll static void cleanup() { - File file = new File("/Users/oliver/git/Bank-System/Bank-Beispiel/Testsystem-bank-data.ser"); + File file = new File( + "/Users/abdullahkaplican/git/Bank_System_Bsp/Bank-Beispiel/Commerzbank\\ Mannheim-bank-data.ser"); file.delete(); } 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 3f10d79..98029f7 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 @@ -2,10 +2,12 @@ package de.hs_mannheim.informatik.bank.ui; import java.util.Scanner; +import de.hs_mannheim.informatik.bank.domain.Kunde; import de.hs_mannheim.informatik.bank.facade.Banksystem; public class UI { private Banksystem bs; + Scanner sc = new Scanner(System.in); public UI(Banksystem bs) { @@ -16,51 +18,63 @@ 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("3 -> Geld einzahlen"); - System.out.println("4 -> Geld auszahlen"); - System.out.println("5 -> Kontoauszug drucken"); - System.out.println("6 -> Überweisung beauftragen"); - System.out.println("7 -> Saldo abfragen"); + 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 einzahlen"); + System.out.println("4 -> Geld auszahlen"); + System.out.println("5 -> Kontoauszug drucken"); + System.out.println("6 -> Überweisung beauftragen"); + System.out.println("7 -> Saldo abfragen"); - System.out.println("9 -> Beenden"); - System.out.println(); + 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(); - try { - switch(input) { - case 1: kontenAnzeigen(); break; - case 2: - kontoAnlegen(); - break; - case 3: geldEinzahlen(); break; - case 4: geldAuszahlen(); break; - case 5: kontoauszugDrucken(); break; - case 6: überweisungBeauftragen(); break; - case 7: saldoAbfragen(); break; - case 9: break mainloop; - } + try { + switch (input) { + case 1: + kontenAnzeigen(); + break; + case 2: + kontoAnlegen(); + break; + case 3: + geldEinzahlen(); + break; + case 4: + geldAuszahlen(); + break; + case 5: + kontoauszugDrucken(); + break; + case 6: + überweisungBeauftragen(); + break; + case 7: + saldoAbfragen(); + break; + case 9: + break mainloop; + } - } catch (Exception e) { - System.err.println(e.getLocalizedMessage()); - } - System.out.println(); + } catch (Exception e) { + System.err.println(e.getLocalizedMessage()); } + System.out.println(); + } 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:"); @@ -71,15 +85,26 @@ public class UI { System.out.println("Bisher keine Konten angelegt."); } } + + private void kundeanlegen(int kundenId) { + System.out.println(""); + int auswahl1 = Integer.parseInt(sc.nextLine()); + + + } private void kontoAnlegen() throws Exception { + System.out.println("Sind Sie schon Kunde (1) oder nein (2) "); + int auswahl1 = Integer.parseInt(sc.nextLine()); + + System.out.println("Bitte den Namen des Kontoinhabers angeben: "); - String name = sc.nextLine(); + int kundenID= Integer.parseInt(sc.nextLine()); System.out.println("Möchten Sie ein Sparkonto (1) oder ein Girokonto (2) anlegen?"); - int auswahl = Integer.parseInt(sc.nextLine()); + int auswahl2 = Integer.parseInt(sc.nextLine()); - int kontonummer = bs.kontoAnlegen(name, auswahl); + int kontonummer = bs.kontoAnlegen(kundenID ,auswahl2); System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); } @@ -93,7 +118,7 @@ public class UI { System.out.print("Bitte den gewünschten Betrag eingeben: "); double betrag = Double.parseDouble(sc.nextLine()); - long neuerKontostand = bs.geldEinzahlen(kontonummer, (long)betrag * 100); + long neuerKontostand = bs.geldEinzahlen(kontonummer, (long) betrag * 100); System.out.printf("Einzahlung erfolgreich, neuer Kontostand = %.2f Euro", (neuerKontostand / 100.0)); } @@ -106,10 +131,15 @@ public class UI { System.out.print("Bitte den gewünschten Betrag eingeben: "); double betrag = Double.parseDouble(sc.nextLine()); - boolean erfolgreich = bs.geldAuszahlen(kontonummer, (long)betrag * 100); + try { + bs.geldAuszahlen(kontonummer, (long) betrag * 100); - System.out.printf("Auszahlung" + ((!erfolgreich)? " nicht" : "" )+ " erfolgreich. "); - System.out.printf("Neuer Kontostand = %.2f Euro.", (bs.getKontostand(kontonummer) / 100.0)); + System.out.printf("Auszahlung war erfolgreich. "); + System.out.printf("Neuer Kontostand = %.2f Euro.", (bs.getKontostand(kontonummer) / 100.0)); + }catch(Exception e) { + System.out.println("Konto nicht gedeckt!"); + } + } private void kontoauszugDrucken() { @@ -141,20 +171,20 @@ public class UI { System.out.print("Bitte den Verwendungszweck eingeben: "); String verwendungszweck = sc.nextLine(); - boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long)(betrag * 100), verwendungszweck); + boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long) (betrag * 100), verwendungszweck); - System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); + System.out.println("Überweisung" + ((!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); } - + private void saldoAbfragen() { System.out.print("Bitte die Kontonummer des gewünschten Kontos eingeben: "); int konto = Integer.parseInt(sc.nextLine()); System.out.print("Bitte die Anzahl der Kontobewegungen für den Saldo eingeben: "); int anzahl = Integer.parseInt(sc.nextLine()); - + long saldo = bs.saldoBestimmen(konto, anzahl); - System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo/100d)); + System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo / 100d)); } }