Compare commits

..

14 Commits
main ... main

Author SHA1 Message Date
Marc Ziegler adf7075e5a Verbesserungen 2022-10-25 16:43:01 +02:00
Marc Ziegler dbe480be32 testat ende 2022-10-25 14:55:24 +02:00
Marc Ziegler 897ce510a2 Testataufgaben gemacht 2022-10-25 14:48:42 +02:00
Marc Ziegler a3b4c3a2e9 Alle Ü's und Ö's und andere erneuert 2022-10-24 14:57:03 +02:00
Marc Ziegler 1f148d72ef test 2022-10-24 14:45:48 +02:00
Marc Ziegler ceeac73da9 schönheitsänderungen 2022-10-24 12:13:02 +02:00
Marc Ziegler e0d91f6ca3 nothing big 2022-10-24 10:30:35 +02:00
Marc Ziegler 7b7b3b8d42 test von der Bank vervollständigt
geheimnisprinzip auf Girokonto und die Attribute rausgenommen
2022-10-24 10:27:26 +02:00
Marc Ziegler 383d627558 hinzufügen der Girokontoklasse und der Überweißen Methode 2022-10-20 14:28:51 +02:00
Marc Ziegler 301e12ade5 Speicher Funktion hinzugefügt. Sämtliche Sachen mit der speicherung
befinden sich in der Datenbank Klasse. Gespeichert wird die bank Klasse
2022-10-11 14:43:49 +02:00
Marc Ziegler 287496085d Eingabe und Ausgabe des Kontostandes erfolgen nun mit Fließkommazahlen 2022-10-11 12:14:26 +02:00
Marc Ziegler dc87d101c2 kleine Änderungen 2022-10-11 12:01:01 +02:00
Marc Ziegler 607be738f4 Methoden zum Überweißen und auszahlen hinzugefügt,
neu Klasse Kontoauszug welcher die Auszüge speichert, neue Klasse
Aktivität welche die einzelnen Aktivitäten darstellt welche dann in den
Kontoausszug gespeichert wird
2022-10-11 12:00:28 +02:00
Marc Ziegler 03d0126de4 Hinzufügen der Möglichkeit zum Geld einzahlen und dem ablesen des
kontostands.

erstellen von Junit test für die neu erstellten Methoden in der Konto
und Banksystem klasse
2022-10-10 12:44:37 +02:00
14 changed files with 195 additions and 212 deletions

1
.gitignore vendored
View File

@ -1 +0,0 @@
/.DS_Store

View File

@ -179,5 +179,3 @@ replay_pid*
# Built Visual Studio Code Extensions # Built Visual Studio Code Extensions
*.vsix *.vsix
*.ser
/.DS_Store

View File

