diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java index f55174b..207a641 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java @@ -38,5 +38,8 @@ public class Bank implements Serializable { public Konto findeKonto(int kontonummer) { return konten.get(kontonummer); } + public long getSaldo(int Kontonummer) { + return konten.get(Kontonummer).getSaldo(); + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index 4a7ee10..2306005 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -1,15 +1,16 @@ + package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; public class Girokonto extends Konto implements Serializable { - + private int Dispo=500; public Girokonto(String inhaber, int kontozähler) { super(inhaber, kontozähler); } public boolean Überweise(Girokonto ziel, long betrag, String zweck) { - if (super.getKontostand() - betrag >= 0) { + if (this.getKontostand() - betrag >= -Dispo) { this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); @@ -24,4 +25,24 @@ public class Girokonto extends Konto implements Serializable { 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 (this.getKontostand() - betrag >= -Dispo) { + this.setStand(getKontostand()-betrag); + + addkontoBewegung(betrag*-1, zweck, art, auftraggeber); + + return true; + } + + return false; + } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java index 82b34a8..1b7aad1 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -7,6 +7,7 @@ public class Konto implements Serializable { private int nummer; private long stand = 0; private String inhaber; + private long Saldo=0; private ArrayList kontobewegungen; @@ -37,21 +38,24 @@ public class Konto implements Serializable { public void einzahlen(long betrag, String zweck, String art, String auftraggeber) { 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) { if (stand - betrag >= 0) { stand -= betrag; - kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); + addkontoBewegung(betrag * -1, zweck, art, auftraggeber); return true; } return false; } - + public void setStand(long Betrag) { + this.stand=Betrag; + } + public String[] getKontobewegungen() { String[] auflistung = new String[kontobewegungen.size()]; @@ -62,5 +66,31 @@ public class Konto implements Serializable { return auflistung; } - + public void addkontoBewegung(long Betrag,String Zweck,String Art, String Auftraggeber) { + kontobewegungen.add(new Kontobewegung(Betrag , Zweck, Art, Auftraggeber)); + } + public long getSaldo() { + if(kontobewegungen.size()>=10) { + 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=0) { + Saldo+=kontobewegungen.get(kontobewegungen.size()-i).getBetrag(); + System.out.println(kontobewegungen.size()); + } + else { + break; + } + } + return Saldo; + } + + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java index 07a1bc1..d965338 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java @@ -31,5 +31,38 @@ class KontoTest { assertFalse(k2.auszahlen(500, "Test", "Auszahlung", "JUnit")); assertEquals(50, k2.getKontostand()); } + @Test + void testGiroDespo(){ + Girokonto Gk1=new Girokonto("Marc",0); + Girokonto Gk2=new Girokonto("Marc",1); + + Gk1.einzahlen(5000, "Test", "vorOrt", "ich"); + Gk2.einzahlen(50000, "Test", "vorOrt", "ich"); + + 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")); + + } + @Test + void testSaldo() { + Girokonto Gk1=new Girokonto("Marc",0); + + //Gk1.einzahlen(50000, "Test", "vorOrt", "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(42500,Gk1.getKontostand()); + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java index d6b15dd..3a747e3 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java @@ -24,5 +24,7 @@ public class Kontobewegung implements Serializable { return "Kontobewegung [betrag=" + betrag + ", datum=" + datum + ", betreff=" + betreff + ", art=" + art + ", auftraggeber=" + auftraggeber + "]"; } - + public long getBetrag() { + return betrag; + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index f82c99a..2a09bf9 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -40,7 +40,7 @@ public class Banksystem { public String getBankname() { return bank.getName(); } - +//________________________________________________________________________________________________________------------ public long geldEinzahlen(int kontonummer, long betrag) throws Exception { Konto konto = bank.findeKonto(kontonummer); konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getInhaber()); @@ -57,7 +57,7 @@ public class Banksystem { return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); } - +//_______________________________________________________________________________________________________________ public String[] erstelleKontoauszug(int kontonummer) { Konto konto = bank.findeKonto(kontonummer); @@ -81,5 +81,8 @@ public class Banksystem { return konto.getKontostand(); } + public long getSaldo(int kontonummer) { + return bank.getSaldo(kontonummer); + } } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java index 0ce5674..5795f1b 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java @@ -1,19 +1,59 @@ 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.assertNotNull; +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.Test; class SystemTest { @Test void smokeTest() throws Exception { - Banksystem bs = new Banksystem("Testsystem"); + Banksystem bs = new Banksystem("Testbanksystem"); assertNotNull(bs); assertEquals(0, bs.getKontenliste().length); - assertEquals("Testsystem", bs.getBankname()); + assertEquals("Testbanksystem", bs.getBankname()); + } + @Test + void auszahlenTest() throws Exception { + Banksystem bs = new Banksystem("Testsystem"); + + int kn1=bs.kontoAnlegen("Marc", 1); + int kn2=bs.kontoAnlegen("Marc", 2); + int kn3=bs.kontoAnlegen("Marc", 1); + + assertEquals(1000,bs.geldEinzahlen(kn1, 1000)); + assertEquals(500,bs.geldEinzahlen(kn2, 500)); + assertEquals(0,bs.geldEinzahlen(kn3, 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(); + } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index 9262be4..ea68cd1 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -27,7 +27,7 @@ public class UI { System.out.println("4 -> Geld auszahlen"); System.out.println("5 -> Kontoauszug drucken"); System.out.println("6 -> Überweisung beauftragen"); - + System.out.println("7 -> Saldo Anschauen"); System.out.println("9 -> Beenden"); System.out.println(); @@ -38,13 +38,12 @@ public class UI { try { switch(input) { case 1: kontenAnzeigen(); break; - case 2: - kontoAnlegen(); - break; + case 2: kontoAnlegen();break; case 3: geldEinzahlen(); break; case 4: geldAuszahlen(); break; case 5: kontoauszugDrucken(); break; case 6: ÜberweisungBeauftragen(); break; + case 7: getSaldo();break; case 9: break mainloop; } @@ -145,5 +144,11 @@ public class UI { 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)); + + } }