master
david 2022-10-25 15:07:00 +02:00
parent 1f7ce5239f
commit ab7555228c
7 changed files with 21 additions and 38 deletions

View File

@ -3,23 +3,16 @@ package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable; import java.io.Serializable;
public class Girokonto extends Konto implements Serializable { public class Girokonto extends Konto implements Serializable {
private long dispokredit = 1000;
public Girokonto(String inhaber, int kontozähler) { public Girokonto(String inhaber, int kontozähler) {
super(inhaber, kontozähler); super(inhaber, kontozähler);
} }
public long getDispo(){
return dispokredit;
}
public void setDispo(long i) {
dispokredit = dispokredit + i;
}
public boolean überweise(Girokonto ziel, long betrag, String zweck) { public boolean überweise(Girokonto ziel, long betrag, String zweck) {
if (super.getKontostand()+dispokredit - betrag >= 0) { if (super.getKontostand() - betrag >= 0) {
this.dispokredit = dispokredit + (super.getKontostand()-betrag);
this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber()); this.auszahlen(betrag, zweck, "Überweisungsausgang", super.getInhaber());
ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber()); ziel.einzahlen(betrag, zweck, "Überweisungseingang", super.getInhaber());

View File

@ -4,10 +4,11 @@ import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
public class Konto implements Serializable { public class Konto implements Serializable {
private int nummer; private int nummer;
private long stand = 0; private long stand = 0;
private String inhaber; private String inhaber;
protected long dispokredit;
private ArrayList<Kontobewegung> kontobewegungen; private ArrayList<Kontobewegung> kontobewegungen;
@ -56,29 +57,7 @@ public class Konto implements Serializable {
} }
public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber, Konto k) {
if (stand - betrag >= 0) {
stand -= betrag;
kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber));
return true;
}
else if (stand+((Girokonto)k).getDispo() - betrag >= 0) {
((Girokonto) k).setDispo(stand-betrag);
stand=0;
kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber));
return true;
}
return false;
}
public String[] getKontobewegungen() { public String[] getKontobewegungen() {
String[] auflistung = new String[kontobewegungen.size()]; String[] auflistung = new String[kontobewegungen.size()];

View File

@ -54,13 +54,13 @@ public class Banksystem {
Konto konto = bank.findeKonto(kontonummer); Konto konto = bank.findeKonto(kontonummer);
Persistenz.speichereBankDaten(this.bank, bank.getName()); Persistenz.speichereBankDaten(this.bank, bank.getName());
if (konto instanceof Girokonto){
return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber(), konto);
}
return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber());
} }
public String[] erstelleKontoauszug(int kontonummer) { public String[] erstelleKontoauszug(int kontonummer) {

View File

@ -27,6 +27,8 @@ public class UI {
System.out.println("4 -> Geld auszahlen"); System.out.println("4 -> Geld auszahlen");
System.out.println("5 -> Kontoauszug drucken"); System.out.println("5 -> Kontoauszug drucken");
System.out.println("6 -> Überweisung beauftragen"); System.out.println("6 -> Überweisung beauftragen");
System.out.println("7 -> Saldo anzeigen");
System.out.println("9 -> Beenden"); System.out.println("9 -> Beenden");
System.out.println(); System.out.println();
@ -45,6 +47,7 @@ public class UI {
case 4: geldAuszahlen(); break; case 4: geldAuszahlen(); break;
case 5: kontoauszugDrucken(); break; case 5: kontoauszugDrucken(); break;
case 6: überweisungBeauftragen(); break; case 6: überweisungBeauftragen(); break;
case 7: saldoAnzeigen(); break;
case 9: break mainloop; case 9: break mainloop;
} }
@ -58,6 +61,14 @@ public class UI {
} // hauptmenü } // hauptmenü
private void saldoAnzeigen() {
System.out.println("Kontonummer eingeben: ");
int auswahl = Integer.parseInt(sc.nextLine());
bs.erstelleKontoauszug(auswahl);
}
private void kontenAnzeigen() { private void kontenAnzeigen() {
String[] konten = bs.getKontenliste(); String[] konten = bs.getKontenliste();
if (konten.length > 0) { if (konten.length > 0) {