@ -6,7 +6,7 @@ import de.hs_mannheim.informatik.bank.ui.UI;
public class Main { public class Main {
public static void main(String[] args) throws Exception { 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

@ -7,20 +7,20 @@ import java.util.HashMap;
public class Bank implements Serializable { public class Bank implements Serializable {
private String name; private String name;
private HashMap<Integer, Konto> konten = new HashMap<>(); private HashMap<Integer, Konto> konten = new HashMap<>();
private int kontozähler; private int kontozähler;
public Bank(String name) { public Bank(String name) {
this.name = name; this.name = name;
this.kontozähler = -1; this.kontozähler = -1;
} }
public int addKonto(String name, int auswahl) { public int addKonto(String name, int auswahl) {
Konto k; Konto k;
if (auswahl == 1) if (auswahl == 1)
k = new Konto(name, ++kontozähler); k = new Konto(name, ++kontozähler);
else else
k = new Girokonto(name, ++kontozähler); k = new Girokonto(name, ++kontozähler);
konten.put(k.getKontonummer(), k); konten.put(k.getKontonummer(), k);
@ -38,5 +38,8 @@ public class Bank implements Serializable {
public Konto findeKonto(int kontonummer) { public Konto findeKonto(int kontonummer) {
return konten.get(kontonummer); return konten.get(kontonummer);
} }
public long getSaldo(int Kontonummer) {
return konten.get(Kontonummer).getSaldo();
}
} }

View File

@ -1,31 +1,18 @@
package de.hs_mannheim.informatik.bank.domain; package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable; import java.io.Serializable;
public class Girokonto extends Konto implements Serializable { public class Girokonto extends Konto implements Serializable {
private long dispo = 100000; private int Dispo=500;
public Girokonto(String inhaber, int kontozähler) {
public Girokonto(String inhaber, int kontozähler) { super(inhaber, kontozähler);
super(inhaber, kontozähler);
} }
public boolean überweise(Girokonto ziel, long betrag, String zweck) { public boolean Überweise(Girokonto ziel, long betrag, String zweck) {
if (super.getKontostand() - betrag >= dispo * (-1)) { if (this.getKontostand() - betrag >= -Dispo) {
this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber());
ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber());
return true;
}
return false;
}
@Override
public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) {
if (stand - betrag >= dispo * (-1)) {
stand -= betrag;
kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber));
return true; return true;
} }
@ -38,4 +25,24 @@ public class Girokonto extends Konto implements Serializable {
return "Giro-" + super.toString(); return "Giro-" + super.toString();
} }
public int getDispo() {
return Dispo;
}
public void setDispo(int dispo) {
Dispo = dispo;
}
@Override
public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) {
if (super.stand - betrag >= -Dispo) {
super.stand-=betrag;
super.addkontoBewegung(betrag*-1, zweck, art, auftraggeber);
return true;
}
return false;
}
} }

View File

@ -1,27 +0,0 @@
package de.hs_mannheim.informatik.bank.domain;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
class GirokontoTest {
@Test
void testÜberziehung() {
Konto k = new Girokonto("Müller", 0);
k.einzahlen(10000, "Test", "Einzahlung", "JUnit");
assertTrue(k.auszahlen(20000, "Test", "Einzahlung", "JUnit"));
assertEquals(-10000, k.getKontostand());
assertTrue(k.auszahlen(40000, "Test", "Einzahlung", "JUnit"));
assertTrue(k.auszahlen(50000, "Test", "Einzahlung", "JUnit"));
assertEquals(-100000, k.getKontostand());
assertFalse(k.auszahlen(40000, "Test", "Einzahlung", "JUnit"));
assertFalse(k.auszahlen(1, "Test", "Einzahlung", "JUnit"));
}
}

View File

@ -7,11 +7,12 @@ public class Konto implements Serializable {
private int nummer; private int nummer;
protected long stand = 0; protected long stand = 0;
private String inhaber; private String inhaber;
private long Saldo=0;
protected ArrayList<Kontobewegung> kontobewegungen; private ArrayList<Kontobewegung> kontobewegungen;
public Konto(String inhaber, int kontozähler) { public Konto(String inhaber, int kontozähler) {
nummer = 1000 + kontozähler; nummer = 1000 + kontozähler;
this.inhaber = inhaber; this.inhaber = inhaber;
this.kontobewegungen = new ArrayList<>(); this.kontobewegungen = new ArrayList<>();
@ -37,20 +38,23 @@ public class Konto implements Serializable {
public void einzahlen(long betrag, String zweck, String art, String auftraggeber) { public void einzahlen(long betrag, String zweck, String art, String auftraggeber) {
stand += betrag; stand += betrag;
kontobewegungen.add(new Kontobewegung(betrag, zweck, art, auftraggeber)); addkontoBewegung(betrag, zweck, art, auftraggeber);
} }
public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) {
if (stand - betrag >= 0) { if (stand - betrag >= 0) {
stand -= betrag; stand -= betrag;
kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); addkontoBewegung(betrag * -1, zweck, art, auftraggeber);
return true; return true;
} }
return false; return false;
} }
public void setStand(long Betrag) {
this.stand=Betrag;
}
public String[] getKontobewegungen() { public String[] getKontobewegungen() {
String[] auflistung = new String[kontobewegungen.size()]; String[] auflistung = new String[kontobewegungen.size()];
@ -62,15 +66,31 @@ public class Konto implements Serializable {
return auflistung; return auflistung;
} }
public void addkontoBewegung(long Betrag,String Zweck,String Art, String Auftraggeber) {
public long berechneSaldo(int anzahl) { kontobewegungen.add(new Kontobewegung(Betrag , Zweck, Art, Auftraggeber));
long saldo = 0; }
public long getSaldo() {
for (int i = 0; i < anzahl; i++) { if(kontobewegungen.size()>=10) {
saldo += kontobewegungen.get(i).getBetrag() ; this.Saldo=0;
for(int i=1;i<11;i++) {
Saldo+=kontobewegungen.get(kontobewegungen.size()-i).getBetrag();
//System.out.println(i);
}
return Saldo;
}
else {
this.Saldo=0;
for(int i=1;i<kontobewegungen.size();i++) {
if(kontobewegungen.size()-i>=0) {
Saldo+=kontobewegungen.get(kontobewegungen.size()-i).getBetrag();
//System.out.println(kontobewegungen.size());
}
else {
break;
}
}
return Saldo;
} }
return saldo;
} }
} }

View File

@ -8,24 +8,17 @@ class KontoTest {
@Test @Test
void testKontoBasics() { void testKontoBasics() {
Konto k = new Konto("Müller", 0); Konto k = new Konto("Müller", 0);
assertEquals("Müller", k.getInhaber()); assertEquals("Müller", k.getInhaber());
assertEquals(1000, k.getKontonummer()); assertEquals(1000, k.getKontonummer());
assertEquals(0, k.getKontostand()); assertEquals(0, k.getKontostand());
} }
@Test @Test
void testKontoEinUndAuszahlungUndSaldo() { void testKontoEinUndAuszahlung() {
Konto k = new Konto("Müller", 0); Konto k = new Konto("Müller", 0);
Konto k2 = new Konto("Mayer", 1); Konto k2 = new Konto("Mayer", 1);
testKontoEinUndAuszahlungUndSaldo(k, k2);
k = new Girokonto("Müller", 0);
k2 = new Girokonto("Mayer", 1);
testKontoEinUndAuszahlungUndSaldo(k, k2);
}
private void testKontoEinUndAuszahlungUndSaldo(Konto k, Konto k2) {
assertEquals("Mayer", k2.getInhaber()); assertEquals("Mayer", k2.getInhaber());
assertNotEquals(k.getKontonummer(), k2.getKontonummer()); assertNotEquals(k.getKontonummer(), k2.getKontonummer());
@ -35,26 +28,42 @@ class KontoTest {
assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit")); assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit"));
assertEquals(50, k2.getKontostand()); assertEquals(50, k2.getKontostand());
assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit")); assertFalse(k2.auszahlen(500, "Test", "Auszahlung", "JUnit"));
assertEquals(0, k2.getKontostand()); assertEquals(50, k2.getKontostand());
}
@Test
void testGiroDespo(){
Girokonto Gk1=new Girokonto("Marc",0);
Girokonto Gk2=new Girokonto("Marc",1);
k2.einzahlen(100, "Test", "Einzahlung", "JUnit"); Gk1.einzahlen(5000, "Test", "vorOrt", "ich");
k2.einzahlen(100, "Test", "Einzahlung", "JUnit"); Gk2.einzahlen(50000, "Test", "vorOrt", "ich");
k2.einzahlen(1, "Test", "Einzahlung", "JUnit");
assertEquals(true,Gk1.auszahlen(5500, "none of youre buisness", "vor Ort", "Ich"));
assertEquals(true,Gk2.auszahlen(10000, "none of youre buisness", "vor Ort", "Ich"));
assertEquals(false,Gk1.Überweise(Gk2, 40500, "weil ich es kann"));
assertEquals(100, k2.berechneSaldo(1));
assertEquals(100, k2.berechneSaldo(4));
assertEquals(k2.getKontostand(), k2.berechneSaldo(6));
} }
@Test @Test
void testKeineÜberziehungFürSparkonten() { void testSaldo() {
Konto k = new Konto("Müller", 0); Girokonto Gk1=new Girokonto("Marc",0);
k.einzahlen(100, "Test", "Einzahlung", "JUnit");
assertFalse(k.auszahlen(500, "Test", "Auszahlung", "JUnit"));
k.auszahlen(50, "Test", "Auszahlung", "JUnit"); Gk1.einzahlen(50000, "Test", "vorOrt", "ich");
assertFalse(k.auszahlen(100, "Test", "Auszahlung", "JUnit")); Gk1.auszahlen(5500, "none of youre buisness", "vor Ort", "Ich");
Gk1.einzahlen(50000, "Test", "vorOrt", "ich");
Gk1.auszahlen(5500, "none of youre buisness", "vor Ort", "Ich");
Gk1.einzahlen(5000, "Test", "vorOrt", "ich");
Gk1.auszahlen(5500, "none of youre buisness", "vor Ort", "Ich");
Gk1.einzahlen(5000, "Test", "vorOrt", "ich");
Gk1.auszahlen(5500, "none of youre buisness", "vor Ort", "Ich");
Gk1.einzahlen(5000, "Test", "vorOrt", "ich");
Gk1.auszahlen(5500, "none of youre buisness", "vor Ort", "Ich");
Gk1.einzahlen(5000, "Test", "vorOrt", "ich");
Gk1.auszahlen(5500, "none of youre buisness", "vor Ort", "Ich");
assertEquals(42500,Gk1.getSaldo());
assertEquals(87000,Gk1.getKontostand());
} }
} }

View File

@ -19,14 +19,12 @@ public class Kontobewegung implements Serializable {
this.datum = new Date(); this.datum = new Date();
} }
public long getBetrag() {
return betrag;
}
@Override @Override
public String toString() { public String toString() {
return "Kontobewegung [betrag=" + betrag + ", datum=" + datum + ", betreff=" + betreff + ", art=" + art return "Kontobewegung [betrag=" + betrag + ", datum=" + datum + ", betreff=" + betreff + ", art=" + art
+ ", auftraggeber=" + auftraggeber + "]"; + ", auftraggeber=" + auftraggeber + "]";
} }
public long getBetrag() {
return betrag;
}
} }

View File

@ -40,7 +40,7 @@ public class Banksystem {
public String getBankname() { public String getBankname() {
return bank.getName(); return bank.getName();
} }
//________________________________________________________________________________________________________------------
public long geldEinzahlen(int kontonummer, long betrag) throws Exception { public long geldEinzahlen(int kontonummer, long betrag) throws Exception {
Konto konto = bank.findeKonto(kontonummer); Konto konto = bank.findeKonto(kontonummer);
konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getInhaber()); konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getInhaber());
@ -53,43 +53,36 @@ public class Banksystem {
public boolean geldAuszahlen(int kontonummer, long betrag) throws Exception { public boolean geldAuszahlen(int kontonummer, long betrag) throws Exception {
Konto konto = bank.findeKonto(kontonummer); Konto konto = bank.findeKonto(kontonummer);
boolean erg = konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber());
Persistenz.speichereBankDaten(this.bank, bank.getName()); Persistenz.speichereBankDaten(this.bank, bank.getName());
return erg; return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber());
} }
//_______________________________________________________________________________________________________________
public String[] erstelleKontoauszug(int kontonummer) { public String[] erstelleKontoauszug(int kontonummer) {
Konto konto = bank.findeKonto(kontonummer); Konto konto = bank.findeKonto(kontonummer);
return konto.getKontobewegungen(); return konto.getKontobewegungen();
} }
public boolean überweisungBeauftragen(int startkonto, int zielkonto, long betrag, String verwendungszweck) throws Exception { public boolean ÜberweisungBeauftragen(int startkonto, int zielkonto, long betrag, String verwendungszweck) {
Konto start = bank.findeKonto(startkonto); Konto start = bank.findeKonto(startkonto);
Konto ziel = bank.findeKonto(zielkonto); Konto ziel = bank.findeKonto(zielkonto);
if (start instanceof Girokonto && ziel instanceof Girokonto) { if (start instanceof Girokonto && ziel instanceof Girokonto) {
boolean erfolg = ((Girokonto)start).überweise((Girokonto)ziel, betrag, verwendungszweck); return ((Girokonto)start).Überweise((Girokonto)ziel, betrag, verwendungszweck);
Persistenz.speichereBankDaten(this.bank, bank.getName());
return erfolg;
} }
return false; return false;
} }
public long getKontostand(int kontonummer) { public long getKontostand(int kontonummer) {
Konto konto = bank.findeKonto(kontonummer); Konto konto = bank.findeKonto(kontonummer);
return konto.getKontostand(); return konto.getKontostand();
} }
public long getSaldo(int kontonummer) {
public long saldoBestimmen(int kontonummer, int anzahl) { return bank.getSaldo(kontonummer);
Konto konto = bank.findeKonto(kontonummer);
return konto.berechneSaldo(anzahl);
} }
} }

