Girokonto dazu

main
robinschumann 2022-10-21 10:40:02 +02:00
parent f0220cd16f
commit fe19b7a082
4 changed files with 168 additions and 35 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Bank-Beispiel</name>
<name>Bank-Beispiel_Robin</name>
<comment></comment>
<projects>
</projects>

View File

@ -1,6 +1,6 @@
package de.hs_mannheim.informatik.bank.domain;
import java.util.ArrayList;
public class Konto {
private static int kontozähler = 0;
@ -9,13 +9,12 @@ public class Konto {
private long stand = 0;
private String inhaber;
private ArrayList<Kontobewegung> kontobewegung;
public Konto(String inhaber) {
nummer = 1000 + kontozähler++;
this.inhaber = inhaber;
this.kontobewegung = new ArrayList<>();
}
public int getKontonummer() {
@ -39,4 +38,33 @@ public class Konto {
return inhaber;
}
public void einzahlen(long einzahlen, String betreff, String art, String auftraggeber) {
stand += einzahlen;
kontobewegung.add(new Kontobewegung(einzahlen, betreff, art, auftraggeber));
}
public boolean auszahlen(long auszahlen, String betreff, String art, String auftraggeber) {
if ((stand - auszahlen) >= 0) {
stand -= auszahlen;
kontobewegung.add(new Kontobewegung(auszahlen, betreff, art, auftraggeber));
return true;
}
return false;
}
public String[] getKontoBewegungen() {
String[] bewegungen = new String[kontobewegung.size()];
int i = 0;
for (Kontobewegung kb : kontobewegung) {
bewegungen[i++] = kb.toString();
}
return bewegungen;
}
}

View File

@ -1,26 +1,34 @@
package de.hs_mannheim.informatik.bank.facade;
import java.util.ArrayList;
import java.util.Collection;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Konto;
import de.hs_mannheim.informatik.bank.domain.Girokonto;
public class Banksystem {
private Bank bank;
ArrayList<String> kontoauszug = new ArrayList<>();
// ArrayList<String> kontoauszug = new ArrayList<>();
public Banksystem(String bankname) {
this.bank = new Bank(bankname);
}
public int kontoAnlegen(String name) {
public int sparkontoAnlegen(String name) {
Konto k = new Konto(name);
bank.addKonto(k);
return k.getKontonummer();
}
public int girokontoAnlegen(String name) {
Girokonto k = new Girokonto (name);
bank.addKonto(k);
return k.getKontonummer();
}
public String[] getKontenliste() {
Collection<Konto> konten = bank.getKontenliste();
String[] liste = new String[konten.size()];
@ -39,11 +47,24 @@ public class Banksystem {
public long geldEinzahlen(int kontonummer, long einzahlen) {
Konto konto = bank.getKonto(kontonummer);
long alterStand = konto.getStand();
long neuerStand = alterStand + einzahlen;
konto.setStand(neuerStand);
return neuerStand;
String Inhaber = konto.getInhaber();
konto.einzahlen(einzahlen, "Einzahlung", "Einzahlung am Schalter", Inhaber);
return konto.getStand();
}
public long geldAuszahlen(int kontonummer, long auszahlen) {
Konto konto = bank.getKonto(kontonummer);
String Inhaber = konto.getInhaber();
boolean funktioniert = konto.auszahlen(auszahlen, "Auszahlung", "Auszahlung am Schalter", Inhaber);
if (funktioniert == false) {
System.out.println("Das geht nicht, Konto ist nicht ausreichend gedeckt. ");
//geldAuszahlen(kontonummer,auszahlen);
}
return konto.getStand();
}
public boolean prüfeKonto(int kontonummer) {
@ -60,13 +81,15 @@ public class Banksystem {
return konto.getStand();
}
public void kontoauszugErstellen(int kontonummer) {
for (int i = 0; i < kontoauszug.size(); i++) {
System.out.println(kontoauszug.get(i));
public String[] kontoauszugErstellen(int kontonummer) {
Konto konto = bank.getKonto(kontonummer);
return konto.getKontoBewegungen();
}
}
/*
public void kontobewegung(long einzahlen) {
if (einzahlen < 0) {
String Auszahlung = einzahlen + "" + " (Auszahlung)";
@ -78,6 +101,7 @@ public class Banksystem {
}
}
*/
public String getKontoinhaber(int kontonummer) {
Konto k = bank.getKonto(kontonummer);
@ -86,5 +110,14 @@ public class Banksystem {
}
public boolean überweisen(int kontonummer, int zielkontonummer, long betrag, String Verwendungszweck) {
Konto start = bank.getKonto(kontonummer);
Konto ziel = bank.getKonto(zielkontonummer);
if (start instanceof Girokonto && ziel instanceof Girokonto) {
return ((Girokonto)start).überweisung((Girokonto)ziel, betrag, Verwendungszweck);
}
return false;
}
}

View File

@ -23,8 +23,10 @@ public class UI {
System.out.println("1 -> Konten anzeigen");
System.out.println("2 -> Konto anlegen");
System.out.println("3 -> Einzahlen auf ein Konto");
System.out.println("4 -> Kontostand anzeigen");
System.out.println("5 -> Kontoauszug erstellen");
System.out.println("4 -> Auszahlen von einem Konto");
System.out.println("5 -> Kontostand anzeigen");
System.out.println("6 -> Kontoauszug erstellen");
System.out.println("7 -> Überweisung tätigen");
System.out.println("9 -> Beenden");
System.out.println();
@ -43,10 +45,17 @@ public class UI {
kontoEinzahlen();
break;
case 4:
kontostandAnzeigen();
kontoAuszahlen();
break;
case 5:
kontostandAnzeigen();
break;
case 6:
kontoauszugErstellen();
break;
case 7:
überweisenKonto();
break;
case 9:
break mainloop;
}
@ -56,6 +65,34 @@ public class UI {
} // hauptmenü
private void überweisenKonto() {
System.out.println("Von welchem Konto möchten Sie überweisen?");
int kontonummer = Integer.parseInt(sc.nextLine());
System.out.println("Welches ist das Zielkonto?");
int zielkontonummer = Integer.parseInt(sc.nextLine());
System.out.println("Wie viel möchten Sie überweisen?");
long betrag = Long.parseLong(sc.nextLine());
System.out.println("Bitte geben Sie einen Verwendungszweck an: ");
String Verwendungszweck = sc.nextLine();
boolean konto1 = bs.prüfeKonto(kontonummer);
boolean konto2 = bs.prüfeKonto(zielkontonummer);
if (konto1 == true && konto2 == true) {
boolean erfolgreich = bs.überweisen(kontonummer, zielkontonummer, betrag, Verwendungszweck);
if (erfolgreich == true) {
System.out.println("Die Überweisung war erfolgreich. ");
} else {
System.out.println("Die Überweisung hat nicht funktioniert. (Konto nicht gedeckt? ");
}
}
}
private void kontenAnzeigen() {
String[] konten = bs.getKontenliste();
if (konten.length > 0) {
@ -69,11 +106,27 @@ public class UI {
}
private void kontoAnlegen() {
int kontonummer;
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.");
System.out.println("Was für ein Konto möchten Sie anlegen? (1) für Sparkonto (2) für Girokonto");
int eingabe = Integer.parseInt(sc.nextLine());
switch (eingabe) {
case 1:
kontonummer = bs.sparkontoAnlegen(name);
System.out.println("Sparkonto mit der Nummer " + kontonummer + " neu angelegt.");
break;
case 2:
kontonummer = bs.girokontoAnlegen(name);
System.out.println("Sparkonto mit der Nummer " + kontonummer + " neu angelegt.");
break;
}
// int kontonummer = bs.kontoAnlegen(name);
// System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt.");
}
private void kontoEinzahlen() {
@ -89,14 +142,34 @@ public class UI {
System.out.println("Wie viel möchten Sie einzahlen?");
long einzahlen = Long.parseLong(sc.nextLine());
long kontostand = bs.geldEinzahlen(kontonummer, einzahlen);
System.out.println("Der Kontostand beträgt: " + kontostand);
bs.kontobewegung(einzahlen);
long neuerKontostand = bs.geldEinzahlen(kontonummer, einzahlen);
System.out.println("Der Kontostand beträgt: " + neuerKontostand);
// bs.kontobewegung(einzahlen);
} else {
kontoEinzahlen();
}
}
private void kontoAuszahlen() {
System.out.println("Aus welchem Konto wollen Sie auszahlen?");
int kontonummer = Integer.parseInt(sc.nextLine());
// Prüfung ob Konto existiert
boolean existiert = bs.prüfeKonto(kontonummer);
if (existiert == true) {
System.out.println("Wie viel möchten Sie abheben?");
long auszahlen = Long.parseLong(sc.nextLine());
long neuerKontostand = bs.geldAuszahlen(kontonummer, auszahlen);
System.out.println("Der Kontostand beträgt: " + neuerKontostand);
// bs.kontobewegung(auszahlen);
} else {
kontoAuszahlen();
}
}
private void kontostandAnzeigen() {
System.out.println("Welcher Kontostand soll angezeigt werden? ");
int kontonummer = Integer.parseInt(sc.nextLine());
@ -118,11 +191,10 @@ public class UI {
// Prüfung ob Konto existiert
boolean existiert = bs.prüfeKonto(kontonummer);
if (existiert == true) {
String Inhaber = bs.getKontoinhaber(kontonummer);
System.out.println("Kontoauszug für das Konto: " + kontonummer + ". Der Inhaber des Kontos ist: " + Inhaber);
System.out.println("----------");
bs.kontoauszugErstellen(kontonummer);
System.out.println("----------");
String[] Kontoauszug = bs.kontoauszugErstellen(kontonummer);
for (String kb : Kontoauszug) {
System.out.println(kb);
}
} else {
kontoauszugErstellen();
}