From 6a27e250c0b2964db571ba4ec25a8ace6fe470c7 Mon Sep 17 00:00:00 2001 From: WummerMIB Date: Tue, 18 Oct 2022 17:15:26 +0200 Subject: [PATCH] function a finished i think further testing is needed --- .../informatik/bank/domain/Bank.java | 1 - .../informatik/bank/domain/Girokonto.java | 11 ++++- .../informatik/bank/domain/Konto.java | 2 +- .../informatik/bank/facade/Banksystem.java | 47 +++++++++++++------ src/de/hs_mannheim/informatik/bank/ui/UI.java | 21 ++++++++- 5 files changed, 63 insertions(+), 19 deletions(-) diff --git a/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/src/de/hs_mannheim/informatik/bank/domain/Bank.java index fc07c8d..4b2fde1 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Bank.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Bank.java @@ -25,7 +25,6 @@ public class Bank implements Serializable { */ private static final long serialVersionUID = 1L; private Konto k; - private String amEndeDerAuzügeEifügen = ","; private String name; private HashMap konten = new HashMap<>(); diff --git a/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index cc49d9c..c4c8617 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -5,5 +5,14 @@ public class Girokonto extends Konto{ public Girokonto(String inhaber) { super(inhaber); } - + + public boolean überweisen(double betrag, Girokonto ziel) { + if(super.getStand() - betrag >=0) { + this.geldEinzahlen((long)betrag); + ziel.geldAbheben((long)betrag); + return true; + } + return false; + } + } diff --git a/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/src/de/hs_mannheim/informatik/bank/domain/Konto.java index f3801bf..52352d6 100644 --- a/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -19,7 +19,7 @@ public class Konto implements Serializable { private int nummer; - private long stand = 0; + protected long stand = 0; private String inhaber; private ArrayList kontobewegungen; public Konto(String inhaber) { diff --git a/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index deea1b6..679f6ee 100644 --- a/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -10,7 +10,10 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map.Entry; +import javax.xml.stream.events.StartDocument; + import de.hs_mannheim.informatik.bank.domain.Bank; +import de.hs_mannheim.informatik.bank.domain.Girokonto; import de.hs_mannheim.informatik.bank.domain.Konto; import persistence.Persistenc; @@ -18,29 +21,36 @@ public class Banksystem { private Bank bank; private Konto konto; private Persistenc per = new Persistenc(); + public Banksystem(String bankname) { this.bank = new Bank(bankname); } - - public int kontoAnlegen(String name) { - Konto k = new Konto(name); + + public int kontoAnlegen(String name, int auswahl) { + Konto k; + if (auswahl == 1) + k = new Konto(name); + + else + k = new Girokonto(name); + // ob es ein giro ist + // System.out.println(k instanceof Girokonto); bank.addKonto(k); - return k.getKontonummer(); } - + 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; } - + public String getBankname() { return bank.getName(); } @@ -48,7 +58,7 @@ public class Banksystem { public long geldEinzahlen(int kontoNummer, long geldBetrag) { Konto konto = bank.getKonto(kontoNummer); konto.geldEinzahlen(geldBetrag); - return konto.getStand(); + return konto.getStand(); } public long sucheNachKontoStand(int kontNumToGetKontoStand) { @@ -61,13 +71,11 @@ public class Banksystem { return konto.geldAbheben(geldAbheben); } - - public void saveKonten() throws Exception { per.saveKontos(bank); - + } - + public void loadKonten() throws Exception { bank = per.load(); } @@ -76,6 +84,15 @@ public class Banksystem { Konto konto = bank.getKonto(kontoNummer); return konto.getKontoBewegungen(); } - + + public boolean überweisen(int kontoNummer, int zielKontoNummer, double betrag , String verwendung) { + Konto start = bank.getKonto(kontoNummer); + Konto zielKonto = bank.getKonto(zielKontoNummer); + if(start instanceof Girokonto) { + ((Girokonto)start).überweisen(betrag,(Girokonto)start); + return true; + } + return false; + } } diff --git a/src/de/hs_mannheim/informatik/bank/ui/UI.java b/src/de/hs_mannheim/informatik/bank/ui/UI.java index 1a85a26..617debf 100644 --- a/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -3,6 +3,8 @@ package de.hs_mannheim.informatik.bank.ui; import java.util.Iterator; import java.util.Scanner; +import javax.lang.model.element.NestingKind; + import de.hs_mannheim.informatik.bank.facade.Banksystem; public class UI { @@ -29,6 +31,7 @@ public class UI { System.out.println("5 -> Geld abheben"); System.out.println("6 -> Kontoauszüge ausgeben"); System.out.println("7 -> Konten laden"); + System.out.println("8 -> überweisungen"); System.out.println("9 -> Beenden"); System.out.println(); @@ -44,6 +47,7 @@ public class UI { case 5: geldAbheben(); break; case 6: kontoAuszügeAnsgeben(); break; case 7: kontenLaden(); break; + case 8: überweisungen(); break; case 9: break mainloop; } try { @@ -57,6 +61,18 @@ public class UI { } // hauptmenü } + private void überweisungen() { + System.out.println("Geben Sie ihre Kontonummer ein"); + int kontoNummer = Integer.parseInt(sc.nextLine()); + System.out.println("Geben Sie das ZielKontonummer ein"); + int zielKontoNummer = Integer.parseInt(sc.nextLine()); + System.out.println("Geben sie denn Betrag ein"); + double betrag = Double.parseDouble(sc.nextLine()); + System.out.println("Geben sie denn verwendung ein"); + String verwendung = sc.nextLine(); + bs.überweisen(kontoNummer,zielKontoNummer,betrag,verwendung); + } + private void kontenLaden() throws Exception { bs.loadKonten(); @@ -111,8 +127,11 @@ public class UI { private void kontoAnlegen() { System.out.println("Bitte den Namen des Kontoinhabers angeben: "); String name = sc.nextLine(); + + System.out.println("Sparkonto (1) oder oder Giro(2)"); + int auswahl = Integer.parseInt(sc.nextLine()); - int kontonummer = bs.kontoAnlegen(name); + int kontonummer = bs.kontoAnlegen(name, auswahl); System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); }