diff --git a/Konten.ser b/Konten.ser new file mode 100644 index 0000000..b418465 Binary files /dev/null and b/Konten.ser differ diff --git a/src/de/hs_mannheim/informatik/bank/Main.java b/src/de/hs_mannheim/informatik/bank/Main.java index b075558..16a794f 100644 --- a/src/de/hs_mannheim/informatik/bank/Main.java +++ b/src/de/hs_mannheim/informatik/bank/Main.java @@ -5,7 +5,7 @@ import de.hs_mannheim.informatik.bank.ui.UI; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws Exception { Banksystem bs = new Banksystem("Spaßkasse Mannheim"); UI ui = new UI(bs); } diff --git a/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/src/de/hs_mannheim/informatik/bank/domain/Bank.java index 179231d..0abd3a8 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Bank.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Bank.java @@ -1,38 +1,53 @@ package de.hs_mannheim.informatik.bank.domain; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Collection; import java.util.Date; import java.util.HashMap; +import java.util.Map.Entry; -public class Bank { +import de.hs_mannheim.informatik.bank.facade.Banksystem; + +public class Bank implements Serializable { + /** + * + */ + private static final long serialVersionUID = 1L; private Konto k; +// private Banksystem bsy; 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 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; + } + +}