forked from hummel/BankSystemWS23
Compare commits
5 Commits
Author | SHA1 | Date |
---|---|---|
Oliver Hummel | e10a3ca82a | |
Oliver Hummel | 9d4a7aca59 | |
Oliver Hummel | 353797a7a2 | |
Oliver Hummel | bc3184ce5d | |
Oliver Hummel | 6b7ddef5be |
|
@ -1,8 +1,15 @@
|
||||||
package bank;
|
package bank;
|
||||||
|
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.ObjectInputStream;
|
||||||
|
import java.io.ObjectOutputStream;
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Bank {
|
public class Bank implements Serializable {
|
||||||
private String name;
|
private String name;
|
||||||
private ArrayList<Bankkonto> kontenliste;
|
private ArrayList<Bankkonto> kontenliste;
|
||||||
|
|
||||||
|
@ -16,6 +23,8 @@ public class Bank {
|
||||||
kontenliste.add(bk);
|
kontenliste.add(bk);
|
||||||
|
|
||||||
// Speichern Methode 2: geänderte Daten speichern
|
// Speichern Methode 2: geänderte Daten speichern
|
||||||
|
saveBankData(); // bzw. der Einfachheit halber: alle Daten ;-)
|
||||||
|
|
||||||
return bk.getKontonummer();
|
return bk.getKontonummer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +32,19 @@ public class Bank {
|
||||||
return this.name;
|
return this.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// public ArrayList<Bankkonto> getKontenliste() {
|
||||||
|
public String[] getKontendaten() {
|
||||||
|
// kontendaten ist ein sog. DTO = Data Transfer Object
|
||||||
|
String[] kontendaten = new String[kontenliste.size()];
|
||||||
|
|
||||||
|
for (int i = 0; i < kontenliste.size(); i++) {
|
||||||
|
kontendaten[i] = kontenliste.get(i).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return kontendaten;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public boolean geldEinzahlen(int kontonummer, double betrag) {
|
public boolean geldEinzahlen(int kontonummer, double betrag) {
|
||||||
Bankkonto bk = kontoFinden(kontonummer);
|
Bankkonto bk = kontoFinden(kontonummer);
|
||||||
|
|
||||||
|
@ -43,4 +65,30 @@ public class Bank {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Die folgenden Persistenz-Methoden würde man in der Praxis in eine eigene
|
||||||
|
// Klasse auslagern.
|
||||||
|
private void saveBankData() {
|
||||||
|
ObjectOutputStream oos;
|
||||||
|
try {
|
||||||
|
oos = new ObjectOutputStream(new FileOutputStream("BankData.ser"));
|
||||||
|
oos.writeObject(this);
|
||||||
|
oos.close();
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bank loadBankData() {
|
||||||
|
try {
|
||||||
|
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("BankData.ser"));
|
||||||
|
return (Bank) ois.readObject();
|
||||||
|
} catch (IOException | ClassNotFoundException e) {
|
||||||
|
System.err.println("Keine Daten gespeichert, initialisiere alle Daten neu.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Bank("Spaßkasse");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,13 @@ package bank;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class BankUI {
|
public class BankUI {
|
||||||
private static Bank bank = new Bank("Spaßkasse");
|
private static Bank bank;
|
||||||
private static Scanner kb = new Scanner(System.in);
|
private static Scanner kb = new Scanner(System.in);
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
willkommen();
|
bank = new Bank("Spaßkasse"); //Bank.loadBankData();
|
||||||
|
|
||||||
|
willkommen();
|
||||||
hauptmenü();
|
hauptmenü();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,6 +24,7 @@ public class BankUI {
|
||||||
System.out.println("Aufgabe auswählen:");
|
System.out.println("Aufgabe auswählen:");
|
||||||
System.out.println("1) Konto anlegen");
|
System.out.println("1) Konto anlegen");
|
||||||
System.out.println("2) Geld einzahlen");
|
System.out.println("2) Geld einzahlen");
|
||||||
|
System.out.println("3) Kontenliste anzeigen");
|
||||||
System.out.println("9) Programm beenden");
|
System.out.println("9) Programm beenden");
|
||||||
|
|
||||||
System.out.print("Eingabe > ");
|
System.out.print("Eingabe > ");
|
||||||
|
@ -32,6 +34,7 @@ public class BankUI {
|
||||||
switch (eingabe) {
|
switch (eingabe) {
|
||||||
case 1 -> kontoAnlegenScreen();
|
case 1 -> kontoAnlegenScreen();
|
||||||
case 2 -> geldEinzahlenScreen();
|
case 2 -> geldEinzahlenScreen();
|
||||||
|
case 3 -> kontenlisteAnzeigenScreen();
|
||||||
case 9 -> aufWiedersehenScreen();
|
case 9 -> aufWiedersehenScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,6 +61,14 @@ public class BankUI {
|
||||||
System.out.println("Geld einzahlen " + (erg?"": "nicht ") + "erfolgreich.");
|
System.out.println("Geld einzahlen " + (erg?"": "nicht ") + "erfolgreich.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void kontenlisteAnzeigenScreen() {
|
||||||
|
System.out.println("Hier sind die Konten:");
|
||||||
|
|
||||||
|
for (String ke : bank.getKontendaten()) {
|
||||||
|
System.out.println(ke.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void aufWiedersehenScreen() {
|
private static void aufWiedersehenScreen() {
|
||||||
System.out.println("Danke für Ihren Besuch und auf baldiges Wiedersehen!");
|
System.out.println("Danke für Ihren Besuch und auf baldiges Wiedersehen!");
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
package bank;
|
package bank;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Bankkonto {
|
public class Bankkonto implements Serializable {
|
||||||
// sog. Geheimnisprinzip, Attribute bleiben
|
// sog. Geheimnisprinzip, Attribute bleiben
|
||||||
// privat, Zugriff erfolgt nur über Methoden
|
// privat, Zugriff erfolgt nur über Methoden
|
||||||
private String name;
|
private String name;
|
||||||
|
@ -35,11 +36,13 @@ public class Bankkonto {
|
||||||
return kontostand;
|
return kontostand;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
public boolean geldAuszahlen(double betrag) {
|
||||||
// Geld soll nur ausgezahlt werden, wenn das Konto
|
if (kontostand - betrag >= 0) {
|
||||||
// auch gedeckt ist
|
kontostand -= betrag;
|
||||||
public double geldAuszahlen(double betrag) {
|
return true;
|
||||||
return -1;
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
|
@ -52,4 +55,9 @@ public class Bankkonto {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Bankkonto [name=" + name + ", kontonummer=" + kontonummer + "]";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package bank;
|
||||||
|
|
||||||
|
public class Girokonto extends Bankkonto {
|
||||||
|
|
||||||
|
public Girokonto(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean überweisen(Bankkonto zielkonto, double betrag) {
|
||||||
|
if (this.geldAuszahlen(betrag)) {
|
||||||
|
zielkonto.geldEinzahlen(betrag);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue