forked from hummel/BankSystemWS23
Compare commits
3 Commits
Author | SHA1 | Date |
---|---|---|
Oliver Hummel | e10a3ca82a | |
Oliver Hummel | 9d4a7aca59 | |
Oliver Hummel | 353797a7a2 |
|
@ -1,5 +1,11 @@
|
|||
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;
|
||||
|
||||
|
@ -17,12 +23,27 @@ public class Bank implements Serializable {
|
|||
kontenliste.add(bk);
|
||||
|
||||
// Speichern Methode 2: geänderte Daten speichern
|
||||
saveBankData(); // bzw. der Einfachheit halber: alle Daten ;-)
|
||||
|
||||
return bk.getKontonummer();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
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) {
|
||||
Bankkonto bk = kontoFinden(kontonummer);
|
||||
|
@ -40,44 +61,34 @@ public class Bank implements Serializable {
|
|||
if (bk.getKontonummer() == kontonummer)
|
||||
return bk;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//public ArrayList<Bankkonto> getKontenListe() {
|
||||
public String[] getKontenListe() {
|
||||
//kontendaten ist ein sog. DTO = Data Transfer Object
|
||||
String kontendaten[] = new String[kontenliste.size()];
|
||||
|
||||
for (int i = 0; i < kontendaten.length; i++) {
|
||||
kontendaten[i] = kontenliste.get(i).toString();
|
||||
// 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();
|
||||
}
|
||||
|
||||
return kontendaten;
|
||||
}
|
||||
|
||||
public String getBetrag(int kontonummer) {
|
||||
Bankkonto bk = kontoFinden(kontonummer);
|
||||
if (bk != null) {
|
||||
return ""+bk.getKontostand();
|
||||
|
||||
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 "Fehler bei Kontonummer eingabe";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Bank{" +
|
||||
"name='" + name + '\'' +
|
||||
", kontenliste=" + kontenliste +
|
||||
'}';
|
||||
}
|
||||
|
||||
public boolean geldAuszahlen(int kontonummer, double betrag) {
|
||||
Bankkonto bk = kontoFinden(kontonummer);
|
||||
|
||||
if (bk != null) {
|
||||
return bk.geldAuszahlen(betrag);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
return new Bank("Spaßkasse");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,10 +3,12 @@ package bank;
|
|||
import java.util.Scanner;
|
||||
|
||||
public class BankUI {
|
||||
private static Bank bank = new Bank("Spaßkasse");
|
||||
private static Bank bank;
|
||||
private static Scanner kb = new Scanner(System.in);
|
||||
|
||||
public static void main(String[] args) {
|
||||
bank = new Bank("Spaßkasse"); //Bank.loadBankData();
|
||||
|
||||
willkommen();
|
||||
hauptmenü();
|
||||
}
|
||||
|
@ -22,10 +24,7 @@ public class BankUI {
|
|||
System.out.println("Aufgabe auswählen:");
|
||||
System.out.println("1) Konto anlegen");
|
||||
System.out.println("2) Geld einzahlen");
|
||||
System.out.println("3. Geld aiszahlen");
|
||||
System.out.println("4. Konto Betrag anzeigen");
|
||||
System.out.println("-");
|
||||
System.out.println("8. Konten Liste anzeigen");
|
||||
System.out.println("3) Kontenliste anzeigen");
|
||||
System.out.println("9) Programm beenden");
|
||||
|
||||
System.out.print("Eingabe > ");
|
||||
|
@ -35,9 +34,7 @@ public class BankUI {
|
|||
switch (eingabe) {
|
||||
case 1 -> kontoAnlegenScreen();
|
||||
case 2 -> geldEinzahlenScreen();
|
||||
case 3 -> geldAuszahlenScreen();
|
||||
case 4 -> kontoBetraganzeigen();
|
||||
case 8 -> kontenListeanzeigen();
|
||||
case 3 -> kontenlisteAnzeigenScreen();
|
||||
case 9 -> aufWiedersehenScreen();
|
||||
}
|
||||
|
||||
|
@ -45,32 +42,6 @@ public class BankUI {
|
|||
} while(true);
|
||||
}
|
||||
|
||||
private static void kontoBetraganzeigen() {
|
||||
System.out.print("Bitte Kontonummer eingeben: ");
|
||||
int kontonummer = kb.nextInt();
|
||||
|
||||
System.out.println("Sie haben "+bank.getBetrag(kontonummer)+"€ auf Ihrem Konto");
|
||||
}
|
||||
|
||||
private static void geldAuszahlenScreen() {
|
||||
System.out.print("Bitte Kontonummer eingeben: ");
|
||||
int kontonummer = kb.nextInt();
|
||||
|
||||
System.out.print("Bitte Betrag eingeben: ");
|
||||
double betrag = kb.nextDouble();
|
||||
|
||||
boolean erg = bank.geldAuszahlen(kontonummer, betrag);
|
||||
System.out.println("Geld auszahlen " + (erg?"": "nicht ") + "erfolgreich.");
|
||||
}
|
||||
|
||||
private static void kontenListeanzeigen() {
|
||||
System.out.println("Hier sind die Konten: ");
|
||||
|
||||
for (String b:bank.getKontenListe()) {
|
||||
System.out.println(b);
|
||||
}
|
||||
}
|
||||
|
||||
private static void kontoAnlegenScreen() {
|
||||
System.out.print("Bitte Name des künftigen Inhabers angeben: ");
|
||||
String inhaber = kb.next();
|
||||
|
@ -89,6 +60,14 @@ public class BankUI {
|
|||
boolean erg = bank.geldEinzahlen(kontonummer, betrag);
|
||||
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() {
|
||||
System.out.println("Danke für Ihren Besuch und auf baldiges Wiedersehen!");
|
||||
|
|
|
@ -12,13 +12,12 @@ public class Bankkonto implements Serializable {
|
|||
private double kontostand;
|
||||
|
||||
private static int kontozähler = 0;
|
||||
private static int kontostartzaehler = (int) (Math.random()*1000);
|
||||
|
||||
public Bankkonto(String name) {
|
||||
this.name = name;
|
||||
|
||||
this.kontostand = 0;
|
||||
this.kontonummer = kontostartzaehler + kontozähler++;
|
||||
this.kontonummer = 100000 + kontozähler++;
|
||||
}
|
||||
|
||||
// sog. Getter-Methoden
|
||||
|
@ -37,14 +36,12 @@ public class Bankkonto implements Serializable {
|
|||
return kontostand;
|
||||
}
|
||||
|
||||
// TODO
|
||||
// Geld soll nur ausgezahlt werden, wenn das Konto
|
||||
// auch gedeckt ist
|
||||
public boolean geldAuszahlen(double betrag) {
|
||||
if (kontostand >= betrag) {
|
||||
if (kontostand - betrag >= 0) {
|
||||
kontostand -= betrag;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -60,10 +57,7 @@ public class Bankkonto implements Serializable {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Bankkonto{" +
|
||||
"name='" + name + '\'' +
|
||||
", kontonummer=" + kontonummer +
|
||||
", kontostand=" + kontostand +
|
||||
'}';
|
||||
return "Bankkonto [name=" + name + ", kontonummer=" + kontonummer + "]";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,19 +1,18 @@
|
|||
package bank;
|
||||
|
||||
public class Girokonto extends Bankkonto{
|
||||
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;
|
||||
}
|
||||
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