c++/werte speichern bei geschlossenem programm

ITA

Mitglied
Hallo Mädelz,

also ich hab folgendes Problem.
Ich hab ein ein kleines Programm geschrieben. Es simuliert des Bankautomaten ein wenig.
Man kann Geld abheben, einzahlen oder einfach den Kontostand abfragen.

Mein Problem ist jetzt, wenn ich jetzt etwas einzahle und dann auf Kontostand abfragen drücke, dann steht da die angebene Summe. Wenn ich das Programm schließe und wieder neu starte ist der Kontostand gleich null.
Also hält er den Wert nicht fest.

Wie kann ich den Wert speichern oder festhalten das ich beim neustart genau den gleichen Wert habe den ich vorher eingezahlt habe.

Hier ist der code



PHP:
#include<iostream>
#include<string>

using namespace std;



int main()
{
     neu:
     system("cls");
    int aktion;
    cout<<"\t\t\tIhr Kontomanager\n";
    cout<<">------------------------------------------------------<\n\n";
    cout<<"\t\t(1)Etwas Einzahl\n\n";
    cout<<"\t\t(2)Etwas Abheben\n\n";
    cout<<"\t\t(3)Kontostand abfragen\n\n\n";

    cout<<">------------------------------------------------------<\n\n";
    cout<<"\t\tDruecken sie die (1) um etwas einzuzahlen.\n";
    cout<<"\t\tDruecken sie die (2) um etwas abzuheben.\n";
    cout<<"\t\tDruecken sie die (3) um ihren Kontostand abzufragen.\n\n";
    cout<<"\tWenn sie ihre Auswahl getroffen habe druecken sie anschliessend Enter.\n\n";
    cin>>aktion;
     //---------------------------------------------------------------------------------------
    if(aktion==1 || aktion ==2 || aktion==3)
    {

    switch(aktion)
    {
    static float kontostand;

    float betrag;

           case 1 :
                          cout<<"Bitte geben sie ihren Betrag ein den sie einzahlen moechten.\n\n";
                          cin>>betrag;
                          if(betrag>=0)
                          {
                             cout<<"\t\nDie Einzahlung war Erfolgreich.\n";
                             cout<<"\tSie haben folgenden Betrag eingezahlt. "<<betrag<<" Euro";
                             }
                             else
                             {
                             cout<<"\tBitte versuchen sie es erneut\n\n";
                             cin>>betrag;
                             cin.get();
                             }
                             int getch();
                             kontostand = kontostand + betrag;
                              goto abfrage;
                             break;
  //------------------------------------------------------------------------------------------
            case 2:
                             cout<<"Bitte geben sie ihren Betrag an den sie abheben moechten.\n\n";
                             cin>>betrag;
                             if(betrag>=0)
                             {
                               cout<<"\t\nDas Abheben war Erfolgreich\n";
                             cout<<"\tSie haben folgenden Betrag abgehoben"<<betrag<<" Euro\n\n";
                             } else
                             {
                             cout<<"\n\n\tBitte versuchen sie es erneut";
                             cin>>betrag;

                             }
                             kontostand = kontostand - betrag;
                             goto abfrage;
                             break;
    //-------------------------------------------------------------------------------------
           case 3 :
                             abfrage:
                             cout<<"\n\nIhr Kontostand betraegt nun "<<kontostand<<" Euro\n\n\n";
                             cout<<">---------------------------------------------------------<\n\n";
                             cout<<"\tWaehlen sie die (1) um um ins Hauptmenue zu kommen\n";
                             cout<<"\tDruecken sie die (2) um das Programm zu beenden\n\n";
                             int neuwahl;
                             cin>>neuwahl;
                             switch(neuwahl)
                             {
                              case 1:
                                       goto neu;
                                         break;

                              case 2:
                                        int ende;
                                        cout<<"\n\nDruecken sie Enter um das Programm zu beenden";
                             break;     cin>>ende;
                             }



           }

        }else
        {
        
        cout<<"Sie koennen nur 1, 2 oder 3 nehmen\n\n\n";
        system("pause");

        goto neu;


        }
}
 
Hi.

Du mußt die Daten einfach persistent speichern. Z.B. in einer Datei oder einer Datenbank.

Bsp:
C++:
#include <fstream>

ifstream idat("kontostand.txt");

kontostand = 0;
if (idat >> kontostand) {
  cout << "alter Kontostand: " << kontostand;
}
idat.close();

...

ofstream odat("kontostand.txt");
if (!odat.is_open()) {
  cerr << "konnte Datei nicht öffnen." << endl;
} else if (odat << kontostand) {
  cout << "Kontostand gespeichert." << endl;
} else {
  cerr << "Kontostand konnte nicht gespeichert werden." << endl;
}
Gruß

PS: goto sollte man möglichst vermeiden. Verwende lieber eine normale Schleife.
 
Zurück