Java :: Aufgabe #156 :: Lösung #1
2 Lösungen

#156
Programmiere ein kleines Banksystem
Anfänger - Java
von Allocortex
- 17.02.2017 um 11:01 Uhr
Programmiere ein kleines Banksystem!
GUI nicht notwendig. Aber:
Biete mehrere Auswahlmöglichkeiten bezüglich der Erstellung eines neuen Kontos, dem bearbeiten eines existierenden Kontos, dem Löschens eines bestehenden Kontos und dem Ausgeben aller Konten in sortierter Reihenfolge (nach Realgeld, siehe weiter unten)
Konten sollen einen Inhaber samt Namen (ggf. Alter) , einen Kontostand, einen Möglichen Kreditrahmen, eine laufende Kreditsumme und das Realgeld besitzen (Realgeld entspricht Kontostand abzüglich des durch Kredit vorhandenen Geldes).
Verwende Private Variablen, Getter und Setter
Nicht alle Konten dürfen einen Kredit besitzen (erst ab 18!)
Bezüglich der Auswahlmöglichkeiten: Diese sollen per Texteingabe oder Button auswählbar sein, und bei Auswahl vertiefende Fragen stellen (vertierendere Auswahlmöglichkeiten bieten) .. z.B. bei bearbeiten eines Kontos "Welches Konto", dann noch tiefer "Welche Eigenschaft", "Welcher Wert".
Das ganze soll dann wieder zum Ursprung springen und die selben Möglichkeiten bieten --> Solange, bis der Benutzer das Programm durch einen bestimmten Text, ein Zeichen, oder einen Button im GUI beendet.
GUI nicht notwendig. Aber:
Biete mehrere Auswahlmöglichkeiten bezüglich der Erstellung eines neuen Kontos, dem bearbeiten eines existierenden Kontos, dem Löschens eines bestehenden Kontos und dem Ausgeben aller Konten in sortierter Reihenfolge (nach Realgeld, siehe weiter unten)
Konten sollen einen Inhaber samt Namen (ggf. Alter) , einen Kontostand, einen Möglichen Kreditrahmen, eine laufende Kreditsumme und das Realgeld besitzen (Realgeld entspricht Kontostand abzüglich des durch Kredit vorhandenen Geldes).
Verwende Private Variablen, Getter und Setter
Nicht alle Konten dürfen einen Kredit besitzen (erst ab 18!)
Bezüglich der Auswahlmöglichkeiten: Diese sollen per Texteingabe oder Button auswählbar sein, und bei Auswahl vertiefende Fragen stellen (vertierendere Auswahlmöglichkeiten bieten) .. z.B. bei bearbeiten eines Kontos "Welches Konto", dann noch tiefer "Welche Eigenschaft", "Welcher Wert".
Das ganze soll dann wieder zum Ursprung springen und die selben Möglichkeiten bieten --> Solange, bis der Benutzer das Programm durch einen bestimmten Text, ein Zeichen, oder einen Button im GUI beendet.
#1

von Allocortex (350 Punkte)
- 22.02.2017 um 16:02 Uhr

