From fd51dcf32a3b2f4af87d63f6aab73d5486d569f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20H=C3=B6rner?= <3012330@stud.hs-mannheim.de> Date: Tue, 19 Dec 2023 14:34:31 +0100 Subject: [PATCH] =?UTF-8?q?Funktionierendes=20Men=C3=BC=20mit:=20Konto=20e?= =?UTF-8?q?rstellen=20ein/aus=20Zahlung=20und=20ausgabe=20Kontostand?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 29 ++++++++++++ .idea/.gitignore | 8 ++++ .idea/misc.xml | 6 +++ .idea/modules.xml | 8 ++++ .idea/vcs.xml | 6 +++ eigenebank.iml | 11 +++++ src/Bank.java | 68 ++++++++++++++++++++++++++++ src/BankUI.java | 107 +++++++++++++++++++++++++++++++++++++++++++++ src/Bankkonto.java | 43 ++++++++++++++++++ src/Main.java | 17 +++++++ 10 files changed, 303 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 eigenebank.iml create mode 100644 src/Bank.java create mode 100644 src/BankUI.java create mode 100644 src/Bankkonto.java create mode 100644 src/Main.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..6f29fee --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..f2fa516 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/eigenebank.iml b/eigenebank.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/eigenebank.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Bank.java b/src/Bank.java new file mode 100644 index 0000000..6cfe9a0 --- /dev/null +++ b/src/Bank.java @@ -0,0 +1,68 @@ +import java.util.ArrayList; + +public class Bank { + private String name; + private static ArrayList kontenListe = new ArrayList<>(); + + public Bank(String name){ + this.kontenListe = new ArrayList<>(); + this.name = name; + } + + public static boolean bankkontoVorhanden(int kontoNr) { + Bankkonto bk = bankkontofinden(kontoNr); + if (bk != null) { + return true; + } + return false; + } + + public int kontoAnlegen(String inhaber){ + Bankkonto bk = new Bankkonto(inhaber); + kontenListe.add(bk); + + return bk.getKontonummer(); + } + + public String getName() { + return this.name; + } + + public boolean geldeinzahlen(int kontonummer, double betrag) { + + if (betrag > 0) { + Bankkonto bk = bankkontofinden(kontonummer); + if(bk != null){ + bk.geldEinzahlen(betrag); + return true; + } + } + + return false; + } + + private static Bankkonto bankkontofinden(int kontonummer) { + for (int i = 0; i < kontenListe.size(); i++) { + if (kontenListe.get(i).getKontonummer() == kontonummer) { + return kontenListe.get(i); + } + } + return null; + } + + public double kontostandausgeben(int kontonummer) { + Bankkonto bk = bankkontofinden(kontonummer); + return bk.kontostand; + } + + public boolean geldauszahlen(int kontonummer, double betrag) { + Bankkonto bk = bankkontofinden(kontonummer); + + if (bk.kontostand >= betrag) { + bk.geldAuszahlen(betrag); + return true; + } + + return false; + } +} diff --git a/src/BankUI.java b/src/BankUI.java new file mode 100644 index 0000000..ed31473 --- /dev/null +++ b/src/BankUI.java @@ -0,0 +1,107 @@ +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(); + + hauptmenue(); + } + + private static void hauptmenue() { + System.out.println("Verfügbare Funktionalität: "); + System.out.println("1) Konto anlegen"); + System.out.println("2) Geld einzahlen"); + System.out.println("3) Geld auszahlen"); + System.out.println("4) Kontostand ausgeben"); + System.out.println("9) Programm beenden"); + + int eingabe; + do { + System.out.println(); + System.out.print("Eingabe > "); + eingabe = kb.nextInt(); + + switch (eingabe) { + case 1 -> kontoAnlegenScreen(); + case 2 -> geldEinzahlenScreen(); + case 3 -> geldAuszahlenScreen(); + case 4 -> kontostandAusgebenScreen(); + case 5 -> System.out.println(eingabe); + case 6 -> System.out.println(eingabe); + case 7 -> System.out.println(eingabe); + case 8 -> System.out.println(eingabe); + case 9 -> aufWiedersehen(); + default -> System.out.println("Fehler bei Eingabe! Versuchen Sie es erneut."); + } + } while (eingabe != 9); + } + + private static void kontostandAusgebenScreen() { + int kontonummer = kontonummerAbfrage(); + + if (Bank.bankkontoVorhanden(kontonummer)) { + System.out.println("Sie haben " +bank.kontostandausgeben(kontonummer)+ "€ auf dem Konto"); + } else { + System.out.println("Konto mit Kontonummer: " +kontonummer+ " konnte nicht gefunden werden"); + } + } + + private static void geldAuszahlenScreen() { + int kontonummer = kontonummerAbfrage(); + if (Bank.bankkontoVorhanden(kontonummer)) { + System.out.print("Betrag den sie auszahlen wollen: "); + double betrag = kb.nextInt(); + if (bank.geldauszahlen(kontonummer, betrag)) { + System.out.println("Es wurden "+betrag+ "€ aus dem Konto ausgezahlt."); + } else { + System.out.println("Fehler - Es wurde kein Geld ausgezahlt!"); + } + } else { + System.out.println("Konto mit Kontonummer: " +kontonummer+ " konnte nicht gefunden werden"); + } + } + + private static void geldEinzahlenScreen() { + System.out.println("Geldeinzahlen"); + int kontonummer = kontonummerAbfrage(); + System.out.print("Betrag den sie einzahlen wollen: "); + double betrag = kb.nextDouble(); + if (bank.geldeinzahlen(kontonummer, betrag)) { + System.out.println("Es wurden "+betrag+ "€ in das Konto eingezahlt."); + } else { + System.out.println("Fehler - Es wurde kein Geld eingezahlt!"); + } + } + + private static void cls() { + for (int i = 0; i < 40; i++) { + System.out.println(); + } + } + + private static int kontonummerAbfrage() { + System.out.print("Bitte Kontonummer angeben: "); + return kb.nextInt(); + } + + private static void aufWiedersehen() { + System.out.println("Die " + bank.getName() + " verabschiedet sich."); + } + + private static void kontoAnlegenScreen() { + System.out.print("Bitte Namen des künftigen Inhabers angeben: "); + + String inhaber = kb.next(); + + int kontonummer = bank.kontoAnlegen(inhaber); + System.out.println("Konto mit der Kontonummer: " +kontonummer+ " wurde angelegt!"); + } + + public static void willkommen(){ + System.out.println("Willkommen bei der " + bank.getName() + "!"); + } +} diff --git a/src/Bankkonto.java b/src/Bankkonto.java new file mode 100644 index 0000000..097b400 --- /dev/null +++ b/src/Bankkonto.java @@ -0,0 +1,43 @@ +public class Bankkonto { + String name; + int kontonummer; + double kontostand; + + static int kontozaehler = (int) (Math.random()*10000+1000); + + public Bankkonto(String name){ + this.name = name; + this.kontostand = 0.0; + + this.kontonummer = kontozaehler++; + } + + public double geldEinzahlen(double betrag){ + kontostand += betrag; + + return kontostand; + } + + public double geldAuszahlen(double betrag){ + kontostand -= betrag; + + return kontostand; + } + + public double getKontostand() { + return kontostand; + } + + public String getName() { + return name; + } + + public int getKontonummer() { + return kontonummer; + } + + @Override + public String toString() { + return "Name: " +name+ " Kontostand: " +kontostand+ " Konto Nummer: " +kontonummer; + } +} diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..148a9e8 --- /dev/null +++ b/src/Main.java @@ -0,0 +1,17 @@ +// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`, +// then press Enter. You can now see whitespace characters in your code. +public class Main { + public static void main(String[] args) { + // Press Alt+Eingabe with your caret at the highlighted text to see how + // IntelliJ IDEA suggests fixing it. + System.out.printf("Hello and welcome!"); + + // Press Umschalt+F10 or click the green arrow button in the gutter to run the code. + for (int i = 1; i <= 5; i++) { + + // Press Umschalt+F9 to start debugging your code. We have set one breakpoint + // for you, but you can always add more by pressing Strg+F8. + System.out.println("i = " + i); + } + } +} \ No newline at end of file