From 1b18901fb2c9b91d7308e5212f14404ae4378a5b Mon Sep 17 00:00:00 2001 From: Oliver Hummel Date: Tue, 19 Dec 2023 13:57:55 +0100 Subject: [PATCH] Initial Commit --- Banksystem/src/bank/Bank.java | 46 +++++++++++++++++++++ Banksystem/src/bank/BankUI.java | 65 ++++++++++++++++++++++++++++++ Banksystem/src/bank/Bankkonto.java | 55 +++++++++++++++++++++++++ 3 files changed, 166 insertions(+) create mode 100644 Banksystem/src/bank/Bank.java create mode 100644 Banksystem/src/bank/BankUI.java create mode 100644 Banksystem/src/bank/Bankkonto.java diff --git a/Banksystem/src/bank/Bank.java b/Banksystem/src/bank/Bank.java new file mode 100644 index 0000000..ae0ae92 --- /dev/null +++ b/Banksystem/src/bank/Bank.java @@ -0,0 +1,46 @@ +package bank; + +import java.util.ArrayList; + +public class Bank { + private String name; + private ArrayList 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; + } + +} diff --git a/Banksystem/src/bank/BankUI.java b/Banksystem/src/bank/BankUI.java new file mode 100644 index 0000000..f8c994e --- /dev/null +++ b/Banksystem/src/bank/BankUI.java @@ -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); + } + +} diff --git a/Banksystem/src/bank/Bankkonto.java b/Banksystem/src/bank/Bankkonto.java new file mode 100644 index 0000000..55f7231 --- /dev/null +++ b/Banksystem/src/bank/Bankkonto.java @@ -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 getKontobewegungen() { + return null; + } + +}