Änderung Banksystem

main
abdullahkaplican 2022-10-11 14:15:51 +02:00
parent 59a8f80aac
commit 6135efde09
7 changed files with 327 additions and 39 deletions

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 17 [17]">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -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());
}
}

View File

@ -4,21 +4,57 @@ public class Konto {
private static int kontozähler = 0;
private int nummer;
private long stand = 0;
// private long stand = 0;
private String inhaber;
private long kontoStand;
public Konto(String inhaber) {
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 + "€" + " ]";
}
}

View File

@ -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());
}
}

View File

@ -12,17 +12,26 @@ public class Banksystem {
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<Konto> konten = bank.getKontenliste();
String[] liste = new String[konten.size()];
int i = 0;
for (Konto k : konten) {
liste[i++] = k.toString();
@ -31,7 +40,88 @@ public class Banksystem {
return liste;
}
// /*
// * Einzelnes Konto kann per Kontonummer abgefragt werden!
// */
//
// public void kontoInformationen(int kontonummer) {
// Collection<Konto> 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<Konto> 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<Konto> 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<Konto> 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<Konto> 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();
}
}

View File

@ -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());
}
}

View File

@ -16,29 +16,49 @@ public class UI {
private void hauptmenü() {
System.out.println("Willkommen bei der " + bs.getBankname() + "!");
mainloop:
while (true) {
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());
// int input = sc.nextInt();
System.out.println();
switch(input) {
case 1: kontenAnzeigen(); break;
case 2: kontoAnlegen(); break;
case 9: break mainloop;
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() {
@ -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!");
}
}
}