import Prog1Tools.IOTools; public class Test { public static void main(String[] args){ System.out.println("Willkommen!"); System.out.println(""); boolean abbruchbedingung = true; while(abbruchbedingung == true){ char c = IOTools.readChar("-n- Zum Hinzufügen neuer Kontos; -l- Zum ausgeben der Sortierten Kontenliste; -v- Zum vergleichen zweier Konten; -b- Zum abbruch"); System.out.println(""); switch(c){ case 'n': Kontos.neuesKonto(); break; case 'l': Kontos.ausgeben(); System.out.println(""); System.out.println("Wollen Sie ein Konto modifizieren?"); char c2 = IOTools.readChar(("-j- Ja? / -n- Nein?")); System.out.println(""); switch(c2){ case 'j': int c3 = IOTools.readInt("Welches Konto wollen Sie modifizieren?"); System.out.println(""); System.out.println("Welchen Teil des Kontos wollen sie modifizieren?"); System.out.println(""); char c4 = IOTools.readChar("-k- Kontostand; -c- Kredit; -n- Namen"); System.out.println(""); switch(c4){ case 'k': System.out.println("Alter Kontostand: " + Kontos.kontoliste[c3-1].getKontostand()); Kontos.kontoliste[c3-1].setKontostand(IOTools.readDouble("neuer Kontostand: ")); System.out.println(""); break; case 'c': System.out.println("Alter Kredit: " + Kontos.kontoliste[c3-1].getKredit()); Kontos.kontoliste[c3-1].setKredit(IOTools.readDouble("neuer Kredit: ")); System.out.println(""); break; case 'n': System.out.println("Alter Name: " + Kontos.kontoliste[c3-1].getName()); Kontos.kontoliste[c3-1].setName(IOTools.readString("neuer Name: ")); System.out.println(""); break; default: System.out.println("Korrekten buchstaben angeben!"); System.out.println(""); } case 'n': break; default: System.out.println("Korrekten buchstaben angeben!"); System.out.println(""); } break; case 'v': System.out.println("Welche Konten wollen Sie vergleichen?"); int tempa = IOTools.readInt("Konto A: "); int tempb = IOTools.readInt("Konto B: "); boolean tempbool = Kontos.istReicherAls(tempa,tempb); if(tempbool){ System.out.println("Besitzer von Konto \"A\" IST reicher als Besitzer von Konto \"B\""); System.out.println("Konto A hält - \" +" + (Kontos.kontoliste[tempa-1].getRealgeld() - Kontos.kontoliste[tempb-1].getRealgeld()) + "\" - MEHR Geld!"); } else{ System.out.println("Besitzer von Konto \"A\" ist NICHT reicher als Besitzer von Konto \"B\""); System.out.println("Konto A hält - \" " + (Kontos.kontoliste[tempb-1].getRealgeld() - Kontos.kontoliste[tempa-1].getRealgeld()) + "\" - WENIGER Geld!"); } break; case 'b': abbruchbedingung = false; break; default: System.out.println("Korrekten buchstaben angeben!"); System.out.println(""); } } System.out.println("Auf Wiedersehen!"); } } public class Konto { private String name; private double kontostand, kredit; private double realgeld; public static Konto erstelleKonto(String name){ Konto temp = new Konto(name); return temp; } public static Konto erstelleKonto(String name, double kontostand){ Konto temp = new Konto(name, kontostand); return temp; } public static Konto erstelleKonto(String name, double kontostand, double kredit){ Konto temp = new Konto(name, kontostand, kredit); return temp; } public Konto(String name){ this.name = name; this.realgeld = kontostand - kredit; } public Konto(String name, double kontostand){ this.name = name; this.kontostand = kontostand; this.realgeld = kontostand - kredit; } public Konto(String name, double kontostand, double kredit){ this.name = name; this.kontostand = kontostand; this.kredit = kredit; this.realgeld = kontostand - kredit; } public String getName(){ return name; } public double getKontostand(){ return kontostand; } public double getKredit(){ return kredit; } public double getRealgeld(){ return realgeld; } public void setName(String name){ this.realgeld = kontostand - kredit; this.name = name; } public void setKontostand(double kontostand){ this.kontostand = kontostand; this.realgeld = kontostand - kredit; } public void setKredit(double kredit){ this.kredit = kredit; this.realgeld = kontostand - kredit; } public void setRealgeld(double realgeld){ this.realgeld = realgeld; } } public class Kontos { public static Konto[] kontoliste = new Konto[0]; public static void neuesKonto(){ System.out.println("Daten des hinzuzufügenden Kontos angeben: "); Konto[] temp = new Konto[kontoliste.length + 1]; temp[0] = Konto.erstelleKonto(IOTools.readString("Name: "), IOTools.readDouble("Kontostand: "), IOTools.readDouble("Kreditsumme: ")); for(int i = 0; i < kontoliste.length; i++){ temp[i+1] = kontoliste[i]; } kontoliste = temp; } public static void sortieren(){ for(int i = 0; i < kontoliste.length -1; i++){ int maxKontostand = i; for(int j = i + 1; j < kontoliste.length; j++){ if (kontoliste[j].getKontostand() < kontoliste[maxKontostand].getKontostand()){ maxKontostand = j; } } if(i != maxKontostand){ Konto temp = kontoliste[i]; kontoliste[i] = kontoliste[maxKontostand]; kontoliste[maxKontostand] = temp; } } } public static void ausgeben(){ sortieren(); for(int i = 0; i < kontoliste.length; i++){ System.out.println("Konto °" + (i+1) + " :"); System.out.println("Name: " + kontoliste[i].getName()); System.out.println("Kontostand: " + kontoliste[i].getKontostand()); System.out.println("Kredit: " + kontoliste[i].getKredit()); System.out.println("Realgeld: " + kontoliste[i].getRealgeld()); System.out.println(""); } } public static boolean istReicherAls(int a, int b){ if(kontoliste[a-1].getRealgeld() > kontoliste[b-1].getRealgeld()){ return true; } else{ return false; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1