save and load works

main
WummerMIB 2022-10-11 14:49:04 +02:00
parent 68f56c1308
commit 6e00075e9f
8 changed files with 122 additions and 29 deletions

BIN
Konten.ser 100644

Binary file not shown.

View File

@ -5,7 +5,7 @@ import de.hs_mannheim.informatik.bank.ui.UI;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) throws Exception {
Banksystem bs = new Banksystem("Spaßkasse Mannheim"); Banksystem bs = new Banksystem("Spaßkasse Mannheim");
UI ui = new UI(bs); UI ui = new UI(bs);
} }

View File

@ -1,38 +1,53 @@
package de.hs_mannheim.informatik.bank.domain; 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.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.HashMap; 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 Konto k;
// private Banksystem bsy;
private String name; private String name;
private HashMap<Integer, Konto> konten = new HashMap<>(); private HashMap<Integer, Konto> konten = new HashMap<>();
public Bank(String name) { public Bank(String name) {
this.name = name; this.name = name;
} }
public void addKonto(Konto k) { public void addKonto(Konto k) {
konten.put(k.getKontonummer(), k); konten.put(k.getKontonummer(), k);
} }
public String getName() { public String getName() {
return name; return name;
} }
public Collection<Konto> getKontenliste() { public Collection<Konto> getKontenliste() {
return konten.values(); return konten.values();
} }
public long geldWirdInDerBankAngelegt(int kontoNummer, long geldBetrag) { public long geldWirdInDerBankAngelegt(int kontoNummer, long geldBetrag) {
k = getKonto(kontoNummer); k = getKonto(kontoNummer);
k.setStand(k.getStand()+geldBetrag); k.setStand(k.getStand() + geldBetrag);
k.setKontoAktivietetenString(k.getKontoAktivietetenString()+ getDatum() + " " + geldBetrag+","); k.setKontoAktivietetenString(k.getKontoAktivietetenString() + getDatum() + " " + geldBetrag + ",");
return k.getStand(); return k.getStand();
} }
@ -43,21 +58,21 @@ public class Bank {
public String geldAbhebenBank(int kontoNummer, long geldAbgehoben) { public String geldAbhebenBank(int kontoNummer, long geldAbgehoben) {
k = getKonto(kontoNummer); k = getKonto(kontoNummer);
if(k.getStand() < geldAbgehoben) { if (k.getStand() < geldAbgehoben) {
return "Sie haben zu wenig Geld auf ihrem Konto"; return "Sie haben zu wenig Geld auf ihrem Konto";
} }
k.setStand(k.getStand()-geldAbgehoben); k.setStand(k.getStand() - geldAbgehoben);
k.setKontoAktivietetenString(k.getKontoAktivietetenString()+ getDatum() +" -"+geldAbgehoben+","); k.setKontoAktivietetenString(k.getKontoAktivietetenString() + getDatum() + " -" + geldAbgehoben + ",");
return "Sie haben" + geldAbgehoben + "Euro abgehoben"; return "Sie haben" + geldAbgehoben + "Euro abgehoben";
} }
private Konto getKonto(int Kontonummer) { private Konto getKonto(int Kontonummer) {
k = konten.get(Kontonummer); k = konten.get(Kontonummer);
return k; return k;
} }
private String getDatum() { private String getDatum() {
String pattern = "MM/dd/yyyy HH:mm:ss"; String pattern = "MM/dd/yyyy HH:mm:ss";
DateFormat df = new SimpleDateFormat(pattern); DateFormat df = new SimpleDateFormat(pattern);
@ -71,4 +86,5 @@ public class Bank {
String[] auzügeStrings = k.getKontoAktivietetenString().split(","); String[] auzügeStrings = k.getKontoAktivietetenString().split(",");
return auzügeStrings; return auzügeStrings;
} }
} }

View File

@ -1,8 +1,13 @@
package de.hs_mannheim.informatik.bank.domain; 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; private static int kontozähler = 0;
@ -43,4 +48,6 @@ public class Konto {
return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", Kontostand=" + stand + "]"; return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", Kontostand=" + stand + "]";
} }
} }

View File

@ -26,10 +26,12 @@ public class BankSystemTest {
} }
/* public void testGeldEinzahlenAPI(){ @Test
bs.addKonto(k1); public void testAbhebenZuWenigGeld() {
float geldSehen = bSys.geldEinzahlen(1000, 100); Bank bs = new Bank("Volksbank");
float testLookMoney = 100; Konto k = new Konto("Müller");
assertEquals(geldSehen, testLookMoney); bs.addKonto(k);
}*/ String test = "Sie haben zu wenig Geld auf ihrem Konto";
assertEquals(bs.geldAbhebenBank(1000, 300), test);
}
} }

View File

@ -1,13 +1,22 @@
package de.hs_mannheim.informatik.bank.facade; 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.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.Bank;
import de.hs_mannheim.informatik.bank.domain.Konto; import de.hs_mannheim.informatik.bank.domain.Konto;
import persistence.Persistenc;
public class Banksystem { public class Banksystem {
private Bank bank; private Bank bank;
private Persistenc per = new Persistenc();
public Banksystem(String bankname) { public Banksystem(String bankname) {
this.bank = new Bank(bankname); this.bank = new Bank(bankname);
} }
@ -54,4 +63,15 @@ public class Banksystem {
String[] auszügeStrings = bank.getAuszüge(kontoNummer); String[] auszügeStrings = bank.getAuszüge(kontoNummer);
return auszügeStrings; return auszügeStrings;
} }
public void saveKonten() throws Exception {
per.saveKontos(bank);
}
public void loadKonten() throws Exception {
bank = per.load();
}
} }

View File

@ -9,12 +9,12 @@ public class UI {
private Banksystem bs; private Banksystem bs;
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);
public UI(Banksystem bs) { public UI(Banksystem bs) throws Exception {
this.bs = bs; this.bs = bs;
hauptmenue(); hauptmenue();
} }
private void hauptmenue() { private void hauptmenue() throws Exception{
System.out.println("Willkommen bei der " + bs.getBankname() + "!"); System.out.println("Willkommen bei der " + bs.getBankname() + "!");
mainloop: mainloop:
@ -28,6 +28,7 @@ public class UI {
System.out.println("4 -> Konto abfragen"); System.out.println("4 -> Konto abfragen");
System.out.println("5 -> Geld abheben"); System.out.println("5 -> Geld abheben");
System.out.println("6 -> Kontoauszüge ausgeben"); System.out.println("6 -> Kontoauszüge ausgeben");
System.out.println("7 -> Konten laden");
System.out.println("9 -> Beenden"); System.out.println("9 -> Beenden");
System.out.println(); System.out.println();
@ -42,13 +43,24 @@ public class UI {
case 4: kontoAbfragen(); break; case 4: kontoAbfragen(); break;
case 5: geldAbheben(); break; case 5: geldAbheben(); break;
case 6: kontoauszügeAnsugeben(); break; case 6: kontoauszügeAnsugeben(); break;
case 7: kontenLaden(); break;
case 9: break mainloop; case 9: break mainloop;
} }
} try {
bs.saveKonten();
} catch (Exception e) {
// TODO: handle exception
}
//
System.out.println("Auf Wiedersehen!"); System.out.println("Auf Wiedersehen!");
} // hauptmenü } // hauptmenü
}
private void kontenLaden() throws Exception {
bs.loadKonten();
}
private void kontoauszügeAnsugeben() { private void kontoauszügeAnsugeben() {
System.out.println("Geben Sie ihre Kontonummer ein"); System.out.println("Geben Sie ihre Kontonummer ein");

View File

@ -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;
}
}