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