Kontobewegungen als Textdokument abspeicherbar

main
Peter Gapon 2022-10-24 21:22:09 +02:00
parent e39c9bd8ae
commit 626a1cefcc
6 changed files with 80 additions and 23 deletions

Binary file not shown.

View File

@ -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());

View File

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

View File

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

View File

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

View File

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