forked from hummel/BankSystemWS23
Initial Commit
parent
9806fbd7b2
commit
1b18901fb2
|
@ -0,0 +1,46 @@
|
||||||
|
package bank;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Bank {
|
||||||
|
private String name;
|
||||||
|
private ArrayList<Bankkonto> kontenliste;
|
||||||
|
|
||||||
|
public Bank(String name) {
|
||||||
|
this.kontenliste = new ArrayList<>();
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int kontoAnlegen(String inhaber) {
|
||||||
|
Bankkonto bk = new Bankkonto(inhaber);
|
||||||
|
kontenliste.add(bk);
|
||||||
|
|
||||||
|
// Speichern Methode 2: geänderte Daten speichern
|
||||||
|
return bk.getKontonummer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean geldEinzahlen(int kontonummer, double betrag) {
|
||||||
|
Bankkonto bk = kontoFinden(kontonummer);
|
||||||
|
|
||||||
|
if (bk != null) {
|
||||||
|
bk.geldEinzahlen(betrag);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Bankkonto kontoFinden(int kontonummer) {
|
||||||
|
for (Bankkonto bk : kontenliste) {
|
||||||
|
if (bk.getKontonummer() == kontonummer)
|
||||||
|
return bk;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
package bank;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class BankUI {
|
||||||
|
private static Bank bank = new Bank("Spaßkasse");
|
||||||
|
private static Scanner kb = new Scanner(System.in);
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
willkommen();
|
||||||
|
|
||||||
|
hauptmenü();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void willkommen() {
|
||||||
|
System.out.println("Willkommen bei der " + bank.getName() + "!");
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void hauptmenü() {
|
||||||
|
do {
|
||||||
|
System.out.println("Aufgabe auswählen:");
|
||||||
|
System.out.println("1) Konto anlegen");
|
||||||
|
System.out.println("2) Geld einzahlen");
|
||||||
|
System.out.println("9) Programm beenden");
|
||||||
|
|
||||||
|
System.out.print("Eingabe > ");
|
||||||
|
|
||||||
|
int eingabe = kb.nextInt();
|
||||||
|
|
||||||
|
switch (eingabe) {
|
||||||
|
case 1 -> kontoAnlegenScreen();
|
||||||
|
case 2 -> geldEinzahlenScreen();
|
||||||
|
case 9 -> aufWiedersehenScreen();
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
} while(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void kontoAnlegenScreen() {
|
||||||
|
System.out.print("Bitte Name des künftigen Inhabers angeben: ");
|
||||||
|
String inhaber = kb.next();
|
||||||
|
|
||||||
|
int kontonummer = bank.kontoAnlegen(inhaber);
|
||||||
|
System.out.println("Konto mit der Nummer " + kontonummer + " angelegt.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void geldEinzahlenScreen() {
|
||||||
|
System.out.print("Bitte Kontonummer eingeben: ");
|
||||||
|
int kontonummer = kb.nextInt();
|
||||||
|
|
||||||
|
System.out.print("Bitte Betrag eingeben: ");
|
||||||
|
double betrag = kb.nextDouble();
|
||||||
|
|
||||||
|
boolean erg = bank.geldEinzahlen(kontonummer, betrag);
|
||||||
|
System.out.println("Geld einzahlen " + (erg?"": "nicht ") + "erfolgreich.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void aufWiedersehenScreen() {
|
||||||
|
System.out.println("Danke für Ihren Besuch und auf Wiedersehen!");
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
package bank;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Bankkonto {
|
||||||
|
// sog. Geheimnisprinzip, Attribute bleiben
|
||||||
|
// privat, Zugriff erfolgt nur über Methoden
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private int kontonummer;
|
||||||
|
private double kontostand;
|
||||||
|
|
||||||
|
private static int kontozähler = 0;
|
||||||
|
|
||||||
|
public Bankkonto(String name) {
|
||||||
|
this.name = name;
|
||||||
|
|
||||||
|
this.kontostand = 0;
|
||||||
|
this.kontonummer = 100000 + kontozähler++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// sog. Getter-Methoden
|
||||||
|
public double getKontostand() {
|
||||||
|
return this.kontostand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getKontonummer() {
|
||||||
|
return this.kontonummer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double geldEinzahlen(double betrag) {
|
||||||
|
kontostand += betrag;
|
||||||
|
|
||||||
|
// Speichern Methode 1: Objekt speichern -> heute nicht gängig
|
||||||
|
return kontostand;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
// Geld soll nur ausgezahlt werden, wenn das Konto
|
||||||
|
// auch gedeckt ist
|
||||||
|
public double geldAuszahlen(double betrag) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
// Alle Ein- und Auszahlungen sollen mit einem
|
||||||
|
// Timestamp und dem jeweiligen Kontostand aufgelistet werden.
|
||||||
|
// Timestamp über: new Date().toString();
|
||||||
|
// Perspektivisch würden wir hier besser eine eigene
|
||||||
|
// Klasse Kontobewegungen statt String verwenden
|
||||||
|
public ArrayList<String> getKontobewegungen() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue