forked from hummel/Bank-System
Kontobewegungen als Textdokument abspeicherbar
parent
e39c9bd8ae
commit
626a1cefcc
Binary file not shown.
|
@ -10,7 +10,7 @@ public class Girokonto extends Konto implements Serializable {
|
||||||
super(inhaber);
|
super(inhaber);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean überweise(Girokonto ziel, long betrag, String zweck) throws BankException {
|
public boolean überweiseGirokonto(Girokonto ziel, long betrag, String zweck) throws BankException {
|
||||||
if (super.getStand() - betrag >= 0) {
|
if (super.getStand() - betrag >= 0) {
|
||||||
this.auszahlenKonto(betrag, zweck, "Überweisungsausgang", super.getInhaber());
|
this.auszahlenKonto(betrag, zweck, "Überweisungsausgang", super.getInhaber());
|
||||||
ziel.einzahlenKonto(betrag, zweck, "Überweisungseingang", super.getInhaber());
|
ziel.einzahlenKonto(betrag, zweck, "Überweisungseingang", super.getInhaber());
|
||||||
|
|
|
@ -17,13 +17,15 @@ public class Banksystem {
|
||||||
this.bank = new Bank(bankname);
|
this.bank = new Bank(bankname);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int kontoAnlegen(String name, int auswahl) {
|
public int kontoAnlegen(String name, int auswahl) throws BankException {
|
||||||
Konto k;
|
Konto k;
|
||||||
|
|
||||||
if (auswahl == 1) {
|
if (auswahl == 1) {
|
||||||
k = new Konto(name);
|
k = new Konto(name);
|
||||||
} else {
|
} else if(auswahl == 2){
|
||||||
k = new Girokonto(name);
|
k = new Girokonto(name);
|
||||||
|
} else {
|
||||||
|
throw new BankException("Konto nicht angelegt");
|
||||||
}
|
}
|
||||||
|
|
||||||
bank.addKonto(k);
|
bank.addKonto(k);
|
||||||
|
@ -54,6 +56,8 @@ public class Banksystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void einzahlenBanksystem(int kNummer, long betrag) throws BankException {
|
public void einzahlenBanksystem(int kNummer, long betrag) throws BankException {
|
||||||
|
// Konto konto = getKontoBanksystem(kNummer);
|
||||||
|
// konto.einzahlenKonto(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getInhaber());
|
||||||
bank.getKonten().get(kNummer).einzahlenKonto(betrag, "Einzahlung am Schalter", "Einzahlung", bank.getKonten().get(kNummer).getInhaber());
|
bank.getKonten().get(kNummer).einzahlenKonto(betrag, "Einzahlung am Schalter", "Einzahlung", bank.getKonten().get(kNummer).getInhaber());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,12 +103,12 @@ public class Banksystem {
|
||||||
return konto.getKontobewgungen();
|
return konto.getKontobewgungen();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean überweisungBeauftragen(int startkonto, int zielkonto, long betrag, String verwendungszweck) throws BankException {
|
public boolean überweisungBeauftragenBanksystem(int startkonto, int zielkonto, long betrag, String verwendungszweck) throws BankException {
|
||||||
Konto start = getKontoBanksystem(startkonto);
|
Konto start = getKontoBanksystem(startkonto);
|
||||||
Konto ziel = getKontoBanksystem(zielkonto);
|
Konto ziel = getKontoBanksystem(zielkonto);
|
||||||
|
|
||||||
if (start instanceof Girokonto && ziel instanceof Girokonto) {
|
if (start instanceof Girokonto && ziel instanceof Girokonto) {
|
||||||
return ((Girokonto)start).überweise((Girokonto)ziel, betrag, verwendungszweck);
|
return ((Girokonto)start).überweiseGirokonto((Girokonto)ziel, betrag, verwendungszweck);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -6,6 +6,7 @@ import org.junit.Before;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import de.hs_mannheim.informatik.bank.domain.Konto;
|
import de.hs_mannheim.informatik.bank.domain.Konto;
|
||||||
|
import exception.BankException;
|
||||||
|
|
||||||
class BanksystemTest {
|
class BanksystemTest {
|
||||||
|
|
||||||
|
@ -23,24 +24,31 @@ class BanksystemTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void kontoAnlegenTest() {
|
public void kontoAnlegenTest() throws BankException {
|
||||||
bs = new Banksystem("Bank");
|
bs = new Banksystem("Bank");
|
||||||
|
|
||||||
|
|
||||||
assertEquals(1002, bs.kontoAnlegen("Anna"));
|
assertEquals(1003, bs.kontoAnlegen("Anna", 1));
|
||||||
assertNotEquals(1000, bs.kontoAnlegen("Paul"));
|
assertNotEquals(1000, bs.kontoAnlegen("Paul", 1));
|
||||||
assertEquals(1004, bs.kontoAnlegen("Max"));
|
assertEquals(1005, bs.kontoAnlegen("Max", 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Test (expected = RuntimeException.class)
|
||||||
|
// public void kontoAnlegenTest2() {
|
||||||
|
// bs = new Banksystem("Bank");
|
||||||
|
//
|
||||||
|
// bs.kontoAnlegen("Anna", 3);
|
||||||
|
// }
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getKontenlisteTest() {
|
public void getKontenlisteTest() throws BankException {
|
||||||
bs = new Banksystem("Bank");
|
bs = new Banksystem("Bank");
|
||||||
bs.kontoAnlegen("Anna");
|
bs.kontoAnlegen("Anna", 1);
|
||||||
bs.kontoAnlegen("Paul");
|
bs.kontoAnlegen("Paul", 1);
|
||||||
|
|
||||||
String[] arr = bs.getKontenliste();
|
String[] arr = bs.getKontenliste();
|
||||||
|
|
||||||
assertEquals("Konto [nummer=1000, inhaber=Anna, stand=0]", arr[0]);
|
assertEquals("Konto [nummer=1001, inhaber=Anna, stand=0]", arr[0]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,14 +60,33 @@ class BanksystemTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void einzahlenTest() {
|
public void einzahlenTest() throws BankException {
|
||||||
bs = new Banksystem("Bank");
|
bs = new Banksystem("Bank");
|
||||||
bs.kontoAnlegen("Anna");
|
bs.kontoAnlegen("Anna", 1);
|
||||||
bs.einzahlenBanksystem(1005, 100);
|
bs.einzahlenBanksystem(1006, 100);
|
||||||
|
System.out.println("Test");
|
||||||
String[] arr = bs.getKontenliste();
|
String[] arr = bs.getKontenliste();
|
||||||
|
|
||||||
assertEquals("Konto [nummer=1005, inhaber=Anna, stand=100]", arr[0]);
|
assertEquals("Konto [nummer=1006, inhaber=Anna, stand=100]", arr[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void erstelleKontoauszugTest() throws BankException {
|
||||||
|
bs = new Banksystem("Bank");
|
||||||
|
|
||||||
|
bs.kontoAnlegen("Katrin", 1);
|
||||||
|
bs.einzahlenBanksystem(1000, 100);
|
||||||
|
String[] test = bs.erstelleKontoauszug(1000);
|
||||||
|
|
||||||
|
for (int i = 0; i < test.length; i++) {
|
||||||
|
System.out.println(test[i]);
|
||||||
|
}
|
||||||
|
assertEquals(1, test.length);
|
||||||
|
assertEquals("Kontobewegung [betrag=100, date=Sun", test[0].substring(0, 35));
|
||||||
|
assertTrue(test[0].contains("betrag=100"));
|
||||||
|
assertTrue(test[0].contains("betreff=Einzahlung"));
|
||||||
|
assertTrue(test[0].contains("art=Einzahlung"));
|
||||||
|
assertTrue(test[0].contains("auftraggeber=Katrin"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,11 +34,18 @@ public class UI {
|
||||||
System.out.println("8 -> Konten laden");
|
System.out.println("8 -> Konten laden");
|
||||||
System.out.println("9 -> Kontoauszug drucken");
|
System.out.println("9 -> Kontoauszug drucken");
|
||||||
System.out.println("10 -> Überweisung beauftragen");
|
System.out.println("10 -> Überweisung beauftragen");
|
||||||
|
System.out.println("11 -> Überweisung als Textdatei speichern");
|
||||||
System.out.println("99 -> Beenden");
|
System.out.println("99 -> Beenden");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
int input = Integer.parseInt(sc.nextLine());
|
int input = 0;
|
||||||
|
try {
|
||||||
|
input = Integer.parseInt(sc.nextLine());
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
System.err.print("Nur Zahlen eingeben:");
|
||||||
|
}
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
switch(input) {
|
switch(input) {
|
||||||
|
@ -52,6 +59,7 @@ public class UI {
|
||||||
case 8: bs.kontenLaden(); break;
|
case 8: bs.kontenLaden(); break;
|
||||||
case 9: kontoauszugDrucken(); break;
|
case 9: kontoauszugDrucken(); break;
|
||||||
case 10:überweisungBeauftragen(); break;
|
case 10:überweisungBeauftragen(); break;
|
||||||
|
case 11:kontoauszugSpeichernTxt(); break;
|
||||||
case 99: break mainloop;
|
case 99: break mainloop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,7 +95,7 @@ public class UI {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void kontoAnlegen() throws IOException {
|
private void kontoAnlegen() throws BankException {
|
||||||
System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
|
System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
|
||||||
String name = sc.nextLine();
|
String name = sc.nextLine();
|
||||||
|
|
||||||
|
@ -201,9 +209,16 @@ public class UI {
|
||||||
String verwendungszweck = sc.nextLine();
|
String verwendungszweck = sc.nextLine();
|
||||||
|
|
||||||
// boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long)(betrag * 100), verwendungszweck);
|
// boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long)(betrag * 100), verwendungszweck);
|
||||||
boolean erfolgreich = bs.überweisungBeauftragen(startkonto, zielkonto, (long)(betrag), verwendungszweck);
|
boolean erfolgreich = bs.überweisungBeauftragenBanksystem(startkonto, zielkonto, (long)(betrag), verwendungszweck);
|
||||||
|
|
||||||
System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt.");
|
System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void kontoauszugSpeichernTxt() throws IOException {
|
||||||
|
System.out.print("Bitte die Kontonummer eingeben die gespeichert werden soll: ");
|
||||||
|
int kNummer = Integer.parseInt(sc.nextLine());
|
||||||
|
|
||||||
|
PersistenzSerialisiert.schreibeDatei(bs.erstelleKontoauszug(kNummer));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
package persistence;
|
package persistence;
|
||||||
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.ObjectInputStream;
|
import java.io.ObjectInputStream;
|
||||||
import java.io.ObjectOutputStream;
|
import java.io.ObjectOutputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import de.hs_mannheim.informatik.bank.domain.Konto;
|
import de.hs_mannheim.informatik.bank.domain.Konto;
|
||||||
|
|
||||||
public class PersistenzSerialisiert {
|
public class PersistenzSerialisiert {
|
||||||
|
@ -34,4 +34,15 @@ public class PersistenzSerialisiert {
|
||||||
return liste;
|
return liste;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void schreibeDatei(String[] kontobewegung) throws IOException {
|
||||||
|
|
||||||
|
FileWriter writer = new FileWriter(new File("C:\\Users\\Lenovo\\Desktop\\Kontobewegung.txt"));
|
||||||
|
|
||||||
|
for (int i = 0; i < kontobewegung.length; i++) {
|
||||||
|
writer.write(kontobewegung[i] + "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue