From 8cb1191b2564d9eab4a241fc24f931e7a08851ea Mon Sep 17 00:00:00 2001 From: WummerMIB Date: Tue, 18 Oct 2022 14:34:55 +0200 Subject: [PATCH] newest stand missing only girokonto --- Konten.ser | Bin 498 -> 2606 bytes .../informatik/bank/domain/Bank.java | 36 ++------------ .../informatik/bank/domain/Girokonto.java | 9 ++++ .../informatik/bank/domain/Konto.java | 47 ++++++++++++------ .../bank/domain/Kontobewegungen.java | 31 ++++++++++++ .../bank/facade/BankSystemTest.java | 37 -------------- .../informatik/bank/facade/Banksystem.java | 22 ++++---- src/de/hs_mannheim/informatik/bank/ui/UI.java | 18 +++---- src/persistence/Persistenc.java | 2 - 9 files changed, 96 insertions(+), 106 deletions(-) create mode 100644 src/de/hs_mannheim/informatik/bank/domain/Girokonto.java create mode 100644 src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java delete mode 100644 src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java diff --git a/Konten.ser b/Konten.ser index b418465346aea290cc2889bbc097536670a795ba..b23b3cb0a23e0b7c9bc46df307b41e7d3d13a870 100644 GIT binary patch literal 2606 zcmcgu&2Jk;6o3AR+XRxd4NcpWw0x8grR_RJ3J@i#ln+-J>;x%oIrMBGfliy(|kT7GT)e2s9nGh}HuEj;elP*)dZPl1)TejyiF05sGhUk~cLcRhgnOhPz zuA*EDcW!^t#1e1lKcV1QWs_~OqQgY9xS=E$&4mhN+6pdKY%C^%759P_b+BR-toV{A zlt(^=Ha%#>i3l-N+$p}mf>xFJw44{r#n<2s$aH-LnG3X=^Z#u(CO~34WhjWyby2=Z zIZ;g56*$C2i`7sX{0fX~Dqamc*bIf)jUI|i=k}=xtdoaUK2Va zmgaBuZM$!MKmFb}?1LO+%8(EE4r*t}bn<$9oxC0~Ufi?RJhg$6Gl%c6nuDco9eu?; z@$~gB{QA!1To#}!VY+9&UfaaFqSPZ5sb_27{-yoy{9ivuwhzA9OrEY92*&{l7unW<|X;Ywd2R8iG`%gam-xG9Ymopsr6F$bU-bYidwk>!I?)SYrxKM3PHRTH0R0gB{5gM$5Ab zh7C%MX<1}1J!jaCQix2=*YU>na74ia2`@c$Ob-)%>s*ZprJX4SWBv1G2x!0K`w(__ zcmF1Yi<@?v8lFNam}5z7ICN~RHEMoaST*Tds@F+No-Dh*qhR{qmg2oq&)D+XIJ++% z)xT=?H>Hpm3F1)z@B%l&5s<9jc$hDHLm zh32Ck_#anQ#P2wJ798}(fM7e~$O+Z;hj mIBO28xst4Sj_!Qa^Mi9G*H`8$vvcdj=ZiN#{KW delta 266 zcmZ1{@`-tZ4I}f!+^ESDnMCU=3JQvg7zDEt%M$fUOEPoxJQ9mDd=m>;*>4>@ES7MQ znSsfTfh#9JF~u!0xg@{HlYz4&qbRjFBR?mlqQKsP0R(u;Ie?@95HrFJ%Sp^j*YnIP zNli~J5_+^?$@j)~3nm6ePX^Yq#GKO9iXsL9pruNQdSHcqrMXF|MQv-Q%5qP6(9Oia zP*K3Z!2AMen)c)XPWg#n%>tNx7{s&l^Gfm^vr96|GE+-{FfX{IC^Ij;kfDx&8KMK^ o91tjBU{1 konten = new HashMap<>(); @@ -44,47 +45,16 @@ public class Bank implements Serializable { return konten.values(); } - public long geldWirdInDerBankAngelegt(int kontoNummer, long geldBetrag) { - k = getKonto(kontoNummer); - k.setStand(k.getStand() + geldBetrag); - k.setKontoAktivietetenString(k.getKontoAktivietetenString() + getDatum() + " " + geldBetrag + ","); - return k.getStand(); - } public long kontoStandFinden(int kontNumToGetKontoStand) { k = getKonto(kontNumToGetKontoStand); return k.getStand(); } - public String geldAbhebenBank(int kontoNummer, long geldAbgehoben) { - k = getKonto(kontoNummer); - if (k.getStand() < geldAbgehoben) { - return "Sie haben zu wenig Geld auf ihrem Konto"; - } - - k.setStand(k.getStand() - geldAbgehoben); - k.setKontoAktivietetenString(k.getKontoAktivietetenString() + getDatum() + " -" + geldAbgehoben + ","); - return "Sie haben" + geldAbgehoben + "Euro abgehoben"; - } - - private Konto getKonto(int Kontonummer) { + public Konto getKonto(int Kontonummer) { k = konten.get(Kontonummer); return k; } - private String getDatum() { - String pattern = "MM/dd/yyyy HH:mm:ss"; - DateFormat df = new SimpleDateFormat(pattern); - Date nowDate = Calendar.getInstance().getTime(); - String nowString = df.format(nowDate); - return nowString; - } - - public String[] getAuszüge(int kontoNummer) { - k = getKonto(kontoNummer); - String[] auzügeStrings = k.getKontoAktivietetenString().split(","); - return auzügeStrings; - } - } diff --git a/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java new file mode 100644 index 0000000..cc49d9c --- /dev/null +++ b/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -0,0 +1,9 @@ +package de.hs_mannheim.informatik.bank.domain; + +public class Girokonto extends Konto{ + + public Girokonto(String inhaber) { + super(inhaber); + } + +} diff --git a/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/src/de/hs_mannheim/informatik/bank/domain/Konto.java index 950ad92..f3801bf 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -1,6 +1,12 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.LinkedList; public class Konto implements Serializable { @@ -11,24 +17,16 @@ public class Konto implements Serializable { private static int kontozähler = 0; + private int nummer; private long stand = 0; private String inhaber; - private String kontoAktivietetenString; - + private ArrayList kontobewegungen; public Konto(String inhaber) { nummer = 1000 + kontozähler++; this.inhaber = inhaber; getStand(); - kontoAktivietetenString = ""; - } - - public String getKontoAktivietetenString() { - return kontoAktivietetenString; - } - - public void setKontoAktivietetenString(String kontoAktivietetenString) { - this.kontoAktivietetenString = kontoAktivietetenString; + this.kontobewegungen = new ArrayList<>(); } public int getKontonummer() { @@ -42,12 +40,33 @@ public class Konto implements Serializable { public void setStand(long stand){ this.stand = stand; } + + public void geldEinzahlen(long einzahlen) { + this.stand += einzahlen; + + kontobewegungen.add(new Kontobewegungen(einzahlen, "Einzahlung am Schalter", "Einzahlung", inhaber)); + } + + public boolean geldAbheben(long auszahlen) { + if(this.stand < auszahlen) { + return false; + } + kontobewegungen.add(new Kontobewegungen(auszahlen, "Einzahlung am Schalter", "Auszahlen", inhaber)); + this.stand = this.stand -auszahlen; + return true; + } + + public String[] getKontoBewegungen() { + String[] auflisten = new String[kontobewegungen.size()]; + int i = 0; + for(Kontobewegungen kb : kontobewegungen) { + auflisten[i++] = kb.toString(); + } + return auflisten; + } @Override public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", Kontostand=" + stand + "]"; } - - - } diff --git a/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java b/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java new file mode 100644 index 0000000..73535d9 --- /dev/null +++ b/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java @@ -0,0 +1,31 @@ +package de.hs_mannheim.informatik.bank.domain; + +import java.util.Date; +import javax.management.loading.PrivateClassLoader; + +public class Kontobewegungen { + + private long betrag; + private Date datum; + private String betreff; + private String art; + private String auftragGeber; + + public Kontobewegungen(long betrag, String betreff, String art, String auftragGeber) { + super(); + this.betrag = betrag; + this.betreff = betreff; + this.art = art; + this.auftragGeber = auftragGeber; + + this.datum = new Date(); + } + + @Override + public String toString() { + return "Kontobewegungen [betrag=" + betrag + ", datum=" + datum + ", betreff=" + betreff + ", art=" + art + + ", auftragGeber=" + auftragGeber + "]"; + } + + +} diff --git a/src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java b/src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java deleted file mode 100644 index 62a4b1b..0000000 --- a/src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.hs_mannheim.informatik.bank.facade; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.Test; - -import de.hs_mannheim.informatik.bank.domain.Bank; -import de.hs_mannheim.informatik.bank.domain.Konto; - -public class BankSystemTest { - - - @Test - public void testGeldEinzahlen(){ - Bank bs = new Bank("Sparkasse"); - Konto k = new Konto("Bob"); - Konto k1 = new Konto("John"); - bs.addKonto(k); - bs.addKonto(k1); - long einzahlenTest = bs.geldWirdInDerBankAngelegt(1000, 200); - long k1EinzahlenTest = bs.geldWirdInDerBankAngelegt(1001, 100); - long testSumme = 200; - long testSummeZwei = 100; - assertEquals(einzahlenTest, testSumme); - assertEquals(k1EinzahlenTest, testSummeZwei); - } - - - @Test - public void testAbhebenZuWenigGeld() { - Bank bs = new Bank("Volksbank"); - Konto k = new Konto("Müller"); - bs.addKonto(k); - String test = "Sie haben zu wenig Geld auf ihrem Konto"; - assertEquals(bs.geldAbhebenBank(1000, 300), test); - } -} diff --git a/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 8bd83bb..deea1b6 100644 --- a/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -16,6 +16,7 @@ import persistence.Persistenc; public class Banksystem { private Bank bank; + private Konto konto; private Persistenc per = new Persistenc(); public Banksystem(String bankname) { this.bank = new Bank(bankname); @@ -45,8 +46,9 @@ public class Banksystem { } public long geldEinzahlen(int kontoNummer, long geldBetrag) { - long geldEinbezahlt = bank.geldWirdInDerBankAngelegt(kontoNummer,geldBetrag); - return geldEinbezahlt; + Konto konto = bank.getKonto(kontoNummer); + konto.geldEinzahlen(geldBetrag); + return konto.getStand(); } public long sucheNachKontoStand(int kontNumToGetKontoStand) { @@ -54,15 +56,12 @@ public class Banksystem { return aktuellerKontostand; } - public String geldAbheben(int kontoNummer, long geldAbheben) { - String geldAbgehoben = bank.geldAbhebenBank(kontoNummer, geldAbheben); - return geldAbgehoben; + public boolean geldAbheben(int kontoNummer, long geldAbheben) { + Konto konto = bank.getKonto(kontoNummer); + return konto.geldAbheben(geldAbheben); } - public String[] getKontoAuszüge(int kontoNummer) { - String[] auszügeStrings = bank.getAuszüge(kontoNummer); - return auszügeStrings; - } + public void saveKonten() throws Exception { per.saveKontos(bank); @@ -72,6 +71,11 @@ public class Banksystem { public void loadKonten() throws Exception { bank = per.load(); } + + public String[] erstelleKontoAuszug(int kontoNummer) { + Konto konto = bank.getKonto(kontoNummer); + return konto.getKontoBewegungen(); + } } diff --git a/src/de/hs_mannheim/informatik/bank/ui/UI.java b/src/de/hs_mannheim/informatik/bank/ui/UI.java index 7f0b13b..1a85a26 100644 --- a/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -42,7 +42,7 @@ public class UI { case 3: geldbetragEinzahlen(); break; case 4: kontoAbfragen(); break; case 5: geldAbheben(); break; - case 6: kontoauszügeAnsugeben(); break; + case 6: kontoAuszügeAnsgeben(); break; case 7: kontenLaden(); break; case 9: break mainloop; } @@ -62,16 +62,12 @@ public class UI { } - private void kontoauszügeAnsugeben() { + private void kontoAuszügeAnsgeben() { System.out.println("Geben Sie ihre Kontonummer ein"); int kontoNummer = Integer.parseInt(sc.nextLine()); - String[] auszüge = bs.getKontoAuszüge(kontoNummer); - if (auszüge.length>0) { - for(String s : auszüge) { - System.out.println(s); - } - }else { - System.out.println("Es sind noch keine Aktivitäten vorhanden"); + String[] kontobewegungStrings= bs.erstelleKontoAuszug(kontoNummer); + for(String kbString : kontobewegungStrings) { + System.out.println(kbString); } } @@ -80,7 +76,7 @@ public class UI { int kontoNummer = Integer.parseInt(sc.nextLine()); System.out.println("Bitte geben sie denn Betrag ein denn sie abheben wollen"); long geldAbheben = Long.parseLong(sc.nextLine()); - String abgehobenString = bs.geldAbheben(kontoNummer,geldAbheben); + boolean abgehobenString = bs.geldAbheben(kontoNummer,geldAbheben); System.out.println(abgehobenString); } @@ -97,7 +93,7 @@ public class UI { System.out.println("Bitte geben sie denn Betrag ein denn sie einzahlen möschten"); long geldBetrag = Long.parseLong(sc.nextLine()); long neuerGeldBetrag = bs.geldEinzahlen(kontoNummer,geldBetrag); - System.out.println("Ihr neuer Betrag ist: " + neuerGeldBetrag); + System.out.println("Ihr neuer Betrag ist: " + (double)neuerGeldBetrag/100); } private void kontenAnzeigen() { diff --git a/src/persistence/Persistenc.java b/src/persistence/Persistenc.java index baa0683..a2d4379 100644 --- a/src/persistence/Persistenc.java +++ b/src/persistence/Persistenc.java @@ -13,7 +13,6 @@ public class Persistenc { public void saveKontos(Bank bank) throws Exception { - // File fileKonton = new File("Konten.txt"); FileOutputStream fOS; fOS = new FileOutputStream("Konten.ser"); ObjectOutputStream oos = new ObjectOutputStream(fOS); @@ -24,7 +23,6 @@ public class Persistenc { } public Bank load() throws Exception { - // File toRead = new File("Konten.ser"); FileInputStream fis = new FileInputStream("Konten.ser"); ObjectInputStream ois = new ObjectInputStream(fis); Bank bank = (Bank) ois.readObject();