From d4c17f9e65fc428c8cc6b4a5c1ef556f263f79f4 Mon Sep 17 00:00:00 2001
From: 2211320 <2211320@stud.hs-mannheim.de>
Date: Sat, 15 Oct 2022 17:47:51 +0200
Subject: [PATCH] =?UTF-8?q?alles=20eingef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Bank-Beispiel/.project | 11 +++
.../de/hs_mannheim/informatik/bank/Main.java | 6 +-
.../informatik/bank/domain/Bank.java | 7 +-
.../informatik/bank/domain/Konto.java | 49 +++++++++-
.../informatik/bank/facade/Banksystem.java | 55 ++++++++++-
.../bank/persistence/ObjectStreams.java | 37 ++++++++
.../de/hs_mannheim/informatik/bank/ui/UI.java | 92 ++++++++++++++++++-
README.md | 3 -
8 files changed, 250 insertions(+), 10 deletions(-)
create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/persistence/ObjectStreams.java
delete mode 100644 README.md
diff --git a/Bank-Beispiel/.project b/Bank-Beispiel/.project
index 49c2c92..caa1143 100644
--- a/Bank-Beispiel/.project
+++ b/Bank-Beispiel/.project
@@ -14,4 +14,15 @@
org.eclipse.jdt.core.javanature
+
+
+ 1665504364588
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java
index b075558..04d51d7 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java
@@ -1,12 +1,16 @@
package de.hs_mannheim.informatik.bank;
+import java.io.Serializable;
+
import de.hs_mannheim.informatik.bank.facade.Banksystem;
import de.hs_mannheim.informatik.bank.ui.UI;
-public class Main {
+public class Main implements Serializable {
public static void main(String[] args) {
+
Banksystem bs = new Banksystem("Spaßkasse Mannheim");
+ @SuppressWarnings("unused")
UI ui = new UI(bs);
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java
index 0b66d3d..dfb98ea 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java
@@ -1,9 +1,10 @@
package de.hs_mannheim.informatik.bank.domain;
+import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
-public class Bank {
+public class Bank implements Serializable {
private String name;
private HashMap konten = new HashMap<>();
@@ -22,5 +23,9 @@ public class Bank {
public Collection getKontenliste() {
return konten.values();
}
+
+ public Konto getKonto(int nummer) {
+ return konten.get(nummer);
+ }
}
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 654d503..b1e26e9 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,11 +1,24 @@
package de.hs_mannheim.informatik.bank.domain;
-public class Konto {
+import java.io.Serializable;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
+public class Konto implements Serializable {
private static int kontozähler = 0;
private int nummer;
private long stand = 0;
private String inhaber;
+ private ArrayList kontoauszug = new ArrayList();
+
+ Date date = Calendar.getInstance().getTime();
+ DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
+ String datum = dateFormat.format(date);
+
public Konto(String inhaber) {
nummer = 1000 + kontozähler++;
@@ -16,9 +29,41 @@ public class Konto {
return nummer;
}
+ public long getKontostand() {
+ return stand;
+ }
+
+ public void setEinzahlung(long wert) {
+ stand += wert;
+ kontoauszugAdd(wert);
+ }
+
+ public void setAuszahlung(long wert) {
+ stand -= wert;
+ kontoauszugAdd(wert * -1);
+ }
+
+ public void kontoauszugAdd(long wert) {
+ String wertNeu = Long.toString(wert);
+ if(wert >= 0) {
+ wertNeu = "+" + wert;
+ }
+ kontoauszug.add(wertNeu);
+ kontoauszug.add(datum);
+ kontoauszug.add(this.inhaber); //noch umändern zum "richtigen" Auftraggeber
+ }
+
+ public int kontoauszugLänge() {
+ return kontoauszug.size();
+ }
+
+ public String kontoauszugInhalt(int zähler) {
+ return kontoauszug.get(zähler);
+ }
+
@Override
public String toString() {
- return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]";
+ return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + ", stand=" + stand + "]";
}
}
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 821c2a9..98a8366 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
@@ -1,11 +1,12 @@
package de.hs_mannheim.informatik.bank.facade;
+import java.io.Serializable;
import java.util.Collection;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Konto;
-public class Banksystem {
+public class Banksystem implements Serializable {
private Bank bank;
public Banksystem(String bankname) {
@@ -34,4 +35,56 @@ public class Banksystem {
public String getBankname() {
return bank.getName();
}
+
+ // public Konto getKonto(int nummer) {
+ // Collection konten = bank.getKontenliste();
+
+ // for(Konto k : konten){
+ // if(k.getKontonummer() == nummer) return k;
+ // }
+
+ // return null;
+ // }
+
+ public boolean existiertKonto(int nummer) {
+ Konto k = bank.getKonto(nummer);
+
+ if(k != null) {
+ return true;
+ }
+ return false;
+ }
+
+ public long kontostandAnzeigen(int nummer) {
+ Konto k = bank.getKonto(nummer);
+ long kontostand = k.getKontostand();
+ return kontostand;
+ }
+
+ public long geldEinzahlen(int nummer, long geld) {
+ Konto k = bank.getKonto(nummer);
+ k.setEinzahlung(geld);
+ long kontostand = k.getKontostand();
+ return kontostand;
+ }
+
+ public boolean geldAuszahlen(int nummer, long geld) {
+ Konto k = bank.getKonto(nummer);
+ // long betrag = k.getKontostand() - geld;
+ // if(betrag < -5000) {
+ // return false;
+ // }
+ k.setAuszahlung(geld);
+ return true;
+ }
+
+ public String[] kontoauszugAnzeigen(int nummer) {
+ Konto k = bank.getKonto(nummer);
+ String[] kontoauszugListe = new String[k.kontoauszugLänge()];
+
+ for(int i = 0; i < k.kontoauszugLänge(); i++) {
+ kontoauszugListe[i] = k.kontoauszugInhalt(i);
+ }
+ return kontoauszugListe;
+ }
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/persistence/ObjectStreams.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/persistence/ObjectStreams.java
new file mode 100644
index 0000000..f8b348f
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/persistence/ObjectStreams.java
@@ -0,0 +1,37 @@
+package de.hs_mannheim.informatik.bank.persistence;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+public class ObjectStreams {
+
+ public static void main(String[] args) throws Exception {
+ // Daten speichern
+ String s = "Die Antwort auf alles.";
+ Integer i = 42;
+ int[] arr = {0,8, 15};
+
+ ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.ser"));
+
+ oos.writeObject(s);
+ oos.writeObject(i);
+ oos.writeByte(21);
+ oos.writeObject(arr);
+
+ oos.close();
+
+ // ... und wieder einlesen
+ ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.ser"));
+
+ System.out.println((String)ois.readObject());
+ System.out.println((Integer)ois.readObject());
+ System.out.println(ois.readByte());
+ System.out.println( ((int[])ois.readObject())[1] );
+
+ ois.close();
+
+ }
+
+}
\ No newline at end of file
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 d6eb6e9..c01f6e8 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
@@ -1,10 +1,11 @@
package de.hs_mannheim.informatik.bank.ui;
+import java.io.Serializable;
import java.util.Scanner;
import de.hs_mannheim.informatik.bank.facade.Banksystem;
-public class UI {
+public class UI implements Serializable {
private Banksystem bs;
Scanner sc = new Scanner(System.in);
@@ -23,6 +24,10 @@ public class UI {
System.out.println("Hauptmenü");
System.out.println("1 -> Konten anzeigen");
System.out.println("2 -> Konto anlegen");
+ System.out.println("3 -> Geld einzahlen");
+ System.out.println("4 -> Geld auszahlen");
+ System.out.println("5 -> Kontostand anzeigen");
+ System.out.println("6 -> Kontoauszug anzeigen");
System.out.println("9 -> Beenden");
System.out.println();
@@ -33,6 +38,10 @@ public class UI {
switch(input) {
case 1: kontenAnzeigen(); break;
case 2: kontoAnlegen(); break;
+ case 3: geldEinzahlen(); break;
+ case 4: geldAuszahlen(); break;
+ case 5: kontostandAnzeigen(); break;
+ case 6: kontoauszugAnzeigen(); break;
case 9: break mainloop;
}
}
@@ -54,11 +63,90 @@ public class UI {
}
private void kontoAnlegen() {
- System.out.println("Bitte den Namen des Kontoinhabers angeben: ");
+ System.out.print("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.");
}
+ private void geldEinzahlen() {
+ System.out.print("Bitte geben Sie die Kontonummer ein: ");
+ int nummer = Integer.parseInt(sc.nextLine());
+
+ boolean kontoExistiert = bs.existiertKonto(nummer);
+ if(kontoExistiert == false) {
+ System.out.println("Dieses Konto existiert nicht.");
+ return;
+ }
+ System.out.print("Bitte geben Sie jetzt den Geldbetrag ein: ");
+ long geld = Long.parseLong(sc.nextLine());
+ long kontostand = bs.geldEinzahlen(nummer, geld);
+ System.out.println("Ihr aktueller Kontostand beträgt: " + kontostand);
+ }
+
+ private void kontostandAnzeigen() {
+ System.out.print("Bitte geben Sie die Kontonummer ein: ");
+ int nummer = Integer.parseInt(sc.nextLine());
+
+ boolean kontoExistiert = bs.existiertKonto(nummer);
+ if(kontoExistiert == false) {
+ System.out.println("Dieses Konto existiert nicht.");
+ return;
+ }
+ long kontostand = bs.kontostandAnzeigen(nummer);
+ System.out.println("Ihr aktueller Kontostand beträgt: " + kontostand);
+ }
+
+ private void geldAuszahlen() {
+ System.out.print("Bitte geben Sie die Kontonummer ein: ");
+ int nummer = Integer.parseInt(sc.nextLine());
+
+ boolean kontoExistiert = bs.existiertKonto(nummer);
+ if(kontoExistiert == false) {
+ System.out.println("Dieses Konto existiert nicht.");
+ return;
+ }
+ long kontostand = bs.kontostandAnzeigen(nummer);
+ System.out.println("Ihr aktueller Kontostand beträgt: " + kontostand + "\n");
+ System.out.print("Bitte geben Sie jetzt den auszuzahlenden Geldbetrag ein: ");
+ long geld = Long.parseLong(sc.nextLine());
+
+ boolean auszahlenMöglich = bs.geldAuszahlen(nummer, geld);
+ if(auszahlenMöglich == false) {
+ System.out.println("So viel Geld haben Sie nicht auf Ihrem Konto. Vorgang abgebrochen.");
+ return;
+ }
+ long kontostandNeu = bs.kontostandAnzeigen(nummer);
+ System.out.println("Ihr aktueller Kontostand beträgt: " + kontostandNeu);
+ System.out.println("Ihr ausgezahltes Geld beträgt: " + geld);
+ }
+
+ private void kontoauszugAnzeigen() {
+ System.out.print("Bitte geben Sie die Kontonummer ein: ");
+ int nummer = Integer.parseInt(sc.nextLine());
+
+ boolean kontoExistiert = bs.existiertKonto(nummer);
+ if(kontoExistiert == false) {
+ System.out.println("Dieses Konto existiert nicht.");
+ return;
+ }
+
+ String[] kontenauszugInhalt = bs.kontoauszugAnzeigen(nummer);
+ if (kontenauszugInhalt.length > 0) {
+ System.out.println("Folgende Kontoauszüge sind aktuell verfügbar: \n");
+ int j = 1;
+ for(int i = 0; i < kontenauszugInhalt.length; i++) {
+ System.out.print("Auszug " + j + ": " + kontenauszugInhalt[i]);
+ i++;
+ System.out.print(" vom " + kontenauszugInhalt[i]);
+ i++;
+ System.out.println(" von " + kontenauszugInhalt[i]);
+ j++;
+ }
+ } else {
+ System.out.println("Für dieses Konto gibt es noch keine Kontoauszüge.");
+ }
+ }
+
}
diff --git a/README.md b/README.md
deleted file mode 100644
index 2003d0a..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Bank-System
-
-Beispielsystem für PR2 im WS22/23.
\ No newline at end of file