newest stand missing only girokonto
parent
6e00075e9f
commit
8cb1191b25
BIN
Konten.ser
BIN
Konten.ser
Binary file not shown.
|
@ -18,13 +18,14 @@ import java.util.Map.Entry;
|
|||
|
||||
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 amEndeDerAuzügeEifügen = ",";
|
||||
private String name;
|
||||
private HashMap<Integer, Konto> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package de.hs_mannheim.informatik.bank.domain;
|
||||
|
||||
public class Girokonto extends Konto{
|
||||
|
||||
public Girokonto(String inhaber) {
|
||||
super(inhaber);
|
||||
}
|
||||
|
||||
}
|
|
@ -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> 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() {
|
||||
|
@ -43,11 +41,32 @@ public class Konto implements Serializable {
|
|||
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 + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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 + "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
|
@ -73,5 +72,10 @@ public class Banksystem {
|
|||
bank = per.load();
|
||||
}
|
||||
|
||||
public String[] erstelleKontoAuszug(int kontoNummer) {
|
||||
Konto konto = bank.getKonto(kontoNummer);
|
||||
return konto.getKontoBewegungen();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue