diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath
index 57bca72..c3c23c3 100644
--- a/Bank-Beispiel/.classpath
+++ b/Bank-Beispiel/.classpath
@@ -1,10 +1,11 @@
-
+
+
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTest.java
new file mode 100644
index 0000000..f508088
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTest.java
@@ -0,0 +1,22 @@
+package de.hs_mannheim.informatik.bank.domain;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+
+import org.junit.jupiter.api.Test;
+
+class BankTest {
+
+ @Test
+ void test() {
+
+ Bank b = new Bank("Commerzbank HD");
+ Konto k = new Konto("Max",0);
+
+ assertEquals("Commerzbank HD", b.getName());
+ assertNotEquals("Sparkasse MA",b.getName());
+
+
+ }
+
+}
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 654d503..353cf23 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
@@ -2,23 +2,59 @@ package de.hs_mannheim.informatik.bank.domain;
public class Konto {
private static int kontozähler = 0;
-
- private int nummer;
- private long stand = 0;
- private String inhaber;
- public Konto(String inhaber) {
+ private int nummer;
+// private long stand = 0;
+ private String inhaber;
+ private long kontoStand;
+
+ public Konto(String inhaber, long kontoStand) {
nummer = 1000 + kontozähler++;
this.inhaber = inhaber;
+ this.kontoStand = kontoStand;
+
}
-
+
public int getKontonummer() {
return nummer;
}
+ public long getkontoStand() {
+ return this.kontoStand;
+ }
+
+ public void setkontoStand(long neuerKontoStand) {
+ this.kontoStand = neuerKontoStand;
+ }
+
+ public void geldEinzahlen(double betrag) {
+ if (betrag <= 0) {
+ System.out.println("Einzahlung kann nicht getätigt werden, da es eine negativ Zahl ist! ");
+ } else {
+ kontoStand += betrag;
+ System.out.println("Der Betrag wurde eingezahlt! ");
+ }
+
+ }
+
+ // TODO: Kontostand nicht gedeckt und negativ betrag
+
+ public void geldAuszahlen(double betrag) {
+ if (betrag <= 0 || betrag > kontoStand) {
+ System.out.println("Einzahlung kann nicht getätigt werden, da es eine negativ Zahl ist oder Konto nicht gedeckt! ");
+
+ } else {
+ kontoStand -= betrag;
+ System.out.println("Der Betrag wurde abgehoben! ");
+
+ }
+
+ }
+
@Override
public String toString() {
- return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]";
+ return "Konto [nummer= " + nummer + ", inhaber= " + inhaber + ", kontoStand= " + kontoStand + "€" + " ]";
}
-
+
}
+
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
new file mode 100644
index 0000000..ede42d7
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java
@@ -0,0 +1,31 @@
+package de.hs_mannheim.informatik.bank.domain;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+
+class KontoTest {
+
+ @Test
+ void Test() {
+ Konto k1 = new Konto("Max",0);
+ Konto k2 = new Konto("Müller",0);
+
+ assertEquals(0,k1.getkontoStand());
+ assertEquals(1000,k1.getKontonummer());
+ assertEquals(0,k2.getkontoStand());
+ assertEquals(1001,k2.getKontonummer());
+
+ assertNotEquals(1,k1.getkontoStand());
+ assertNotEquals(100,k1.getKontonummer());
+ assertNotEquals(2,k2.getkontoStand());
+ assertNotEquals(101,k2.getKontonummer());
+
+
+
+ }
+
+
+ }
+
+
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 821c2a9..907dc59 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
@@ -7,31 +7,121 @@ import de.hs_mannheim.informatik.bank.domain.Konto;
public class Banksystem {
private Bank bank;
-
+
public Banksystem(String bankname) {
this.bank = new Bank(bankname);
}
-
- public int kontoAnlegen(String name) {
- Konto k = new Konto(name);
+
+ public int kontoAnlegen(String name, long kontoStand) {
+ Konto k = new Konto(name, kontoStand);
bank.addKonto(k);
-
+
return k.getKontonummer();
}
-
+
+ /*
+ * Gibt einen Konto vom Kunden zurück um das Banksystem zu testan!
+ */
+ public Konto kontoAnlegenTest(String name, long kontoStand) {
+ Konto k = new Konto(name, kontoStand);
+ bank.addKonto(k);
+
+ return k;
+ }
+
public String[] getKontenliste() {
Collection konten = bank.getKontenliste();
String[] liste = new String[konten.size()];
-
int i = 0;
for (Konto k : konten) {
- liste[i++] = k.toString();
+ liste[i++] = k.toString();
}
-
+
return liste;
}
-
+
+// /*
+// * Einzelnes Konto kann per Kontonummer abgefragt werden!
+// */
+//
+// public void kontoInformationen(int kontonummer) {
+// Collection konten = bank.getKontenliste();
+// for (Konto k : konten) {
+// if (k.getKontonummer() == kontonummer) {
+// k.getkontoStand();
+// }else {
+// System.out.println("Konro nicht vorhanden!");
+// }
+// }
+// }
+
+ public boolean kontoVorhanden(int kontonummer) {
+ Collection konten = bank.getKontenliste();
+ for (Konto k : konten) {
+ if (k.getKontonummer() == kontonummer) {
+ k.getKontonummer();
+ return true;
+
+ }
+ }
+ return false;
+ }
+
+ /*
+ * Der Kontostand wird abgefragt.
+ */
+ public void kontoStandAbfragen(int kontonummer) {
+ Collection konten = bank.getKontenliste();
+ for (Konto k : konten) {
+ if (k.getKontonummer() == kontonummer) {
+ k.getkontoStand();
+ System.out.println("Ihr aktueller Kontostand beträgt " + k.getkontoStand() + " €");
+ } else {
+ System.out.println("Kontonummer nicht vorhanden!");
+ }
+
+ }
+ }
+
+ public void einzahlen(double betrag, int kontonummer) {
+ Collection konten = bank.getKontenliste();
+ for (Konto k : konten) {
+
+ if (k.getKontonummer() != kontonummer) {
+ System.out.println("Konto nicht vorhanden! ");
+ }
+
+ if (k.getKontonummer() == kontonummer) {
+ k.geldEinzahlen(betrag);
+
+ }
+
+ }
+
+ }
+
+ public void abheben(double betrag, int kontonummer) {
+ Collection konten = bank.getKontenliste();
+ for (Konto k : konten) {
+ if (k.getKontonummer() == kontonummer) {
+ k.geldAuszahlen(betrag);
+ }
+
+ if (k.getKontonummer() != kontonummer) {
+
+ }
+
+ if (k.getkontoStand() >= betrag) {
+ k.geldAuszahlen(betrag);
+
+ }
+
+ }
+
+ }
+
public String getBankname() {
return bank.getName();
}
}
+
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
new file mode 100644
index 0000000..7e39495
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java
@@ -0,0 +1,43 @@
+package de.hs_mannheim.informatik.bank.facade;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+
+import de.hs_mannheim.informatik.bank.domain.Konto;
+
+class BanksystemTest {
+
+ /*
+ * Geldeinzahlen und abheben!
+ */
+
+ @Test
+ void test() {
+
+ Banksystem b = new Banksystem("Commerbank");
+ Konto k = b.kontoAnlegenTest("Müller", 0);
+ Konto i = b.kontoAnlegenTest("Müller", 0);
+
+ b.einzahlen(500, i.getKontonummer());
+ assertEquals(500, i.getkontoStand());
+ b.abheben(400, i.getKontonummer());
+ assertEquals(100, i.getkontoStand());
+
+ b.einzahlen(500, k.getKontonummer());
+ assertEquals(500, k.getkontoStand());
+ b.abheben(400, k.getKontonummer());
+ assertEquals(100, k.getkontoStand());
+
+ b.einzahlen(400, i.getKontonummer());
+ assertNotEquals(600, i.getkontoStand());
+ b.abheben(500, i.getKontonummer());
+ assertNotEquals(500, i.getkontoStand());
+
+ b.einzahlen(400, k.getKontonummer());
+ assertNotEquals(600, k.getkontoStand());
+ b.abheben(500, k.getKontonummer());
+ assertNotEquals(500, k.getkontoStand());
+ }
+
+}
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 d6eb6e9..648cc7d 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
@@ -16,32 +16,52 @@ public class UI {
private void hauptmenü() {
System.out.println("Willkommen bei der " + bs.getBankname() + "!");
- mainloop:
- while (true) {
- System.out.println();
- System.out.println("--------");
- System.out.println("Hauptmenü");
- System.out.println("1 -> Konten anzeigen");
- System.out.println("2 -> Konto anlegen");
- System.out.println("9 -> Beenden");
- System.out.println();
+ mainloop: while (true) {
+ System.out.println();
+ System.out.println("--------");
+ System.out.println("Hauptmenü");
+ System.out.println("1 -> Konten anzeigen");
+ System.out.println("2 -> Konto anlegen");
+ System.out.println("3 -> Kontostand abfragen");
+ System.out.println("4 -> Geld einzahlen");
+ System.out.println("5 -> Geld abheben");
+ System.out.println("9 -> Beenden");
+ System.out.println();
- System.out.print("> ");
- int input = Integer.parseInt(sc.nextLine());
- System.out.println();
+ System.out.print("> ");
- switch(input) {
- case 1: kontenAnzeigen(); break;
- case 2: kontoAnlegen(); break;
- case 9: break mainloop;
- }
+ int input = Integer.parseInt(sc.nextLine());
+// int input = sc.nextInt();
+
+ System.out.println();
+
+ switch (input) {
+ case 1:
+ kontenAnzeigen();
+ break;
+ case 2:
+ kontoAnlegen();
+ break;
+ case 3:
+ kontenStandAbfragen();
+ break;
+ case 4:
+ geldEinzahlen();
+ break;
+ case 5:
+ geldAuszahlen();
+ break;
+ case 9:
+ break mainloop;
}
+ }
System.out.println("Auf Wiedersehen!");
+ sc.close();
} // hauptmenü
- private void kontenAnzeigen() {
+ private void kontenAnzeigen() {
String[] konten = bs.getKontenliste();
if (konten.length > 0) {
System.out.println("Folgende Konten sind aktuell verfügbar:");
@@ -56,9 +76,54 @@ public class UI {
private void kontoAnlegen() {
System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
String name = sc.nextLine();
+ int kontonummer = bs.kontoAnlegen(name, 0);
+ System.out.println("Konto mit der Nummer " + kontonummer);
- int kontonummer = bs.kontoAnlegen(name);
- System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt.");
+ }
+
+ private void kontenStandAbfragen() {
+ System.out.println("Geben Sie ihre Kundennummer ein ");
+ int kNr = Integer.parseInt(sc.nextLine());
+ bs.kontoStandAbfragen(kNr);
+
+ }
+
+ private void geldEinzahlen() {
+
+ System.out.println("Geben Sie ihre Kundennummer ein ");
+
+ int kNr = Integer.parseInt(sc.nextLine());
+
+ if (bs.kontoVorhanden(kNr)) {
+ System.out.println("Wie viel geld möchten Sie einzahlen");
+
+ double betrag = Double.parseDouble(sc.nextLine());
+ bs.einzahlen(betrag, kNr);
+ } else {
+ System.out.println("Konto nicht vorhanden!");
+ }
+
+ }
+
+// System.out.println(bs.einzahlen(betrag, kNr));
+
+// System.out.println("Der Betrag i.H.v. " + betrag + " auf das KontoNr " + kNr + " eingezahlt");
+
+ private void geldAuszahlen() {
+
+ System.out.println("Geben Sie ihre Kundennummer ein ");
+ int kNr = Integer.parseInt(sc.nextLine());
+
+ if (bs.kontoVorhanden(kNr)) {
+
+ System.out.println("Wie viel geld möchten Sie abheben");
+
+ double betrag = Double.parseDouble(sc.nextLine());
+
+ bs.abheben(betrag, kNr);
+ }else {
+ System.out.println("Konto nicht vorhanden!");
+ }
}
}