diff --git a/Bank-Beispiel/Konten.ser b/Bank-Beispiel/Konten.ser new file mode 100644 index 0000000..1b57d53 Binary files /dev/null and b/Bank-Beispiel/Konten.ser differ 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 745ad54..fa1cb37 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 @@ -7,24 +7,27 @@ import de.hs_mannheim.informatik.bank.persistence.PersistenceService; public class Konto implements Serializable { private static int kontozaehler = 0; - private ArrayList bewegungen = new ArrayList(); - private ArrayList dates = new ArrayList(); private int nummer; private long stand = 0; private String inhaber; + + private ArrayList kontobewegungen; public Konto(String inhaber) { nummer = 1000 + kontozaehler++; this.inhaber = inhaber; + this.kontobewegungen = new ArrayList<>(); } - public long kontoEinzahlen(Konto k, long betrag) { + public long kontoEinzahlen(Konto k, long betrag, String datum, String zweck, String art, String auftraggeber) { k.stand = k.stand + betrag; + kontobewegungen.add(new Kontobewegung(betrag, datum, zweck, art, auftraggeber)); return k.stand; } - public long kontoAbheben(Konto k, long betrag) { + public long kontoAbheben(Konto k, long betrag, String datum, String zweck, String art, String auftraggeber) { k.stand = k.stand - betrag; + kontobewegungen.add(new Kontobewegung(betrag, datum, zweck, art, auftraggeber)); return k.stand; } @@ -44,22 +47,14 @@ public class Konto implements Serializable { return inhaber; } - public ArrayList getBewegungen() { - return bewegungen; + public String[] getKontobewegungen() { + String[] liste = new String[kontobewegungen.size()]; + for (int i = 0; i < kontobewegungen.size(); i++) { + liste[i] = kontobewegungen.get(i).toString(); + } + return liste; } - - public ArrayList getDates() { - return dates; - } - - public void setBewegungen(String bewegung) { - bewegungen.add(bewegung); - } - - public void setDate(String datum) { - dates.add(datum); - } - + public static void setKontozaehler(int zaehler) { kontozaehler = zaehler; } 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 index 95cb7ec..4aad96c 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java @@ -18,7 +18,7 @@ class KontoTest { Collection konten = bank.getKontenliste(); assertEquals(7 , Konto.getKontozaehler()); } - + /* @Test void kontoEinzahlenTest() { Konto k1 = new Konto("User1"); @@ -32,7 +32,7 @@ class KontoTest { k2.kontoEinzahlen(k2, 100); assertEquals(50, k2.kontoAbheben(k2, 50)); } - + */ @Test @Order(2) void kontoNummerGenerierungTest() { diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java new file mode 100644 index 0000000..05f73b1 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java @@ -0,0 +1,32 @@ +package de.hs_mannheim.informatik.bank.domain; + +import java.io.Serializable; + +public class Kontobewegung implements Serializable{ + private String betrag; + private String datum; + private String zweck; + private String art; + private String auftraggeber; + + public Kontobewegung(long betrag, String datum, String zweck, String art, String auftraggeber) { + this.betrag = betragMitKomma(betrag); + this.datum = datum; + this.zweck = zweck; + this.art = art; + this.auftraggeber = auftraggeber; + } + + private String betragMitKomma(long betrag) { + StringBuilder standKomma = new StringBuilder(Long.toString(betrag)); + int posKomma = standKomma.length()-2; + standKomma = standKomma.insert(posKomma, '.'); + + return standKomma.toString(); + } + + @Override + public String toString() { + return datum + "\t" + auftraggeber + "\t\t" + zweck + "\t " + betrag + "€\t\t" + art; + } +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java deleted file mode 100644 index 3f0c702..0000000 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegungen.java +++ /dev/null @@ -1,7 +0,0 @@ -package de.hs_mannheim.informatik.bank.domain; - -import java.util.ArrayList; - -public class Kontobewegungen { - -} 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 d179277..a4ef59d 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 @@ -47,15 +47,11 @@ public class Banksystem { long betrag_long = Long.parseLong(betrag.replace(".", "")); Konto k = bank.getKonto(kontonr); - k.kontoEinzahlen(k, betrag_long); + String datum = getDatum(); + k.kontoEinzahlen(k, betrag_long, datum, "Einzahlung am Schalter", "(+)", k.getInhaber()); // Betrag mit 2 Nachkommastellen für den User anzeigen lassen String betrag_aktuell = kontostandMitKomma(k); - - //Daten für Kontobewegung und Datum für Kontoauszug übergeben - k.setBewegungen(betrag + " (+)"); - String datum = getDatum(k); - k.setDate(datum); return betrag_aktuell; } @@ -68,20 +64,16 @@ public class Banksystem { long betrag_long = Long.parseLong(betrag.replace(".", "")); Konto k = bank.getKonto(kontonr); - k.kontoAbheben(k, betrag_long); + String datum = getDatum(); + k.kontoAbheben(k, betrag_long, datum, "Auszahlung am Schalter", "(-)", k.getInhaber()); // Betrag mit 2 Nachkommastellen für den User anzeigen lassen String betrag_aktuell = kontostandMitKomma(k); - //Daten für Kontobewegung und Datum für Kontoauszug übergeben - k.setBewegungen(betrag + " (-)"); - String datum = getDatum(k); - k.setDate(datum); - return betrag_aktuell; } - private String getDatum(Konto k) { + public String getDatum() { DateTimeFormatter zeitformat = DateTimeFormatter.ofPattern("dd.MM.yyyy"); LocalDateTime zeit = LocalDateTime.now(); return zeitformat.format(zeit); @@ -141,16 +133,11 @@ public class Banksystem { return bank.getName(); } - public ArrayList getBewegungen(int kontonr) { + public String[] getKontoauszug(int kontonr) { Konto k = bank.getKonto(kontonr); - return k.getBewegungen(); + return k.getKontobewegungen(); } - - public ArrayList getDates(int kontonr) { - Konto k = bank.getKonto(kontonr); - return k.getDates(); - } - + public String getInhaber(int kontonr) { Konto k = bank.getKonto(kontonr); return k.getInhaber(); 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 3305a13..5bdfeec 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 @@ -109,20 +109,19 @@ public class UI { System.out.println("Kontonummer: "); int kontonr = sc.nextInt(); sc.nextLine(); + String[] kontobewegungen = bs.getKontoauszug(kontonr); - ArrayList bewegungen = new ArrayList(bs.getBewegungen(kontonr)); - ArrayList dates = new ArrayList(bs.getDates(kontonr)); - String inhaber = bs.getInhaber(kontonr); - - System.out.println("-----------------------------------------------"); - System.out.println("Datum:\t\tInhaber:\t\tBetrag:"); System.out.println(); - for (int i=0; i