Geldautomat mit Eclipse

Summert4stic

Newbie
Registriert
Okt. 2011
Beiträge
5
Hallo, ich habe die Aufgabe einen Geldautomaten mit Eclipse zu programmieren, dabei soll der der Anfangsbetrag 1000€ betragen und man kann auszahlen, einzahlen, usw. Jedoch möchte ich, dass der Kontostand nur noch 500€ beträgt, wenn ich 500€ abbuche, nachdem ich mich wieder auslogge. Also das Programm soll nach jeder Ein- oder Auszahlung den aktuellen Kontostand speichern. Was muss ich einfügen und wo?

So sieht mein Programm im Moment aus:

import javax.swing.JOptionPane;
public class Geldautomat {

public static void main(String[]args){

JOptionPane.showMessageDialog(null,"Hallo, hier ist ihr Geldautomat");

JOptionPane.showInputDialog("Bitte EC Karte einschieben");

JOptionPane.showInputDialog("Bitte PIN eingeben");
do{
String[] options = { "Kontostand abfragen",
"Betrag auszahlen",
"Betrag einzahlen",
"Betrag auf die EC Karte buchen",
"Abbruch",};


String wahl = (String) JOptionPane.showInputDialog(null, "Was wollen sie tun?",
"Optionen", JOptionPane.QUESTION_MESSAGE, null,
options, options[0]);


int Kontostand=1000;

String Betrag;
int Betragint;

String Betrag2;
int Betrag2int;

String Betrag3;
int Betrag3int;

int erg;
int erg2;





if(wahl=="Kontostand abfragen"){

JOptionPane.showMessageDialog(null,"Ihr Kontostand beträgt"+Kontostand + "€");
}




else if(wahl=="Betrag auszahlen"){

Betrag=JOptionPane.showInputDialog("Wie viel € möchten sie Auszahlen?");
Betragint=Integer.parseInt(Betrag);
erg=Kontostand-Betragint;
JOptionPane.showMessageDialog(null,"Ihr Kontostand beträgt nun" + erg + "€");}


else if(wahl=="Betrag einzahlen"){

Betrag2=JOptionPane.showInputDialog("Wie viel € möchten sie einzahlen?");
Betrag2int=Integer.parseInt(Betrag2);
erg=Kontostand+Betrag2int;
JOptionPane.showMessageDialog(null,"Ihr Kontostand beträgt nun" + erg + "€");}

else if(wahl=="Betrag auf die EC Karte buchen"){

Betrag3=JOptionPane.showInputDialog("Wie viel € möchten sie auf ihre EC Karte buchen?");
Betrag3int=Integer.parseInt(Betrag3);
erg=Kontostand-Betrag3int;
JOptionPane.showMessageDialog(null,"Ihr Kontostand beträgt nun" + erg + "€");



}

} while (JOptionPane.showInputDialog("Nochmal? [J/N]")
.equalsIgnoreCase("j"));

}

}
 
Ja genau und meine Frage ist ja,wie ich das jetzt mache. Also wie kann ich den nach dem Ein- oder Auszahlen speichern?
 
Ersetz einfach erg=Kontostand-Betragint; durch Kontostand=Kontostand-Betragint; und gib danach Kontostand aus und nicht erg.
 
Man könnte es einfach in eine Textdatei schreiben. Dann muss man sich aber auch überlegen wie so etwas später eingelesen wird, vor allem bei mehreren Nutzern. Wenn du das ganze mit etwas mehr OO angehen würdest, könnte man auch einfach die einzelnen Instanzen der Klasse, sprich Kunden, serialsiert auf der HDD abspeichern.

Eine Datenbank-Anbindung wäre natürlich übertrieben für das kleine Programm, aber so würde es bei den Banken aussehen.


Insgesamt würde das aber wohl zu weit gehen bzgl. dessen was du implementieren willst :D
 
Zuletzt bearbeitet:
Ersetz einfach erg=Kontostand-Betragint; durch Kontostand=Kontostand-Betragint; und gib danach Kontostand aus und nicht erg.

Also, das hat nicht geklappt, aber trotzdem danke ;)

Man könnte es einfach in eine Textdatei schreiben. Dann muss man sich aber auch überlegen wie so etwas später eingelesen wird, vor allem bei mehreren Nutzern. Wenn du das ganze mit etwas mehr OO angehen würdest, könnte man auch einfach die einzelnen Instanzen der Klasse, sprich Kunden, serialsiert auf der HDD abspeichern.

Eine Datenbank-Anbindung wäre natürlich übertrieben für das kleine Programm, aber so würde es bei den Banken aussehen.

Denke auch, dass ich nicht so viel Aufwand aufbringen muss. Gibt es nicht irgendwie einen Befehl für Speicherungen bem InputDialog ?^^ wäre ganz gut :D
 
Das ist ja auch erst die halbe Miete, so speicherst du den Kontostand erst einmal zur Laufzeit des Programms. Um den Kontostand auch nach einem Neustart wieder zu laden, musst du bevor das Programm geschlossen wird, diesen in eine Datei schreiben die beim öffnen wieder geladen werden kann.
Schau dir mal die FileWriter und FileReader an: http://openbook.galileocomputing.de...17_001.htm#mj87f7ea8c7b8051417049399df2c5782a
 
Wie wärs mit einer Variablen? Wie z.b. Kontostand? Vllt. erstmal ein paar grundlagen Tutorials angucken?

Kontostand wird übrigens bei jedem durchlauf der Schleife neu auf 1000 initialisiert.

=> Variable nicht in der Schleife definieren, dann das tun was FreakZ1 vorgeschlagen hat.
 
Zuletzt bearbeitet:
Jawohl so gehts , vielen Dank an alle für die Antworten, besonders an BlooDFreeZe und FreakZ1
 
prog.ger schrieb:
Eine Datenbank-Anbindung wäre natürlich übertrieben für das kleine Programm, aber so würde es bei den Banken aussehen.
Banken speichern keine serialisierten Klassen auf die HDD.
Dort werden einzelne Werte in entsprechenden DBMS hinterlegt.
 
Zurück
Oben