View File

@ -1,70 +1,59 @@
package de.hs_mannheim.informatik.bank.facade; package de.hs_mannheim.informatik.bank.facade;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File; import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.junit.After;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
@TestMethodOrder(OrderAnnotation.class)
class SystemTest { class SystemTest {
private static Banksystem bs;
@BeforeAll
static void initBanksystem() throws Exception {
bs = new Banksystem("Testsystem");
}
@Test @Test
@Order(1) void smokeTest() throws Exception {
void smokeTest() { Banksystem bs = new Banksystem("Testbanksystem");
assertNotNull(bs); assertNotNull(bs);
assertEquals(0, bs.getKontenliste().length); assertEquals(0, bs.getKontenliste().length);
assertEquals("Testsystem", bs.getBankname()); assertEquals("Testbanksystem", bs.getBankname());
}
}
@Test @Test
@Order(2) void auszahlenTest() throws Exception {
void einzahlenTest() throws Exception { Banksystem bs = new Banksystem("Testsystem");
int knr = bs.kontoAnlegen("Test1", 1);
assertEquals(1000, bs.geldEinzahlen(knr, 1000)); int kn1=bs.kontoAnlegen("Marc", 1);
int kn2=bs.kontoAnlegen("Marc", 2);
int kn3=bs.kontoAnlegen("Marc", 1);
bs.geldEinzahlen(knr, 1); assertEquals(1000,bs.geldEinzahlen(kn1, 1000));
assertEquals(1001, bs.getKontostand(knr)); assertEquals(500,bs.geldEinzahlen(kn2, 500));
assertEquals(0,bs.geldEinzahlen(kn3, 0));
assertEquals(1001, bs.geldEinzahlen(knr, 0)); assertEquals(true,bs.geldAuszahlen(kn1, 666));
assertEquals(true,bs.geldAuszahlen(kn2, 999));
assertEquals(false,bs.geldAuszahlen(kn3, 1000));
assertEquals(89501,bs.geldEinzahlen(kn2, 90000));
int kn4=bs.kontoAnlegen("Marc", 2);
assertEquals(true,bs.ÜberweisungBeauftragen(kn2, kn4, 50000, "Spielschulden"));
assertEquals(false,bs.ÜberweisungBeauftragen(kn1, kn2, 1000, "Test"));
assertEquals(false,bs.ÜberweisungBeauftragen(kn2, kn3, 1000, "Test"));
assertEquals(true,bs.ÜberweisungBeauftragen(kn4, kn2, 50500, "test"));
//File fp=new File("C:\\Users\\Marc Ziegler\\git\\Bank-System_2121847\\Bank-Beispiel\\Testsystem-bank-data.ser");
//File fp=new File("Testsystem-bank-data.ser");
File fp=new File("C:/Users/Marc Ziegler/git/Bank-System_2121847/Bank-Beispiel/Testsystem-bank-data.ser");
fp.delete();
} }
@Test
@Order(3)
void persistenzTest() throws Exception {
int knr = bs.kontoAnlegen("Test2", 2);
int knr2 = bs.kontoAnlegen("Test3", 2);
bs.geldEinzahlen(knr, 1000);
bs.geldAuszahlen(knr, 500);
assertTrue(bs.überweisungBeauftragen(knr, knr2, 100, "Überweisungstest."));
assertEquals(400, bs.getKontostand(knr));
bs = null;
Banksystem bs2 = new Banksystem("Testsystem");
assertEquals(400, bs2.getKontostand(knr));
}
@AfterAll
static void cleanup() {
File file = new File("/Users/oliver/git/Bank-System/Bank-Beispiel/Testsystem-bank-data.ser");
file.delete();
}
} }

