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);
|
||||
}
|
||||
|
||||
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) {
|
||||
this.auszahlenKonto(betrag, zweck, "Überweisungsausgang", super.getInhaber());
|
||||
ziel.einzahlenKonto(betrag, zweck, "Überweisungseingang", super.getInhaber());
|
||||
|
|
|
@ -17,13 +17,15 @@ public class Banksystem {
|
|||
this.bank = new Bank(bankname);
|
||||
}
|
||||
|
||||
public int kontoAnlegen(String name, int auswahl) {
|
||||
public int kontoAnlegen(String name, int auswahl) throws BankException {
|
||||
Konto k;
|
||||
|
||||
if (auswahl == 1) {
|
||||
k = new Konto(name);
|
||||
} else {
|
||||
} else if(auswahl == 2){
|
||||
k = new Girokonto(name);
|
||||
} else {
|
||||
throw new BankException("Konto nicht angelegt");
|
||||
}
|
||||
|
||||
bank.addKonto(k);
|
||||
|
@ -54,6 +56,8 @@ public class Banksystem {
|
|||
}
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
|
@ -99,12 +103,12 @@ public class Banksystem {
|
|||
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 ziel = getKontoBanksystem(zielkonto);
|
||||
|
||||
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;
|
||||
|
|
|
@ -6,6 +6,7 @@ import org.junit.Before;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import de.hs_mannheim.informatik.bank.domain.Konto;
|
||||
import exception.BankException;
|
||||
|
||||
class BanksystemTest {
|
||||
|
||||
|
@ -23,24 +24,31 @@ class BanksystemTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void kontoAnlegenTest() {
|
||||
public void kontoAnlegenTest() throws BankException {
|
||||
bs = new Banksystem("Bank");
|
||||
|
||||
|
||||
assertEquals(1002, bs.kontoAnlegen("Anna"));
|
||||
assertNotEquals(1000, bs.kontoAnlegen("Paul"));
|
||||
assertEquals(1004, bs.kontoAnlegen("Max"));
|
||||
assertEquals(1003, bs.kontoAnlegen("Anna", 1));
|
||||
assertNotEquals(1000, bs.kontoAnlegen("Paul", 1));
|
||||
assertEquals(1005, bs.kontoAnlegen("Max", 1));
|
||||
}
|
||||
|
||||
// @Test (expected = RuntimeException.class)
|
||||
// public void kontoAnlegenTest2() {
|
||||
// bs = new Banksystem("Bank");
|
||||
//
|
||||
// bs.kontoAnlegen("Anna", 3);
|
||||
// }
|
||||
|
||||
@Test
|
||||
public void getKontenlisteTest() {
|
||||
public void getKontenlisteTest() throws BankException {
|
||||
bs = new Banksystem("Bank");
|
||||
bs.kontoAnlegen("Anna");
|
||||
bs.kontoAnlegen("Paul");
|
||||
bs.kontoAnlegen("Anna", 1);
|
||||
bs.kontoAnlegen("Paul", 1);
|
||||
|
||||
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
|
||||
public void einzahlenTest() {
|
||||
public void einzahlenTest() throws BankException {
|
||||
bs = new Banksystem("Bank");
|
||||
bs.kontoAnlegen("Anna");
|
||||
bs.einzahlenBanksystem(1005, 100);
|
||||
|
||||
bs.kontoAnlegen("Anna", 1);
|
||||
bs.einzahlenBanksystem(1006, 100);
|
||||
System.out.println("Test");
|
||||
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("9 -> Kontoauszug drucken");
|
||||
System.out.println("10 -> Überweisung beauftragen");
|
||||
System.out.println("11 -> Überweisung als Textdatei speichern");
|
||||
System.out.println("99 -> Beenden");
|
||||
System.out.println();
|
||||
|
||||
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();
|
||||
|
||||
switch(input) {
|
||||
|
@ -52,6 +59,7 @@ public class UI {
|
|||
case 8: bs.kontenLaden(); break;
|
||||
case 9: kontoauszugDrucken(); break;
|
||||
case 10:überweisungBeauftragen(); break;
|
||||
case 11:kontoauszugSpeichernTxt(); break;
|
||||
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: ");
|
||||
String name = sc.nextLine();
|
||||
|
||||
|
@ -201,9 +209,16 @@ public class UI {
|
|||
String verwendungszweck = sc.nextLine();
|
||||
|
||||
// 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.");
|
||||
}
|
||||
|
||||
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;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.hs_mannheim.informatik.bank.domain.Konto;
|
||||
|
||||
public class PersistenzSerialisiert {
|
||||
|
@ -34,4 +34,15 @@ public class PersistenzSerialisiert {
|
|||
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