diff --git a/Bank-Beispiel/src/New FC.fcp b/Bank-Beispiel/src/New FC.fcp
index 2673356..403409a 100644
--- a/Bank-Beispiel/src/New FC.fcp
+++ b/Bank-Beispiel/src/New FC.fcp
@@ -921,7 +921,7 @@
- 810c924b577246088ff7a60dda51425b
+ 0a3c5d25617741b49364bce3f0477dba
5d0581b78aed4ee8b0bf6527c2681a23
4e970de88c214cf0b3635042b9e226fb
@@ -988,7 +988,7 @@
1
- c56a5392fdcb4cb99bde4b0b7aca7069
+ d20223511e3946608b3e194faf04afdc
4e970de88c214cf0b3635042b9e226fb
1c6ab24e7855452dbfd83e71bee81fdf
@@ -1055,7 +1055,7 @@
1
- a5e37ca5b6574a1ba47d13b50483c249
+ 7f19a4c81d424603bb6ffebd4ded84b8
1c6ab24e7855452dbfd83e71bee81fdf
a32ed2170b0d45968a4723b3a4f7e540
@@ -1122,7 +1122,7 @@
1
- 7a5dc86d6db2441cad85c4f6836ea3ff
+ 96fed068f6864da9b7d5f5efa7671109
607ea9ee4a994d45bafe757014698907
b49af04e608549c89ac919c9d3e57c01
@@ -1189,7 +1189,7 @@
1
- edf473f522ab4420b4518d563f340bbf
+ 74108319092343229dde6ae748303cea
a838e00032384ba2ab7988a1b0c7240e
6ef27b03d235471db3d6ff4e8d96a5f2
Daten der aktion
@@ -1256,7 +1256,7 @@
1
- e576b55981274419bf009ad25e69cbb1
+ 1c87411297f44403b5374fe7d2264b2f
6ef27b03d235471db3d6ff4e8d96a5f2
37eedc119a2c4e998b2254b25f4e7f87
Abheben
@@ -1323,7 +1323,7 @@
1
- 80fab382ef394d209427522726f56358
+ 1fcdc0d0e08244338a11ae5d57be124e
6ef27b03d235471db3d6ff4e8d96a5f2
37eedc119a2c4e998b2254b25f4e7f87
Überweißung/einzug
@@ -1390,7 +1390,7 @@
1
- 89c35f7ec6da4cb2ab3aa0a140072ad2
+ 3a1636a08d2d490b994c871997b5f8d2
37eedc119a2c4e998b2254b25f4e7f87
607ea9ee4a994d45bafe757014698907
@@ -1457,7 +1457,7 @@
1
- 0453fd09b0fe487f9cf3269c33fe18b7
+ 5f7f0240d3ce4fce8be8c96fa29e45c7
b49af04e608549c89ac919c9d3e57c01
1c6ab24e7855452dbfd83e71bee81fdf
@@ -1524,7 +1524,7 @@
1
- e75c504c385444ba85fb92fb362bdef3
+ be56c327a428475d8ec0f08fe3762004
a32ed2170b0d45968a4723b3a4f7e540
a838e00032384ba2ab7988a1b0c7240e
neue Aktivität festhalten
@@ -1591,7 +1591,7 @@
1
- 5b71a30b2b364ae7a464e252824f58f2
+ 7c260adc1f304aebadd3f3d8b384f5e7
a32ed2170b0d45968a4723b3a4f7e540
8e72f22161d94eeea283c0df0c41e557
Kontoauszugdrucken
@@ -1658,7 +1658,7 @@
1
- b57dcdd387e84c869c1675485086ab9d
+ 77e1677a2813444a8af0d88937495525
ffe8f01d912b4433830bce278888e1ee
4fb53b4ee2304dc595ee36f22f68e83f
@@ -1725,7 +1725,7 @@
1
- 5ee5579d6b784c4ca65effaf481c812b
+ f562f66f576141e6b0777bd7e1772993
4fb53b4ee2304dc595ee36f22f68e83f
610af0ac1b64468eb7db7c08b4503a4d
@@ -1788,7 +1788,7 @@
1
- 4af87af85f6a49f18470d308b24f2ec0
+ 3c5fc781aa6a4985998521d1cbe138c2
8e72f22161d94eeea283c0df0c41e557
d9ae231714074ef49b2560269b4e7405
keine neuen Einträge
@@ -1855,7 +1855,7 @@
1
- 7b14420f07884668ababa8d2a79f6f5c
+ 1b566d0dac84453aa0130fbc84ae8e65
8e72f22161d94eeea283c0df0c41e557
ffe8f01d912b4433830bce278888e1ee
neue Einträge
@@ -1922,7 +1922,7 @@
1
- 79722d87c9ea4d79a58ceeaac9168f6f
+ 4b1046a6d0f64325b20d3bdd67227aed
d9ae231714074ef49b2560269b4e7405
610af0ac1b64468eb7db7c08b4503a4d
@@ -1989,7 +1989,7 @@
1
- 9e30629330e948838c8768991174bfe7
+ 694b03e66529458eaaf6132cdd369a8d
610af0ac1b64468eb7db7c08b4503a4d
1c6ab24e7855452dbfd83e71bee81fdf
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 4a3c732..454feba 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
@@ -7,11 +7,12 @@ import java.io.Serializable;
public class Bank implements Serializable{
private String name;
private HashMap konten = new HashMap<>();
+ private HashMap Girokonten = new HashMap<>();
public Bank(String name) {
this.name = name;
}
-
+ // instanceof Girokonto zum überprüfen der klassen zugehörigkeit
public void addKonto(Konto k) {
konten.put(k.getKontonummer(), k);
}
@@ -24,28 +25,36 @@ public class Bank implements Serializable{
return konten.values();
}
- public long getKontostand(int Kontonummer) {
- return konten.get(Kontonummer).getStand();
-
+ public long getKontostand(int Kontonummer) {
+ return konten.get(Kontonummer).getStand();
}
- public long GeldEinzahlen(int Kontonummer,double Betrag) {
- return konten.get(Kontonummer).Einzahlen(Betrag);
+
+ public long GeldEinzahlen(int Kontonummer,double Betrag) {
+ return konten.get(Kontonummer).Einzahlen(Betrag);
}
public long Überweißen(int Kontonummer,double Betrag) {
- return konten.get(Kontonummer).neueÜberweisung(Betrag, Kontonummer);
+ return Girokonten.get(Kontonummer).neueÜberweisung(Betrag, Kontonummer);
}
- public void kontoAuszugerstellen(int Kontonummer) {
- konten.get(Kontonummer).kontoAuszugerstellen();
+
+ public void kontoAuszugerstellen(int Kontonummer) {
+ konten.get(Kontonummer).kontoAuszugerstellen();
}
- public void kontoÜberweisen(int Empfänger,int inhaber, double Menge) {
- if(konten.get(inhaber).neueÜberweisung(Menge, Empfänger)>=0)
- konten.get(Empfänger).Einzahlen(Menge);
+
+ public long kontoÜberweisen(int Empfänger,int inhaber, double Menge) {
+
+ if(konten.get(inhaber) instanceof Girokonto) {
+ if(((Girokonto) konten.get(inhaber)).neueÜberweisung(Menge, Empfänger)>=0)
+ konten.get(Empfänger).Einzahlen(Menge);
+ return konten.get(inhaber).getStand();
+ }
+ return -1;
}
public long abheben(int kontonummer,double Menge) {
- return konten.get(kontonummer).abbuchen(Menge);
+ return konten.get(kontonummer).abbuchen(Menge);
}
+
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java
index 8604db0..ebb35d0 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java
@@ -13,13 +13,12 @@ import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class Datenbank {
File fp=new File("object.ser");
- ObjectOutputStream file;
public void Speichern(Bank bank) throws Exception{
- file=new ObjectOutputStream(new FileOutputStream(fp));
- file.writeObject(bank);
+ ObjectOutputStream file=new ObjectOutputStream(new FileOutputStream(fp));
+ file.writeObject(bank);
}
public Bank Laden() throws Exception{
@@ -30,22 +29,4 @@ public class Datenbank {
}
return null;
}
-// public boolean fileExcists() {
-// if(!fl.exists()) {
-// try {
-// boolean wurdeerstellt=fl.createNewFile();
-// if(wurdeerstellt) {
-// return true;
-// }
-// else {
-// return false;
-// }
-// }catch(IOException ex) {
-// ex.printStackTrace();
-// return false;
-// }
-//
-// }
-// return true;
-// }
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GiroKontenTests.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GiroKontenTests.java
new file mode 100644
index 0000000..5ca5f35
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/GiroKontenTests.java
@@ -0,0 +1,71 @@
+package de.hs_mannheim.informatik.bank.domain;
+
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class GiroKontenTests {
+ Bank bank;
+ Girokonto GK1=new Girokonto("Marc");
+ Girokonto GK2=new Girokonto("Marc");
+ Girokonto GK3=new Girokonto("Marc");
+ int a=GK1.getKontonummer();
+ int b =GK2.getKontonummer();
+ int c=GK3.getKontonummer();
+
+ Konto k1=new Konto("Marc");
+ Konto k2=new Konto("Marc");
+ Konto k3=new Konto("Marc");
+ int e=k1.getKontonummer();
+ int f=k2.getKontonummer();
+ int g=k3.getKontonummer();
+ @Before
+ public void Setup() {
+ bank=new Bank("Bank");
+ bank.addKonto(GK1);
+ bank.addKonto(GK2);
+ bank.addKonto(GK3);
+ bank.addKonto(k3);
+ bank.addKonto(k2);
+ bank.addKonto(k1);
+ }
+ @Test
+ public void Konto() {
+
+ assertEquals(bank.GeldEinzahlen(e, 654),654L);
+ assertEquals(bank.GeldEinzahlen(f, 654),654L);
+ assertEquals(bank.GeldEinzahlen(g, 654),654L);
+
+ }
+ @Test
+ public void Giro() {
+
+
+ assertEquals(bank.GeldEinzahlen(a, 654),654);
+ assertEquals(bank.GeldEinzahlen(b, 654),654);
+ assertEquals(bank.GeldEinzahlen(c, 654),654);
+ }
+
+ @Test
+ public void abhebenTest() {
+
+ bank.GeldEinzahlen(a, 22);
+ bank.GeldEinzahlen(c, 4444);
+ bank.GeldEinzahlen(e, 6666);
+ assertEquals(bank.abheben(a, 1111),22);
+ assertEquals(bank.abheben(c, 2222),2222);
+ assertEquals(bank.abheben(e, 3333),3333);
+ }
+ @Test
+ public void überweißenTesten() {
+ bank.GeldEinzahlen(a, 3333);
+ bank.GeldEinzahlen(c, 4444);
+ bank.GeldEinzahlen(e, 6666);
+
+ assertEquals(bank.kontoÜberweisen(a,b,3333 ),bank.getKontostand(a));
+ assertEquals(bank.kontoÜberweisen(c,e,3333 ),bank.getKontostand(c));
+ assertEquals(bank.kontoÜberweisen(c,e,3333 ),-1);
+ assertEquals(bank.kontoÜberweisen(f,g,3333 ),bank.getKontostand(f));
+ }
+}
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
new file mode 100644
index 0000000..f8bcd7c
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java
@@ -0,0 +1,22 @@
+package de.hs_mannheim.informatik.bank.domain;
+
+import java.io.Serializable;
+
+public class Girokonto extends Konto implements Serializable {
+ private int nummer;
+ private long stand = 0;
+ private String inhaber;
+ private Kontoauszug KA=new Kontoauszug();
+
+ public Girokonto(String inhaber) {
+ super(inhaber);
+ }
+ public long neueÜberweisung(double Menge,int Empfänger) {
+ if(Menge<=stand) {
+ KA.Hinzufügen(Menge, Empfänger);
+ return stand;
+ }
+ System.out.println("Nicht genug Geld vorhanden");
+ return -1;
+ }
+}
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 dbbb34b..88bc6d0 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
@@ -34,14 +34,7 @@ public class Konto implements Serializable{
public long getStand() {
return this.stand;
}
- public long neueÜberweisung(double Menge,int Empfänger) {
- if(Menge<=stand) {
- KA.Hinzufügen(Menge, Empfänger);
- return stand;
- }
- System.out.println("Nicht genug Geld vorhanden");
- return -1;
- }
+
public void kontoAuszugerstellen() {
KA.Auszug();
}
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 a688bf0..f317876 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
@@ -4,6 +4,7 @@ import java.util.Collection;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Datenbank;
+import de.hs_mannheim.informatik.bank.domain.Girokonto;
import de.hs_mannheim.informatik.bank.domain.Konto;
public class Banksystem {
@@ -14,22 +15,30 @@ public class Banksystem {
this.bank = new Bank(bankname);
}
- public int kontoAnlegen(String name) {
- Konto k = new Konto(name);
- bank.addKonto(k);
-
- return k.getKontonummer();
+ public int kontoAnlegen(String name,boolean Giro) {
+ if(Giro) {
+ Girokonto gk = new Girokonto(name);
+ bank.addKonto(gk);
+ return gk.getKontonummer();
+ }
+ else {
+ Konto k = new Konto(name);
+ bank.addKonto(k);
+ return k.getKontonummer();
+ }
+
}
+
public String[] getKontenliste() {
Collection konten = bank.getKontenliste();
+
String[] liste = new String[konten.size()];
int i = 0;
for (Konto k : konten) {
liste[i++] = k.toString();
}
-
return liste;
}
@@ -42,6 +51,7 @@ public class Banksystem {
public long getKontostand(int Kontonummer) {
return bank.getKontostand(Kontonummer);
}
+
public void kontoAuszugerstellen(int Kontonummer) {
bank.kontoAuszugerstellen(Kontonummer);
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java
index c978bfb..4548a8f 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java
@@ -11,15 +11,15 @@ public class BanksystemTest {
@Test
public void Testcase1() {
Banksystem bs=new Banksystem("Testbank");
- int kontonummer=bs.kontoAnlegen("Marc");
+ int kontonummer=bs.kontoAnlegen("Marc",false);
System.out.println(kontonummer);
Assert.assertEquals("erster Testcase einzahlen des mindestWerts",bs.Einzahlen(kontonummer, 1L),1L);
}
@Test
public void Testcase2() {
Banksystem bs=new Banksystem("Testbank");
- bs.kontoAnlegen("Marc");
- int kontonummer=bs.kontoAnlegen("Marc1");
+ bs.kontoAnlegen("Marc",false);
+ int kontonummer=bs.kontoAnlegen("Marc1",true);
System.out.println(kontonummer);
Assert.assertEquals("höchst Wert",bs.Einzahlen(kontonummer, 9999999999999999L),9999999999999999L);
}
@@ -27,9 +27,9 @@ public class BanksystemTest {
@Test
public void Testcase3() {
Banksystem bs=new Banksystem("Testbank");
- bs.kontoAnlegen("Marc");
- bs.kontoAnlegen("Marc1");
- int kontonummer = bs.kontoAnlegen("Marc2");
+ bs.kontoAnlegen("Marc",false);
+ bs.kontoAnlegen("Marc1",true);
+ int kontonummer = bs.kontoAnlegen("Marc2",false);
System.out.println(kontonummer);
Assert.assertEquals("Test zum nichtbeachten Zahlen kleiner 0",bs.Einzahlen(kontonummer, -1L),0L);
}
@@ -37,50 +37,50 @@ public class BanksystemTest {
@Test
public void Testcase4() {
Banksystem bs=new Banksystem("Testbank");
- bs.kontoAnlegen("Marc");
- bs.kontoAnlegen("Marc1");
- bs.kontoAnlegen("Marc2");
- bs.kontoAnlegen("Marc3");
- bs.kontoAnlegen("Marc4");
+ bs.kontoAnlegen("Marc",true);
+ bs.kontoAnlegen("Marc1",false);
+ bs.kontoAnlegen("Marc2",true);
+ bs.kontoAnlegen("Marc3",false);
+ bs.kontoAnlegen("Marc4",true);
- bs.kontoAnlegen("Marc5");
- bs.kontoAnlegen("Marc6");
- bs.kontoAnlegen("Marc7");
- bs.kontoAnlegen("Marc8");
- int kontonummer=bs.kontoAnlegen("Marc9");
+ bs.kontoAnlegen("Marc5",false);
+ bs.kontoAnlegen("Marc6",true);
+ bs.kontoAnlegen("Marc7",false);
+ bs.kontoAnlegen("Marc8",true);
+ int kontonummer=bs.kontoAnlegen("Marc9",false);
System.out.println(kontonummer);
Assert.assertEquals("Höchstwert der Kontonummer testen",bs.Einzahlen(kontonummer, 1L),1L);
}
@Test(expected = NullPointerException.class)
public void Testcase5() {
Banksystem bs=new Banksystem("Testbank");
- bs.kontoAnlegen("Marc");
- bs.kontoAnlegen("Marc1");
- bs.kontoAnlegen("Marc2");
- bs.kontoAnlegen("Marc3");
- bs.kontoAnlegen("Marc4");
+ bs.kontoAnlegen("Marc",false);
+ bs.kontoAnlegen("Marc1",true);
+ bs.kontoAnlegen("Marc2",false);
+ bs.kontoAnlegen("Marc3",true);
+ bs.kontoAnlegen("Marc4",false);
- bs.kontoAnlegen("Marc5");
- bs.kontoAnlegen("Marc6");
- bs.kontoAnlegen("Marc7");
- bs.kontoAnlegen("Marc8");
- bs.kontoAnlegen("Marc9");
+ bs.kontoAnlegen("Marc5",true);
+ bs.kontoAnlegen("Marc6",false);
+ bs.kontoAnlegen("Marc7",true);
+ bs.kontoAnlegen("Marc8",false);
+ bs.kontoAnlegen("Marc9",true);
Assert.assertEquals("Fehlermeldung bei zukleiner Kontonummer",bs.Einzahlen(999, 1L),1L);
}
@Test(expected = NullPointerException.class)
public void Testcase6() {
Banksystem bs=new Banksystem("Testbank");
- bs.kontoAnlegen("Marc");
- bs.kontoAnlegen("Marc1");
- bs.kontoAnlegen("Marc2");
- bs.kontoAnlegen("Marc3");
- bs.kontoAnlegen("Marc4");
+ bs.kontoAnlegen("Marc",true);
+ bs.kontoAnlegen("Marc1",true);
+ bs.kontoAnlegen("Marc2",true);
+ bs.kontoAnlegen("Marc3",true);
+ bs.kontoAnlegen("Marc4",true);
- bs.kontoAnlegen("Marc5");
- bs.kontoAnlegen("Marc6");
- bs.kontoAnlegen("Marc7");
- bs.kontoAnlegen("Marc8");
- bs.kontoAnlegen("Marc9");
+ bs.kontoAnlegen("Marc5",false);
+ bs.kontoAnlegen("Marc6",false);
+ bs.kontoAnlegen("Marc7",false);
+ bs.kontoAnlegen("Marc8",false);
+ bs.kontoAnlegen("Marc9",false);
Assert.assertEquals("Fehlermeldung bei zu großer Kontonummer",bs.Einzahlen(1100, 1L),1L);
}
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 3640611..33a6d7e 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
@@ -2,6 +2,7 @@ package de.hs_mannheim.informatik.bank.ui;
import java.util.Scanner;
+import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
public class UI {
@@ -67,14 +68,19 @@ public class UI {
}
private void kontoAnlegen() {
- System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
- String name = sc.nextLine();
+ System.out.println("Soll das Konto ein Girokonto sein? Es macht das Überweißen zwischen Konten möglich: j/n");
+ String eingabe=sc.nextLine();
+ boolean Giro=eingabe.equals("j")||eingabe.equals("ja")||eingabe.equals("Ja")||eingabe.equals("J");
+ System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
+ String name = sc.nextLine();
- int kontonummer = bs.kontoAnlegen(name);
- System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt.");
- sc.nextLine();
+ int kontonummer = bs.kontoAnlegen(name,Giro);
+ System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt.");
+ sc.nextLine();
}
public void kontoEinzahlen() {
+
+
System.out.println("Kontonummer: ");
int Kontonummer=Integer.parseInt(sc.nextLine());
double Betrag=richtigerBetrag();
@@ -126,7 +132,7 @@ public class UI {
double Betrag=richtigerBetrag();
- if(existiertKonto(KontonummerE)&&Betrag!=0&&existiertKonto(KontonummerA)) {
+ if(existiertKonto(KontonummerA)&&Betrag!=0&&existiertKonto(KontonummerE)) {
bs.Überweisung(KontonummerE, KontonummerA, Betrag);
}
sc.nextLine();
@@ -150,8 +156,7 @@ public class UI {
try {
bs.getKontostand(Kontonummer);
return true;
- }
- catch(Exception NullPointerException) {
+ }catch(Exception NullPointerException){
System.out.println("Konto mit der Nummer: "+Kontonummer+" existiert nicht");
return false;
}