View File

@ -10,25 +10,24 @@ public class UI {
public UI(Banksystem bs) { public UI(Banksystem bs) {
this.bs = bs; this.bs = bs;
hauptmenü(); hauptmenü();
} }
private void hauptmenü() { private void hauptmenü() {
System.out.println("Willkommen bei der " + bs.getBankname() + "!"); System.out.println("Willkommen bei der " + bs.getBankname() + "!");
mainloop: mainloop:
while (true) { while (true) {
System.out.println(); System.out.println();
System.out.println("--------"); System.out.println("--------");
System.out.println("Hauptmenü"); System.out.println("Hauptmenü");
System.out.println("1 -> Konten anzeigen"); System.out.println("1 -> Konten anzeigen");
System.out.println("2 -> Konto anlegen"); System.out.println("2 -> Konto anlegen");
System.out.println("3 -> Geld einzahlen"); System.out.println("3 -> Geld einzahlen");
System.out.println("4 -> Geld auszahlen"); System.out.println("4 -> Geld auszahlen");
System.out.println("5 -> Kontoauszug drucken"); System.out.println("5 -> Kontoauszug drucken");
System.out.println("6 -> Überweisung beauftragen"); System.out.println("6 -> Überweisung beauftragen");
System.out.println("7 -> Saldo abfragen"); System.out.println("7 -> Saldo Anschauen");
System.out.println("9 -> Beenden"); System.out.println("9 -> Beenden");
System.out.println(); System.out.println();
@ -39,14 +38,12 @@ public class UI {
try { try {
switch(input) { switch(input) {
case 1: kontenAnzeigen(); break; case 1: kontenAnzeigen(); break;
case 2: case 2: kontoAnlegen();break;
kontoAnlegen();
break;
case 3: geldEinzahlen(); break; case 3: geldEinzahlen(); break;
case 4: geldAuszahlen(); break; case 4: geldAuszahlen(); break;
case 5: kontoauszugDrucken(); break; case 5: kontoauszugDrucken(); break;
case 6: überweisungBeauftragen(); break; case 6: ÜberweisungBeauftragen(); break;
case 7: saldoAbfragen(); break; case 7: getSaldo();break;
case 9: break mainloop; case 9: break mainloop;
} }
@ -58,12 +55,12 @@ public class UI {
System.out.println("Auf Wiedersehen!"); System.out.println("Auf Wiedersehen!");
} // hauptmenü } // hauptmenü
private void kontenAnzeigen() { private void kontenAnzeigen() {
String[] konten = bs.getKontenliste(); String[] konten = bs.getKontenliste();
if (konten.length > 0) { if (konten.length > 0) {
System.out.println("Folgende Konten sind aktuell verfügbar:"); System.out.println("Folgende Konten sind aktuell verfügbar:");
for (String s : konten) { for (String s : konten) {
System.out.println(s); System.out.println(s);
} }
@ -76,7 +73,7 @@ public class UI {
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();
System.out.println("Möchten Sie ein Sparkonto (1) oder ein Girokonto (2) anlegen?"); System.out.println("Möchten Sie ein Sparkonto (1) oder ein Girokonto (2) anlegen?");
int auswahl = Integer.parseInt(sc.nextLine()); int auswahl = Integer.parseInt(sc.nextLine());
int kontonummer = bs.kontoAnlegen(name, auswahl); int kontonummer = bs.kontoAnlegen(name, auswahl);
@ -85,12 +82,12 @@ public class UI {
private void geldEinzahlen() throws Exception { private void geldEinzahlen() throws Exception {
System.out.println("Geld einzahlen"); System.out.println("Geld einzahlen");
System.out.print("Bitte die gewünschte Kontonummer eingeben: "); System.out.print("Bitte die gewünschte Kontonummer eingeben: ");
int kontonummer = Integer.parseInt(sc.nextLine()); int kontonummer = Integer.parseInt(sc.nextLine());
// optional prüfen, ob Konto existiert // optional prüfen, ob Konto existiert
System.out.print("Bitte den gewünschten Betrag eingeben: "); System.out.print("Bitte den gewünschten Betrag eingeben: ");
double betrag = Double.parseDouble(sc.nextLine()); double betrag = Double.parseDouble(sc.nextLine());
long neuerKontostand = bs.geldEinzahlen(kontonummer, (long)betrag * 100); long neuerKontostand = bs.geldEinzahlen(kontonummer, (long)betrag * 100);
@ -100,10 +97,10 @@ public class UI {
private void geldAuszahlen() throws Exception { private void geldAuszahlen() throws Exception {
System.out.println("Geld auszahlen"); System.out.println("Geld auszahlen");
System.out.print("Bitte die gewünschte Kontonummer eingeben: "); System.out.print("Bitte die gewünschte Kontonummer eingeben: ");
int kontonummer = Integer.parseInt(sc.nextLine()); int kontonummer = Integer.parseInt(sc.nextLine());
System.out.print("Bitte den gewünschten Betrag eingeben: "); System.out.print("Bitte den gewünschten Betrag eingeben: ");
double betrag = Double.parseDouble(sc.nextLine()); double betrag = Double.parseDouble(sc.nextLine());
boolean erfolgreich = bs.geldAuszahlen(kontonummer, (long)betrag * 100); boolean erfolgreich = bs.geldAuszahlen(kontonummer, (long)betrag * 100);
@ -113,11 +110,13 @@ public class UI {
} }
private void kontoauszugDrucken() { private void kontoauszugDrucken() {
System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: "); System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: ");
int kontonummer = Integer.parseInt(sc.nextLine()); int kontonummer = Integer.parseInt(sc.nextLine());
System.out.println();
// in echt auf einem Drucker // in echt auf einem Drucker
System.out.println("Auszug für Konto " + kontonummer); System.out.println("Auszug für Konto " + kontonummer);
String[] kontobewegungen = bs.erstelleKontoauszug(kontonummer); String[] kontobewegungen = bs.erstelleKontoauszug(kontonummer);
if (kontobewegungen.length > 0) if (kontobewegungen.length > 0)
@ -128,33 +127,28 @@ public class UI {
System.out.println("Noch keine Kontobewegungen."); System.out.println("Noch keine Kontobewegungen.");
} }
private void überweisungBeauftragen() throws Exception { private void ÜberweisungBeauftragen() {
System.out.print("Bitte die Kontonummer des Ausgangskontos der Überweisung eingeben: "); System.out.print("Bitte die Kontonummer des Ausgangskontos der Überweisung eingeben: ");
int startkonto = Integer.parseInt(sc.nextLine()); int startkonto = Integer.parseInt(sc.nextLine());
System.out.print("Bitte die Kontonummmer für das Zielkonto der Überweisung eingeben: "); System.out.print("Bitte die Kontonummmer für das Zielkonto der Ãœberweisung eingeben: ");
int zielkonto = Integer.parseInt(sc.nextLine()); int zielkonto = Integer.parseInt(sc.nextLine());
System.out.print("Bitte den gewünschten Überweisungsbetrag eingeben: "); System.out.print("Bitte den gewünschten Ãœberweisungsbetrag eingeben: ");
double betrag = Double.parseDouble(sc.nextLine()); double betrag = Double.parseDouble(sc.nextLine());
System.out.print("Bitte den Verwendungszweck eingeben: "); System.out.print("Bitte den Verwendungszweck eingeben: ");
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);
System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); System.out.println("Überweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt.");
} }
public void getSaldo() {
System.out.println("Bitte geben Sie ihre kontonummer an");
int Kontonummer = sc.nextInt();
System.out.println("ihr Saldo bei ihren letzten 10 Tätigkeiten beträgt: "+bs.getSaldo(Kontonummer));
private void saldoAbfragen() {
System.out.print("Bitte die Kontonummer des gewünschten Kontos eingeben: ");
int konto = Integer.parseInt(sc.nextLine());
System.out.print("Bitte die Anzahl der Kontobewegungen für den Saldo eingeben: ");
int anzahl = Integer.parseInt(sc.nextLine());
long saldo = bs.saldoBestimmen(konto, anzahl);
System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo/100d));
} }
} }