Bankomat



  • Hallo

    Ich muss in der Schule ein Programm schreiben, laut Aufgabenplan. Ich komme einfach nicht mehr weiter. Wer kann mir einen Lösungsvorschlag machen?

    Wenn es mehr als der Betrag ist, das habe ich nicht heraus gefunden.
    Und wie ich es lösen muss, dass man wieder ins Hauptmenü gelangt, finde ich auch nicht heraus.

    Aufgabe:
    Beim Ausloggen soll das Programm abschliessen.

    Kontostand anschauen: soll das Programm den Kontostand (CHF 450.-) anzeigen. Es soll nach einem Tastendruck gefragt werden um wieder zum Hauptmenü zu gelangen.

    Geld abheben: Wird zuerst gefragt, wie viel Geld man abheben möchte. (Falls das mehr ist, als man auf dem Konto hat, oder wenn es nicht in 100er Noten ausbezahlt werden kann, soll eine Warnung ausgegeben werden.)
    Dann soll eine Ausgabe erfolgen, die den abgehobenen Betrag und den verbleibenden Kontostand anzeigt.

    Danke für eure Hilfe

    Hier mein erstellter Quellcode:

    #include <iostream>
    using namespace std;

    int main()
    {
    int pin[6];
    char auswahl;
    char x;
    int kontostand=400;
    int betrag;

    cout<<endl;
    cout<<"\tBankomat"<<endl;

    do
    {
    cout<<"\tGeben sie Ihren Pin ein : ";
    cin>>pin[6];
    cout<<endl;

    }while (pin[6] !=1234);

    cout<<"\tHauptmenue"<<endl;
    cout<<"\t1) ausloggen"<<endl;
    cout<<"\t2) Kontostand anschauen"<<endl;
    cout<<"\t3) Geld abheben"<<endl;
    cout<<"\tAuswahl? ";
    cin>>auswahl;

    switch (auswahl)
    {
    case '1':
    return 0;
    break;
    case '2':
    cout<<"\tKontostand: "<<kontostand<<endl;
    cout<<"\tBitte Taste druecken "<<endl;

    break;
    case '3' :
    do
    {
    cout<<"\tWie viel Geld wollen sie abeben?";
    cin>>betrag;
    if (betrag %100 !=0)
    {
    cout<<"Achtung: Nur 100er Noten verfuegbar"<<endl;
    }
    }while (betrag %100 !=0);
    cout<<"\tSie wollen " <<betrag<< " abheben "<<endl;
    cout<<"\t(es verbleiben CHF " <<kontostand - betrag<< " auf Ihrem Konto.)"<<endl<<endl;
    cout<<"\tEinen schönen Tag noch";

    break;
    }

    fflush stdin;
    getchar ();
    return 0;
    }



  • In vielen Fällen hilft es, wenn man genau ausformuliert, was ein Programm am Ende tun soll.

    In Deinem Fall wäre eine solche Formulierung:

    "Das Programm soll solange ausgeführt werden, bis sich der Benutzer ausloggt."
    

    Aus dem Worten "solange, bis" kann man eine Schleife (solange) mit einer Bedingung (bis) herleiten. Als Pseudo-Code sähe das dann so aus:

    while logged_in {
        print_menu();
        // Something else
    }
    

    Grüße... Heiko

    P.S. Code-Tags sind eine sehr nützliche Erfindung, genauso wie sinnvolle Einrückungen 😉



  • *schnell mal aushelfe*

    #include <iostream> 
     using namespace std; 
    
     int main() { 
       int pin[6]; 
       char auswahl; 
       char x; 
       int kontostand=400; 
       int betrag; 
    
       cout<<endl; 
       cout<<"\tBankomat"<<endl; 
    
       do { 
         cout<<"\tGeben sie Ihren Pin ein : "; 
         cin>>pin[6]; 
         cout<<endl; 
       }while (pin[6] !=1234); 
    
       cout<<"\tHauptmenue"<<endl; 
       cout<<"\t1) ausloggen"<<endl; 
       cout<<"\t2) Kontostand anschauen"<<endl; 
       cout<<"\t3) Geld abheben"<<endl; 
       cout<<"\tAuswahl? "; 
       cin>>auswahl; 
    
       switch (auswahl)  { 
         case '1':  return 0;  break; 
         case '2':  cout<<"\tKontostand: "<<kontostand<<endl; 
                    cout<<"\tBitte Taste druecken "<<endl; 
                    break; 
         case '3' : do  { 
                      cout<<"\tWie viel Geld wollen sie abeben?"; 
                      cin>>betrag; 
                      if (betrag %100 !=0)  { 
                        cout<<"Achtung: Nur 100er Noten verfuegbar"<<endl; 
                      } 
                    } while (betrag %100 !=0); 
                    cout<<"\tSie wollen " <<betrag<< " abheben "<<endl; 
                    cout<<"\t(es verbleiben CHF " <<kontostand - betrag<< " auf Ihrem Konto.)"<<endl<<endl; 
                    cout<<"\tEinen schönen Tag noch"; 
    
                    break; 
       } 
    
       fflush stdin; 
       getchar (); 
       return 0; 
     }
    


  • *auch schnell mal aushelfe* 😉

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int pin;
        char auswahl;
        char x;
        int kontostand = 400;
        int betrag;
    
        cout << endl;
        cout << "\tBankomat" << endl;
    
        do
        {
            cout << "\tGeben sie Ihren Pin ein : ";
            cin >> pin;
            cout << endl;
    
        }while (pin != 1234);
    
        while (1)
        {
            cout << "\tHauptmenue" << endl;
            cout << "\t1) ausloggen" << endl;
            cout << "\t2) Kontostand anschauen" << endl;
            cout << "\t3) Geld abheben" << endl;
            cout << "\tAuswahl? ";
            cin >> auswahl;
    
            switch (auswahl)
            {
            case '1':
                return 0;
            break;
                case '2':
                cout << "\tKontostand: "<< kontostand << endl;
                cout << "\tBitte Taste druecken "<< endl;
                break;
            case '3' :
                do
                {
                    cout << "\tWie viel Geld wollen sie abeben?";
                    cin >> betrag;
                    if (betrag %100 != 0)
                    {
                        cout << "Achtung: Nur 100er Noten verfuegbar" << endl;
                    }
                }while (betrag %100 != 0);
    
                cout << "\tSie wollen " << betrag << " abheben " << endl;
                cout << "\t(es verbleiben CHF " << kontostand - betrag << " auf Ihrem Konto.)" << endl << endl;
    
                break;
            }
        }
    
        fflush stdin;
        return 0;
    }
    

    so sollte es gehen... bildschirm löschen, etc musste selber sehen wies geht...



  • Ihr habe alle denselben Syntax- als auch nicht-standardkonformen Fehler drin:

    fflush stdin; // selbst fflush(stdin) ist laut Standard nicht definiert!!!
    


  • das hab ich einfach ohne nachzudenken übernommen. es ging um die menu-schleife... devcpp hat auch nicht gemeckert, sonst wärs mir aufgefallen...



  • Th schrieb:

    Ihr habe alle denselben Syntax- als auch nicht-standardkonformen Fehler drin:

    fflush stdin; // selbst fflush(stdin) ist laut Standard nicht definiert!!!
    

    meine wenigkeit hat nur dem wunsch meines vorposters entsprochen, das ganze leserlich zu gestalten 😉

    außerdem ist c++ nicht unbedingt meine stärke (ansi c ist mir lieber)



  • BTW:
    du brauchst um den pin abzuspeichern ein int array, ein int ist gross genug um eine 4-stellige pin zu speichern

    int pin = 0;
    std::cin >> pin;
    if(pin == 1234)



  • Mr Evil schrieb:

    BTW:
    du brauchst um den pin abzuspeichern ein int array, ein int ist gross genug um eine 4-stellige pin zu speichern

    int pin = 0;
    std::cin >> pin;
    if(pin == 1234)

    hast du dir meinen source mal angesehen? 🙄



  • BITTE BITTE BITTE

    verwendet doch für source code oder code die cpp tags bzw code tags

    DANKE FÜR DIE AUFMERKSAMKEIT


Log in to reply