From 0bb5743c387619059c8bdd12691265d752e2116b Mon Sep 17 00:00:00 2001
From: alexanderhariri <102290528+alexanderhariri@users.noreply.github.com>
Date: Sun, 16 Oct 2022 14:44:39 +0200
Subject: [PATCH] =?UTF-8?q?Das=20Projekt=20wurde=20um=20die=20Auszahl-=20u?=
=?UTF-8?q?nd=20Kontoauszugmethode=20erweitert.=20Tests=20f=C3=BCr=20die?=
=?UTF-8?q?=20Klassen=20Konto=20und=20Bank=20wurden=20hinzugef=C3=BCgt.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Bank-Beispiel/.classpath | 1 +
.../de/hs_mannheim/informatik/bank/Main.java | 2 +-
.../informatik/bank/domain/Bank.java | 28 ++++---
.../informatik/bank/domain/BankTest.java | 17 +++++
.../informatik/bank/domain/Konto.java | 74 ++++++++++++++-----
.../informatik/bank/domain/KontoTest.java | 33 +++++++++
.../informatik/bank/facade/Banksystem.java | 43 ++++++++---
.../bank/facade/BanksystemTest.java | 19 +++++
.../de/hs_mannheim/informatik/bank/ui/UI.java | 44 ++++++++---
9 files changed, 208 insertions(+), 53 deletions(-)
create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTest.java
create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java
create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java
diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath
index 57bca72..257ce1d 100644
--- a/Bank-Beispiel/.classpath
+++ b/Bank-Beispiel/.classpath
@@ -6,5 +6,6 @@
+
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java
index dd783b9..34e3a42 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java
@@ -2,10 +2,10 @@ package de.hs_mannheim.informatik.bank;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
import de.hs_mannheim.informatik.bank.ui.UI;
+
public class Main {
public static void main(String[] args) {
Banksystem bs = new Banksystem("Sparkasse Mannheim");
UI ui = new UI(bs);
-
}
}
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 87c4b6e..7dfc6a7 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
@@ -2,23 +2,27 @@ package de.hs_mannheim.informatik.bank.domain;
import java.util.Collection;
import java.util.HashMap;
+
public class Bank {
private String name;
private HashMap konten = new HashMap<>();
-
-public Bank(String name){
- this.name = name;
-}
-public String getName() {
- return name;
-}
-public void addKonto(Konto k) {
- konten.put(k.getKontonummer(), k);
-}
-public Collection getKontenliste(){
- return konten.values();
+
+ public Bank(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void addKonto(Konto k) {
+ konten.put(k.getKontonummer(), k);
}
+
+ public Collection getKontenliste() {
+ return konten.values();
+ }
}
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..85a584b
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTest.java
@@ -0,0 +1,17 @@
+package de.hs_mannheim.informatik.bank.domain;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+
+import de.hs_mannheim.informatik.bank.facade.Banksystem;
+
+class BankTest {
+
+ @Test
+ void test() {
+ Bank bank = new Bank("Sparkasse Mannheim");
+ assertEquals("Sparkasse Mannheim", bank.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 92c2eab..891dd58 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
@@ -1,29 +1,69 @@
package de.hs_mannheim.informatik.bank.domain;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+
public class Konto {
private static int kontozähler;
private int nummer;
private String inhaber;
- private long stand=0;
+ private long stand = 0;
+ private long betrag;
+ int zahl;
+ int counter = 0;
+ public ArrayList beträge = new ArrayList(1000);
+ public ArrayList datumsEinträge = new ArrayList(1000);
+
+ public Konto(String inhaber) {
+ nummer = 1000 + kontozähler++;
+ this.inhaber = inhaber;
+ }
-public Konto(String inhaber) {
- nummer = 1000 + kontozähler++;
- this.inhaber = inhaber;
+ public String getInhaber() {
+ return inhaber;
+ }
+
+ public int getKontonummer() {
+ return nummer;
+ }
+
+ public long zeigeStand() {
+ return this.stand;
+ }
+
+ public void zahleEinBetrag(long betrag) {
+ this.stand = this.stand + betrag;
+ this.betrag = betrag;
+ DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
+ datumsEinträge.add(dateFormat.format(LocalDateTime.now()));
+
+ beträge.add(betrag);
+ }
-}
+ public int hochzählen() {
+ return counter = counter + zahl++;
+ }
-public int getKontonummer() {
- return nummer;
-}
-public String toString() {
- return "Kontonummer " + nummer + ", Inhaber " + inhaber + ", Kontostand " + stand + " Euro";
-}
+ public ArrayList getDatum() {
+ return datumsEinträge;
+ }
-public long zeigeStand() {
- return stand;
-}
-public void zahleEinBetrag(long betrag) {
- this.stand = this.stand + betrag;
-}
+ public String zahleAus(long auszahlung) {
+ if (this.stand == 0) {
+ return "Sie haben aktuell kein Geld auf dem Konto";
+ }
+ if (this.stand >= auszahlung) {
+ long neuerStand = this.stand = this.stand - auszahlung;
+ return "Sie haben " + auszahlung + " Euro abgehoben. Sie haben noch ein Guthaben von " + neuerStand + " Euro";
+ } else {
+ return "Sie haben nur ein Guthaben von " + this.stand;
+ }
+ }
+
+ public String toString() {
+ return " Inhaber: " + inhaber + " Kontonummer: " + nummer + " Kontostand: " + stand + " Euro";
+
+ }
}
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..ad80098
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java
@@ -0,0 +1,33 @@
+package de.hs_mannheim.informatik.bank.domain;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+
+class KontoTest {
+
+ @Test
+ void testKonto() {
+ Konto k = new Konto("Müller");
+ assertEquals("Müller", k.getInhaber());
+ assertEquals(1000, k.getKontonummer());
+ k.zahleEinBetrag(1500);
+ assertEquals(1500, k.zeigeStand());
+ k.zahleAus(500);
+ assertEquals(1000, k.zeigeStand());
+ assertEquals(" Inhaber: Müller Kontonummer: 1000 Kontostand: 1000 Euro", k.toString());
+
+
+ Konto k2 = new Konto("Mayer");
+ assertEquals("Mayer", k2.getInhaber());
+ k2.zahleEinBetrag(2000);
+ assertEquals(1001, k2.getKontonummer());
+ assertEquals(2000, k2.zeigeStand());
+ k2.zahleAus(700);
+ assertEquals(1300, k2.zeigeStand());
+ assertEquals(" Inhaber: Mayer Kontonummer: 1001 Kontostand: 1300 Euro", k2.toString());
+
+
+ }
+
+}
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 8d2e485..4067661 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
@@ -1,23 +1,38 @@
package de.hs_mannheim.informatik.bank.facade;
-
import java.util.Collection;
-
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Konto;
public class Banksystem {
private Bank bank;
private Konto selKonto;
+ int newCounter;
public Banksystem(String bankname) {
this.bank = new Bank(bankname);
+ }
+ public String auszahlen(long auszahlung) {
+ if (selKonto != null) {
+ return selKonto.zahleAus(auszahlung);
+ } else
+ return "Fehlerhafter Zustand";
+ }
+
+ public void auszug() {
+ System.out.println("Kontoauszug: ");
+ System.out.println();
+ System.out.println(selKonto.toString());
+ System.out.println();
+ for (int i = 0; i < selKonto.beträge.size(); i++) {
+ System.out.println(" " +selKonto.datumsEinträge.get(i) + " -------> Einzahlung: " + selKonto.beträge.get(i));
+ System.out.println();
+ }
}
public int kontoAnlegen(String name) {
Konto k = new Konto(name);
-
bank.addKonto(k);
return k.getKontonummer();
}
@@ -28,17 +43,22 @@ public class Banksystem {
if (kn == k.getKontonummer()) {
this.selKonto = k;
}
- }return selKonto != null;
-
+ }
+ return selKonto != null;
}
public void zahleEin(long betrag) {
if (selKonto != null) {
selKonto.zahleEinBetrag(betrag);
- System.out.println("Sie haben " +betrag+ " eingezahlt.");
- }else {System.out.println("Fehlerhafter Zustand");}
-
+ selKonto.getDatum();
+ newCounter = selKonto.hochzählen();
+ System.out.println("Sie haben " + betrag + " Euro eingezahlt.");
+ } else {
+ System.out.println("Fehlerhafter Zustand");
+ }
+
}
+
public String[] getKontenliste() {
Collection konten = bank.getKontenliste();
String[] liste = new String[konten.size()];
@@ -52,7 +72,8 @@ public class Banksystem {
public String getBankname() {
return bank.getName();
}
-public void stand() {
- System.out.println("Der Kontostand beträgt: " + selKonto.zeigeStand());
-}
+
+ public void stand() {
+ System.out.println("Der Kontostand beträgt: " + selKonto.zeigeStand() + " Euro");
+ }
}
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..b1ea941
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java
@@ -0,0 +1,19 @@
+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.Bank;
+import de.hs_mannheim.informatik.bank.domain.Konto;
+
+class BanksystemTest {
+ private Konto selKonto;
+ @Test
+ void test() {
+Banksystem bs = new Banksystem("Sparkasse Mannheim");
+
+assertEquals(selKonto.zahleAus(1000), bs.auszahlen(1000));
+ }
+
+}
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 33c820b..6bdb96b 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
@@ -3,6 +3,7 @@ package de.hs_mannheim.informatik.bank.ui;
import java.util.Scanner;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
+
public class UI {
private Banksystem bs;
private boolean kontoSelektiert;
@@ -21,7 +22,7 @@ public class UI {
System.out.println("Willkommen bei der " + bs.getBankname());
reset();
mainloop: while (true) {
-
+
if (!kontoSelektiert) {
System.out.println("Hauptmenü");
System.out.println("1 -> Konto anzeigen");
@@ -30,7 +31,10 @@ public class UI {
} else {
System.out.println("4 -> Geld einzahlen");
System.out.println("5 -> Kontostand");
- System.out.println("6 -> Hauptmenü");
+ System.out.println("6 -> Geld auszahlen");
+ System.out.println("7 -> Kontoauszug");
+ System.out.println("8 -> Hauptmenü");
+
}
System.out.println("9 -> beenden");
@@ -50,10 +54,17 @@ public class UI {
case 4:
einzahlen();
break;
- case 5 : kontoStand(); break;
- case 6:
- hauptmenü();
+ case 5:
+ kontoStand();
break;
+ case 6:
+ zahleAus();
+ break;
+ case 7:
+ kontoAuszug();
+ break;
+ case 8:
+ hauptmenü();
case 9:
break mainloop;
@@ -62,25 +73,33 @@ public class UI {
}
+ private void kontoAuszug() {
+ bs.auszug();
+
+ }
+
+ private void zahleAus() {
+ System.out.println("Welchen Betrag möchten Sie abheben?");
+ long auszahlung = Long.parseLong(sc.nextLine());
+ System.out.println(bs.auszahlen(auszahlung));
+ }
+
private void kontoStand() {
bs.stand();
-
}
private void einzahlen() {
System.out.println("Wieviel wollen Sie einzahlen?");
long euro = Long.parseLong(sc.nextLine());
bs.zahleEin(euro);
-
}
private void kontoAuswählen() {
-
- kontenAnzeigen();
+ kontenAnzeigen();
+ System.out.println();
System.out.println("Wählen Sie die Kontonummer aus");
int auswahl = Integer.parseInt(sc.nextLine());
kontoSelektiert = bs.kontoAuswählen(auswahl);
-
}
private void kontoAnlegen() {
@@ -89,14 +108,16 @@ public class UI {
int neuesKonto = bs.kontoAnlegen(inhaber);
System.out.println("Konto mit der Kontonummer " + neuesKonto + " wurde angelegt.");
-
}
private void kontenAnzeigen() {
+
String[] konten = bs.getKontenliste();
if (konten.length > 0) {
+
System.out.println("Folgende Konten sind angelegt: ");
+ System.out.println();
for (String s : konten) {
System.out.println(s);
}
@@ -104,5 +125,4 @@ public class UI {
System.out.println("Aktuell sind keine Konten angelegt.");
}
}
-
}