Sehr geehrte Forummitglieder,
Ich bin ein Anfänger und habe zur Übung ein kleines Programm geschrieben, welches "Bankkonten" erstellt und verwaltet.
Das Programm funktioniert (bei richtigen Eingaben) einwandfrei, jedoch ist es etwas verwirrend und wahrscheinlich wurde von mir auch nicht der einfachste Lösungsweg gewählt.
Nun möchte ich euch bitten meinen Quellcode anzusehen, und mir Feedback/Verbesserungsvorschläge/Kritik zu geben.
Mit freundlichen Grüßen,
thelegend27
Ich bin ein Anfänger und habe zur Übung ein kleines Programm geschrieben, welches "Bankkonten" erstellt und verwaltet.
Das Programm funktioniert (bei richtigen Eingaben) einwandfrei, jedoch ist es etwas verwirrend und wahrscheinlich wurde von mir auch nicht der einfachste Lösungsweg gewählt.
Nun möchte ich euch bitten meinen Quellcode anzusehen, und mir Feedback/Verbesserungsvorschläge/Kritik zu geben.
Java:
class BankKonto {
String kontoInhaber, kontoNummer, kontoPIN;
int kontoStand;
BankKonto(String ktoInhaber, String ktoNummer, int start, String ktoPIN) {
kontoInhaber = ktoInhaber;
kontoNummer = ktoNummer;
kontoPIN = ktoPIN;
kontoStand = start;
}
void hebeGeldAb(int betrag) {
kontoStand = kontoStand - betrag;
}
void zahleGeldEin(int betrag) {
kontoStand = kontoStand + betrag;
}
String gibKontoNummer() {
return kontoNummer;
}
String gibKontoPIN() {
return kontoPIN;
}
String gibName() {
return kontoInhaber;
}
int gibKontoStand() {
return kontoStand;
}
}
public class Bank {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println("Wilkommen in der Bank");
System.out.println();
System.out.println("-----------------------");
BankKonto[] konten = new BankKonto[10000];
String[] kontoNummer = new String[10000];
int nextIndex = 0;
int freeMe = 0;
do {
while (freeMe == 0) {
String name;
System.out.println();
System.out.println("Geben sie bitte Ihren Namen ein, um sich zu registrieren!");
name = scan.nextLine();
String pin = String.valueOf((int) (Math.random() * 10000 + 1000));
nextIndex++;
kontoNummer[nextIndex] = String.valueOf((int) (Math.random() * 10000));
konten[Integer.parseInt(kontoNummer[nextIndex])] = new BankKonto(name, kontoNummer[nextIndex], 0, pin);
System.out.println("Herzlichen Glückwunsch ihr Konto wurde erfolgreich eingerichtet!");
System.out.println();
System.out.println("Ihre Kontonummer lautet: " + konten[Integer.parseInt(kontoNummer[nextIndex])].gibKontoNummer());
System.out.println("Ihre 4 stellige PIN lautet: " + konten[Integer.parseInt(kontoNummer[nextIndex])].gibKontoPIN());
System.out.println("Ihr derzeitiges Guthaben beträgt: " + konten[Integer.parseInt(kontoNummer[nextIndex])].gibKontoStand());
System.out.println();
freeMe++;
}
System.out.println("registrieren = 0");
System.out.println("einloggen = 1");
int checkIn = gibInt();
if (checkIn < 0 || checkIn > 1) {
System.out.println("Geben sie bitte eine von den gültigen Zahlen ein!");
}
if (checkIn == 0) {
String name;
System.out.println("Geben sie bitte Ihren Namen ein, um sich zu registrieren!");
name = scan.nextLine();
String pin = String.valueOf((int) (Math.random() * 10000 + 1000));
nextIndex++;
//kontoNummer[nextIndex] = String.valueOf(nextIndex);
kontoNummer[nextIndex] = String.valueOf((int) (Math.random() * 10000));
konten[Integer.parseInt(kontoNummer[nextIndex])] = new BankKonto(name, kontoNummer[nextIndex], 0, pin);
System.out.println("Herzlichen Glückwunsch ihr Konto wurde erfolgreich eingerichtet!");
System.out.println();
System.out.println("Ihre Kontonummer lautet: " + konten[Integer.parseInt(kontoNummer[nextIndex])].gibKontoNummer());
System.out.println("Ihre 4 stellige PIN lautet: " + konten[Integer.parseInt(kontoNummer[nextIndex])].gibKontoPIN());
System.out.println("Ihr derzeitiges Guthaben beträgt: " + konten[Integer.parseInt(kontoNummer[nextIndex])].gibKontoStand());
System.out.println();
}
if (checkIn == 1) {
System.out.println("Geben Sie bitte Ihre Kontonummer ein!");
String eingabeNummer = scan.nextLine();
System.out.println("Geben Sie bitte Ihre 4 Stellige Pin ein!");
String eingabePIN = scan.nextLine();
if (eingabeNummer.equals(konten[Integer.parseInt(eingabeNummer)].gibKontoNummer()) && eingabePIN.equals(konten[Integer.parseInt(eingabeNummer)].gibKontoPIN())) {
System.out.println("Login erfolgreich");
System.out.println();
System.out.println("Herzlich Wilkommen : " + konten[Integer.parseInt(eingabeNummer)].gibName());
System.out.println("Guthaben einsehen = 0");
System.out.println("Geld abheben = 1");
System.out.println("Geld einzahlen = 2");
System.out.println("ausloggen = 3");
do {
checkIn = gibInt();
if (checkIn == 0) {
System.out.println("Ihr Guthaben beträgt:" + konten[Integer.parseInt(eingabeNummer)].gibKontoStand());
}
if (checkIn == 1) {
System.out.println("Geben Sie an wieviel Geld sie abheben wollen!");
int betrag = gibInt();
konten[Integer.parseInt(eingabeNummer)].hebeGeldAb(betrag);
System.out.println("Ihr Guthaben beträgt: " + konten[Integer.parseInt(eingabeNummer)].gibKontoStand());
}
if (checkIn == 2) {
System.out.println("Geben Sie an wieviel Geld sie einzahlen wollen!");
int betrag = gibInt();
konten[Integer.parseInt(eingabeNummer)].zahleGeldEin(betrag);
System.out.println("Ihr Guthaben beträgt: " + konten[Integer.parseInt(eingabeNummer)].gibKontoStand());
}
if (checkIn == 3) {
break;
}
} while (true);
} else {
System.out.println("Ungültige Kontonummer/PIN");
}
}
} while (true);
}
static int gibInt() {
Scanner scan = new Scanner(System.in);
boolean ok = false;
int rueckgabe = 0;
do {
try {
rueckgabe = Integer.parseInt(scan.nextLine());
ok = true;
} catch (Exception e) {
System.out.println("NaN!");
}
} while (!ok);
return rueckgabe;
}
}
Mit freundlichen Grüßen,
thelegend27