From 8be5af5926879c60ab5642cbd62fc8ce97807ac2 Mon Sep 17 00:00:00 2001 From: User Date: Mon, 24 Oct 2022 00:04:29 +0200 Subject: [PATCH] =?UTF-8?q?Girokonto=20=C3=84nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bank-Beispiel/bank.ser | Bin 0 -> 813 bytes .../de/hs_mannheim/informatik/bank/Main.java | 2 +- .../informatik/bank/domain/Bank.java | 4 +- .../informatik/bank/domain/Girokonto.java | 11 ++- .../informatik/bank/domain/Konto.java | 23 ++++-- .../informatik/bank/domain/Kontobewegung.java | 3 +- .../informatik/bank/facade/Banksystem.java | 23 ++++-- .../de/hs_mannheim/informatik/bank/ui/UI.java | 9 ++- .../informatik/bank/perstance/Datenbank.java | 70 +++++++++++------- Bank-Beispiel/zähler.ser | Bin 0 -> 10 bytes 10 files changed, 97 insertions(+), 48 deletions(-) create mode 100644 Bank-Beispiel/bank.ser create mode 100644 Bank-Beispiel/zähler.ser diff --git a/Bank-Beispiel/bank.ser b/Bank-Beispiel/bank.ser new file mode 100644 index 0000000000000000000000000000000000000000..abe9e31e1e75177187d9834e7716928b48967b7d GIT binary patch literal 813 zcmb7DO=uHQ5T0(bNgHcPQe$bgP`y=QBM2fC{3%kBx)q@wyogS^&)qe*++9do3bmwXEInflX3YG@-QK|)?=xU5K_Q6HS;94n zL>?NJqr>NSSTG=^1IoLnZ#UtYZYwej$@0V8!V*D;7$BA}Rp zrr%wP!v+%%wz{+Xo_>C803QP%H$uDhC|85huLTE@Oefn z%Syk)^cak^vpOpNC;x+ggSD9(bC(;7yF2_9DILp@YcLY%+K@p(DKQ&N2PqB-ru#a` z4_VcY)-bq$#IC67Z(8~~2ntM{opsO)Nb%dBiqadbRVKRE?(ZBrTH7Ai7idqI0Qql) zsi|D?@MiTyLXfQ?mx*R^K= start.getKontostand()) { + start.einzahlen(betrag, "gesendet an " + ziel.getKontonummer()); + ziel.einzahlen(betrag, "empfangen von " + start.getKontonummer()); + return true; + } else + return false; } } 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 8f6af77..0957421 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 @@ -1,8 +1,9 @@ package de.hs_mannheim.informatik.bank.domain; +import java.io.Serializable; import java.util.ArrayList; -public class Konto { +public class Konto implements Serializable { private static int kontozähler = 0; private int nummer; @@ -14,20 +15,28 @@ public class Konto { nummer = 1000 + kontozähler++; this.inhaber = inhaber; } + + public static void ladeKontoZähler(int kontoZähler) { + kontozähler = kontoZähler; + } public int getKontonummer() { return nummer; } - - public void einzahlen(long betrag) { - stand += betrag; - auszüge.add(new Kontobewegung(betrag, inhaber, "eingezahlt")); + + public static int getKontoZähler() { + return kontozähler; } - public void auszahlen(long betrag) { + public void einzahlen(long betrag, String verwendungszweck) { + stand += betrag; + auszüge.add(new Kontobewegung(betrag, inhaber, verwendungszweck)); + } + + public void auszahlen(long betrag, String verwendungszweck) { if (betrag <= stand) { stand -= betrag; - auszüge.add(new Kontobewegung(betrag, inhaber, "abgehoben")); + auszüge.add(new Kontobewegung(betrag, inhaber, verwendungszweck)); } else System.out.println("Kontostand nicht aureichend"); } 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 index e7371d0..2a0c463 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java @@ -1,8 +1,9 @@ package de.hs_mannheim.informatik.bank.domain; +import java.io.Serializable; import java.time.LocalDateTime; -public class Kontobewegung { +public class Kontobewegung implements Serializable { private long betrag; private String inhaber; private LocalDateTime datum; 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 ffd79a5..5059f50 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 @@ -5,12 +5,17 @@ import java.util.Collection; 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 de.mannheim.informatik.bank.perstance.Datenbank; public class Banksystem { private Bank bank; - public Banksystem(String bankname) { - this.bank = new Bank(bankname); + public Banksystem(String bankname) throws Exception { + if (Datenbank.sindDateGespeicher()) { + this.bank = (Bank) Datenbank.laden(); + Konto.ladeKontoZähler(Datenbank.ladeKontoZähler()); + } else + this.bank = new Bank(bankname); } public int kontoAnlegen(String name, int auswahl) { @@ -19,7 +24,7 @@ public class Banksystem { if (auswahl == 1) k = new Konto(name); else - k = new Girokonto(name); + k = new Girokonto(name); // Hier eigentlich Girokonto bank.addKonto(k); @@ -58,13 +63,19 @@ public class Banksystem { return bank.getName(); } - public boolean überweisen(int kontonummer, int empfänger, long betrag, String verwendungszweck) { - Konto start = bank.findeKonto(kontonummer); + public boolean überweisen(int sender, int empfänger, long betrag, String verwendungszweck) { + Konto start = bank.findeKonto(sender); Konto ziel = bank.findeKonto(empfänger); if(start instanceof Girokonto && ziel instanceof Girokonto) { - Girokonto.überweisen(betrag, ziel); + Girokonto.überweisen(betrag, (Girokonto)start, (Girokonto)ziel, verwendungszweck); } return false; } + + public void speichern() throws Exception { + Datenbank.speichern(bank); + Datenbank.speicherZähler(Konto.getKontoZähler()); + } + } 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 6e2798a..57e5f74 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 @@ -2,15 +2,18 @@ package de.hs_mannheim.informatik.bank.ui; import java.util.Scanner; +import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.facade.Banksystem; +import de.mannheim.informatik.bank.perstance.Datenbank; public class UI { private Banksystem bs; Scanner sc = new Scanner(System.in); - public UI(Banksystem bs) { + public UI(Banksystem bs) throws Exception { this.bs = bs; hauptmenu(); + bs.speichern(); } private void hauptmenu() { @@ -110,7 +113,7 @@ public class UI { int kontonummer; long betrag; - try { + try { System.out.print("Kontonummer eingeben: "); kontonummer = Integer.parseInt(sc.nextLine()); System.out.print("Betrag eingeben: "); @@ -157,4 +160,4 @@ public class UI { System.out.println("Fehlerhafte Eingabe"); } } -} +} \ No newline at end of file diff --git a/Bank-Beispiel/src/de/mannheim/informatik/bank/perstance/Datenbank.java b/Bank-Beispiel/src/de/mannheim/informatik/bank/perstance/Datenbank.java index 86e1098..7d4c007 100644 --- a/Bank-Beispiel/src/de/mannheim/informatik/bank/perstance/Datenbank.java +++ b/Bank-Beispiel/src/de/mannheim/informatik/bank/perstance/Datenbank.java @@ -1,25 +1,45 @@ -//package de.mannheim.informatik.bank.perstance; -// -//import de.hs_mannheim.informatik.bank.domain.Bank; -// -//import java.io.*; -// -//public class Datenbank { -// File f = new File("Bank.ser"); -// -// -// public void speichern(Bank bank) throws FileNotFoundException, IOException { -// ObjectOutputStream fileOut; -// fileOut = new ObjectOutputStream(new FileOutputStream(f)); -// fileOut.writeObject(bank); -// } -// -// public void laden(Bank bank) throws FileNotFoundException, IOException { -// ObjectInputStream fileIn; -// fileIn = new ObjectInputStream(new FileInputStream(f)); -// -// -// -// -// } -//} +package de.mannheim.informatik.bank.perstance; + +import de.hs_mannheim.informatik.bank.domain.Bank; + +import java.io.*; + +public class Datenbank { + private static final String saveBank = "bank.ser"; + private static final String saveZähler = "zähler.ser"; + + public static boolean sindDateGespeicher() { + return new File(saveBank).exists(); + } + + public static void speichern(Bank bank) throws Exception { + ObjectOutputStream fileOut; + fileOut = new ObjectOutputStream(new FileOutputStream(saveBank)); + fileOut.writeObject(bank); + fileOut.close(); + } + + public static void speicherZähler(int kontoZähler) throws Exception { + ObjectOutputStream fileOut; + fileOut = new ObjectOutputStream(new FileOutputStream(saveZähler)); + fileOut.writeInt(kontoZähler); + fileOut.close(); + } + + public static Object laden() throws Exception { + ObjectInputStream fileIn; + fileIn = new ObjectInputStream(new FileInputStream(saveBank)); + Object bank = fileIn.readObject(); + fileIn.close(); + + return bank; + } + + public static int ladeKontoZähler() throws Exception { + ObjectInputStream fileIn; + fileIn = new ObjectInputStream(new FileInputStream(saveZähler)); + int kontoZähler = fileIn.readInt(); + fileIn.close(); + return kontoZähler; + } +} diff --git a/Bank-Beispiel/zähler.ser b/Bank-Beispiel/zähler.ser new file mode 100644 index 0000000000000000000000000000000000000000..6725d0f9f87e1d87f28a50cc23c96a1125cd4405 GIT binary patch literal 10 RcmZ4UmVvdLg@J*A2>=or0vrGU literal 0 HcmV?d00001