From 6135efde0957cf1313e20c900f2918a1fccb54e9 Mon Sep 17 00:00:00 2001 From: abdullahkaplican Date: Tue, 11 Oct 2022 14:15:51 +0200 Subject: [PATCH] =?UTF-8?q?=C3=84nderung=20Banksystem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bank-Beispiel/.classpath | 3 +- .../informatik/bank/domain/BankTest.java | 22 ++++ .../informatik/bank/domain/Konto.java | 52 +++++++-- .../informatik/bank/domain/KontoTest.java | 31 +++++ .../informatik/bank/facade/Banksystem.java | 110 ++++++++++++++++-- .../bank/facade/BanksystemTest.java | 43 +++++++ .../de/hs_mannheim/informatik/bank/ui/UI.java | 105 +++++++++++++---- 7 files changed, 327 insertions(+), 39 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..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!"); + } } }