From 6e00075e9f5c4e113b6e5d14f30dc4577ec9b426 Mon Sep 17 00:00:00 2001 From: WummerMIB Date: Tue, 11 Oct 2022 14:49:04 +0200 Subject: [PATCH] save and load works --- Konten.ser | Bin 0 -> 498 bytes src/de/hs_mannheim/informatik/bank/Main.java | 2 +- .../informatik/bank/domain/Bank.java | 46 ++++++++++++------ .../informatik/bank/domain/Konto.java | 11 ++++- .../bank/facade/BankSystemTest.java | 14 +++--- .../informatik/bank/facade/Banksystem.java | 22 ++++++++- src/de/hs_mannheim/informatik/bank/ui/UI.java | 20 ++++++-- src/persistence/Persistenc.java | 36 ++++++++++++++ 8 files changed, 122 insertions(+), 29 deletions(-) create mode 100644 Konten.ser create mode 100644 src/persistence/Persistenc.java diff --git a/Konten.ser b/Konten.ser new file mode 100644 index 0000000000000000000000000000000000000000..b418465346aea290cc2889bbc097536670a795ba GIT binary patch literal 498 zcma)(yH3L}6oyaI8@Hhp0TU84hT0emjd}ZFM$>tQ@k&P_6O$G+H=(sesvmsZgNT!6PN44U@{3 zH1S2~W%0&lVSMInLf=h&jGtk-h-GV2eJWe;_YYqe*Xt%2Hq-_frZkh#EJTZU`)TA- zc{RLSn!bIzF#)m|pz@)It^O~>B8S3@_FzKQhB{B9h{|346$-iMK!b4~waO`+=P57d siHWU1u>qq>Z(b%+v`hK%JWx<^g{!nH1@pZaN0-l!0VWAu?vDTV8 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 geldWirdInDerBankAngelegt(int kontoNummer, long geldBetrag) { k = getKonto(kontoNummer); - k.setStand(k.getStand()+geldBetrag); - k.setKontoAktivietetenString(k.getKontoAktivietetenString()+ getDatum() + " " + geldBetrag+","); + k.setStand(k.getStand() + geldBetrag); + k.setKontoAktivietetenString(k.getKontoAktivietetenString() + getDatum() + " " + geldBetrag + ","); return k.getStand(); } @@ -43,21 +58,21 @@ public class Bank { public String geldAbhebenBank(int kontoNummer, long geldAbgehoben) { k = getKonto(kontoNummer); - - if(k.getStand() < geldAbgehoben) { + + if (k.getStand() < geldAbgehoben) { return "Sie haben zu wenig Geld auf ihrem Konto"; } - - k.setStand(k.getStand()-geldAbgehoben); - k.setKontoAktivietetenString(k.getKontoAktivietetenString()+ getDatum() +" -"+geldAbgehoben+","); + + k.setStand(k.getStand() - geldAbgehoben); + k.setKontoAktivietetenString(k.getKontoAktivietetenString() + getDatum() + " -" + geldAbgehoben + ","); return "Sie haben" + geldAbgehoben + "Euro abgehoben"; } - + private 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); @@ -71,4 +86,5 @@ public class Bank { String[] auzügeStrings = k.getKontoAktivietetenString().split(","); return auzügeStrings; } + } diff --git a/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/src/de/hs_mannheim/informatik/bank/domain/Konto.java index 2a267fd..950ad92 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -1,8 +1,13 @@ package de.hs_mannheim.informatik.bank.domain; -import javax.lang.model.element.NestingKind; +import java.io.Serializable; -public class Konto { +public class Konto implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; private static int kontozähler = 0; @@ -43,4 +48,6 @@ public class Konto { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", Kontostand=" + stand + "]"; } + + } diff --git a/src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java b/src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java index 660391f..62a4b1b 100644 --- a/src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java +++ b/src/de/hs_mannheim/informatik/bank/facade/BankSystemTest.java @@ -26,10 +26,12 @@ public class BankSystemTest { } - /* public void testGeldEinzahlenAPI(){ - bs.addKonto(k1); - float geldSehen = bSys.geldEinzahlen(1000, 100); - float testLookMoney = 100; - assertEquals(geldSehen, testLookMoney); - }*/ + @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 b7f1ddf..8bd83bb 100644 --- a/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -1,13 +1,22 @@ package de.hs_mannheim.informatik.bank.facade; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.util.Collection; +import java.util.HashMap; +import java.util.Map.Entry; import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.domain.Konto; +import persistence.Persistenc; public class Banksystem { private Bank bank; - + private Persistenc per = new Persistenc(); public Banksystem(String bankname) { this.bank = new Bank(bankname); } @@ -54,4 +63,15 @@ public class Banksystem { String[] auszügeStrings = bank.getAuszüge(kontoNummer); return auszügeStrings; } + + public void saveKonten() throws Exception { + per.saveKontos(bank); + + } + + public void loadKonten() throws Exception { + bank = per.load(); + } + + } diff --git a/src/de/hs_mannheim/informatik/bank/ui/UI.java b/src/de/hs_mannheim/informatik/bank/ui/UI.java index 5f0dd10..7f0b13b 100644 --- a/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -9,12 +9,12 @@ public class UI { private Banksystem bs; Scanner sc = new Scanner(System.in); - public UI(Banksystem bs) { + public UI(Banksystem bs) throws Exception { this.bs = bs; hauptmenue(); } - private void hauptmenue() { + private void hauptmenue() throws Exception{ System.out.println("Willkommen bei der " + bs.getBankname() + "!"); mainloop: @@ -28,6 +28,7 @@ public class UI { System.out.println("4 -> Konto abfragen"); System.out.println("5 -> Geld abheben"); System.out.println("6 -> Kontoauszüge ausgeben"); + System.out.println("7 -> Konten laden"); System.out.println("9 -> Beenden"); System.out.println(); @@ -42,13 +43,24 @@ public class UI { case 4: kontoAbfragen(); break; case 5: geldAbheben(); break; case 6: kontoauszügeAnsugeben(); break; + case 7: kontenLaden(); break; case 9: break mainloop; } - } - + try { + bs.saveKonten(); + } catch (Exception e) { + // TODO: handle exception + } + // System.out.println("Auf Wiedersehen!"); } // hauptmenü + } + + private void kontenLaden() throws Exception { + bs.loadKonten(); + + } private void kontoauszügeAnsugeben() { System.out.println("Geben Sie ihre Kontonummer ein"); diff --git a/src/persistence/Persistenc.java b/src/persistence/Persistenc.java new file mode 100644 index 0000000..baa0683 --- /dev/null +++ b/src/persistence/Persistenc.java @@ -0,0 +1,36 @@ +package persistence; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +import de.hs_mannheim.informatik.bank.domain.Bank; + +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); + oos.writeObject(bank); + oos.flush(); + oos.close(); + fOS.close(); + } + + 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(); + ois.close(); + fis.close(); + return bank; + } + +}