BlueJ - Geldautomat-Programmierung
Hallo, ich muss einen Geldautomaten programmieren.
Mit diesem Automaten sollte man eine Karte einschieben, den PIN eingeben und Geld abheben koennen. Die Karte soll mit der Methode "karte_ausgeben" ausgegeben werden koennen und somit sollte der ganze Vorgang abgebrochen werden. (d.h.Zustand wieder auf Standby) Ausserdem sollte bei der ersten falsch eingegebenen PIN der Vorgang abgebrochen werden.
Meine Probleme liegen hier: Geld kann ohne Karte bzw PIN abgehoben werden.
Ausserdem kann ohne Karte der Falsche PIN eingegeben werden und dann erscheint die Nachricht "Falsche PIN. Vorgang wird abgebrochen.Karte wird ausgegeben. Bitte Karte einwerfen.
Ich hoffe es kann mir jemand helfen: Das ist meine Programmierung
Code:
--Nachtrag--
Ich habe 3 Zustaende, weil die Zustaende wechseln sollen, das tun sie leider nicht
Hallo, ich muss einen Geldautomaten programmieren.
Mit diesem Automaten sollte man eine Karte einschieben, den PIN eingeben und Geld abheben koennen. Die Karte soll mit der Methode "karte_ausgeben" ausgegeben werden koennen und somit sollte der ganze Vorgang abgebrochen werden. (d.h.Zustand wieder auf Standby) Ausserdem sollte bei der ersten falsch eingegebenen PIN der Vorgang abgebrochen werden.
Meine Probleme liegen hier: Geld kann ohne Karte bzw PIN abgehoben werden.
Ausserdem kann ohne Karte der Falsche PIN eingegeben werden und dann erscheint die Nachricht "Falsche PIN. Vorgang wird abgebrochen.Karte wird ausgegeben. Bitte Karte einwerfen.
Ich hoffe es kann mir jemand helfen: Das ist meine Programmierung
Code:
Java:
public class Geldautomat {
private int guthaben ;
private int neuesGuthaben ;
private int Geldbetrag ;
private int maxBetrag ;
private String PIN ;
private String zustand ;
private String verfuegbarerZustand ;
private String bereiterZustand ;
public Geldautomat() {
guthaben = 10000 ;
PIN = "123";
zustand = "standby" ;
bereiterZustand = "bereit" ; //Bereiter Zustand = PIN kann eingegeben werden (d.h. Karte erhalten)
verfuegbarerZustand = "verfuegbar"; // verfuegbarer Zuatand = Geld kann abgehoben werden( d.h. PIN korrekt)
maxBetrag = 1000 ;
}
public void karte_einwerfen (){
zustand = bereiterZustand ;
System.out.println("Karte erhalten. Automat ist startbereit.") ;
}
public void pin_eingeben (String PIN ){
if (zustand == "bereit")
if (PIN =="123") {
bereiterZustand = verfuegbarerZustand ;
System.out.println("PIN ist korrekt. Nun koennen sie ihr Geld abheben");
}
if (PIN !="123")
{
bereiterZustand = zustand ;
System.out.println("PIN ist falsch. Der Vorgang wird abgebrochen. Ihre Karte wird ausgegeben.");
}
if (zustand == "standby") {
System.out.println("Bitte Karte einwerfen!");
}
}
public void abzuhebendenBetrag_waehlen (int Geldbetrag) {
int maxBetrag = 1000;
if (verfuegbarerZustand == "verfuegbar" ) {
if (Geldbetrag <= maxBetrag){
neuesGuthaben = guthaben - Geldbetrag ;
guthaben = neuesGuthaben ;
System.out.println("Der Geldbetrag wurde abgehoben. Wollen sie noch mehr Geld abheben? .");
}
else
{
System.out.println("Der eingegebene Betrag überschreitet das Maximale!") ;
}
}
else {
System.out.println("Bitte Karte bzw. PIN eingeben.") ;
}
}
public void karte_ausgeben () {
if (zustand == "bereit") {
bereiterZustand = zustand ;
System.out.println("Vorgang abgebrochen. Ihre Karte wird ausgegeben");
}
if (zustand == "verfuegbar") {
verfuegbarerZustand = zustand ;
System.out.println("Vorgang abgebrochen. Ihre Karte wird ausgegeben");
}
}
}
--Nachtrag--
Ich habe 3 Zustaende, weil die Zustaende wechseln sollen, das tun sie leider nicht
Zuletzt bearbeitet: