Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Problem bei Konto Programm

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.05.2006, 11:45 Uhr
FlorianW



Hallo,
ich arbeite mich gerade in Klassen und Dateien mit c++ ein und wollte zur übung ein programm schreiben, das Daten eines Bankkontos verarbeitet und in eine txt datei schreibt, allerdings funtionirt das nicht so wie ich mir das vorstelle, ich hab schon einige stunden damit verbracht und verstehe nicht, was ich falsch gemacht habe...
Hier erstmal der Quellcode:


C++:
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>

using namespace std;

int wahl = 0;
int wahlb = 0;

class konto
{
public:
    string name;
    string passwort;
    string passworteing;
    string guthabenstr;
    string kontotyp;
    string nameneu, passwortneu, guthabenstrneu, kontotypneu;
    int guthabenint;
    char guthabeninttostring[100];
    int k;


    void kontoeinlesen() //Funktion um die vorhandenen daten auszulesen
    {
        ifstream konto_lesen;

        string dateiname = "kontodatei.txt";

        konto_lesen.open(dateiname.c_str(), ios_base::in);

        cout<<"Folgende Konten sind gespeichert und koennen bearteitet werden:"<<endl;
        int i = 1;
        while (!konto_lesen.eof())
        {
        getline( konto_lesen, name);
        getline( konto_lesen, passwort);
        getline( konto_lesen, guthabenstr);
        getline( konto_lesen, kontotyp);
        cout<<i<<")"<<name<<endl;
        i++;
        };

        kontoauswaehlen();

    
        cout<<name<<endl;
        cout<<guthabenstr<<endl;
        cout<<kontotyp<<endl<<endl<<endl;


        cout<<"\nGeben Sie das Passwort fuer dieses Konto ein:"<<endl;
        cin>>passworteing;
        if(passworteing != passwort)
        {
            cout<<endl<<endl<<"FALSCHES PASSWORT!!!"<<endl<<endl<<endl;
        }
        else
        {
            cout<<endl<<endl<<"Passwort als Korrekt erkannt!"<<endl<<endl<<endl;

        cout<<"Was moechten Sie bearbeiten?\n1)Name\n2)Kontostand\n3)Kontotyp\n4)Alles"<<endl;
        cin>>wahl;

        switch (wahl)
        {
        case 1:
        fflush(stdin);
            cout<<"Geben Sie den neuen Namen ein:"<<endl;
            getline( cin, nameneu);
            break;

        case 2:
        fflush(stdin);
            
            cout<<"Geben Sie den neuen Kontostand ein:"<<endl;
            getline( cin, guthabenstrneu);
            break;

        case 3:
        fflush(stdin);
            cout<<"Geben Sie den neuen Kontotyp ein:"<<endl;
            getline( cin, kontotypneu);
            break;

        case 4:
            fflush(stdin);
            cout<<"Geben Sie den neuen Namen ein:"<<endl;
            getline( cin, nameneu);
            fflush(stdin);
            
            cout<<"Geben Sie den neuen Kontostand ein:"<<endl;
            getline( cin, guthabenstrneu);

            
            fflush(stdin);
            cout<<"Geben Sie den neuen Kontotyp ein:"<<endl;
            getline( cin, kontotypneu);
            break;

        default:
            cout<<"\n\n\t\t!!!UNGUELTIGE EINGABE!!!"<<endl;

            

        };

            cout<<name<<endl;
            cout<<guthabenstr<<endl;
            cout<<kontotyp<<endl;

            cout<<endl<<endl<<"Moechten Sie die aenderungen Speichern?\n1)Ja\n2)Nein"<<endl;
            wahl = 0;
            cin>>wahl;

            switch (wahl)
            {
            case 1:
                    kontoschreiben(nameneu, passwortneu, guthabenstrneu, kontotypneu);
        //            kontoschreiben2(i);

                break;

            case 2:

                break;

            default:
                cout<<"\n\n\t\t!!!UNGUELTIGE EINGABE!!!"<<endl;
            };

        
        };//Ende else für pw eingabe

        konto_lesen.close();

    };

    void kontoauswaehlen()  //teilfuntion, gehört zu 'kontoeinlesen()'
    {

        ifstream konto_lesen;

        string dateiname = "kontodatei.txt";

        konto_lesen.open(dateiname.c_str(), ios_base::in);

        cout<<"Welches Konto bearbeiten?"<<endl;
        
        cin>>k;

        while (k > 0)
        {
        getline( konto_lesen, name);
        getline( konto_lesen, passwort);
        getline( konto_lesen, guthabenstr);
        getline( konto_lesen, kontotyp);
        k--;
        };

        konto_lesen.close();



    };


    int kontoschreiben(string nameneu, string passwortneu, string guthabenstrneu, string kontotypneu) //teilfuntion, gehört zu 'kontoeinlesen()' GEHT NOCH NICHT
    {

        
        ifstream konto_lesen;

        string dateiname = "kontodatei.txt";

        konto_lesen.open(dateiname.c_str(), ios_base::in);

        string name[100], passwort[100], guthabenstr[100], kontotyp[100];

    
//        k--;
        int i=0;

        while (konto_lesen.eof() == false)
        {
        getline( konto_lesen, name[i]);
        getline( konto_lesen, passwort[i]);
        getline( konto_lesen, guthabenstr[i]);
        getline( konto_lesen, kontotyp[i]);
        i++;
        };

        konto_lesen.close();


        ofstream konto_schreiben;
//        string dateiname = "kontodatei.txt";

        konto_schreiben.open(dateiname.c_str(), ios_base::out);// | ios_base::app);

        while(i >= 0)
        {
        konto_schreiben<<name[i]<<endl;
        konto_schreiben<<passwort[i]<<endl;
        konto_schreiben<<guthabenstr[i]<<endl;
        konto_schreiben<<kontotyp[i]<<endl;
        i--;
        };

    

        konto_schreiben<<name<<endl;
        konto_schreiben<<passwort<<endl;
        konto_schreiben<<guthabenstr<<endl;
        konto_schreiben<<kontotyp;

        konto_schreiben.close();



        return i;
        
    };

    void kontoschreiben2(int i)
    {
        ofstream konto_schreiben;
        string dateiname = "kontodatei.txt";

        konto_schreiben.open(dateiname.c_str(), ios_base::out);

        while(i >= 0)
        {
        konto_schreiben<<name[i]<<endl;
        konto_schreiben<<passwort[i]<<endl;
        konto_schreiben<<guthabenstr[i]<<endl;
        konto_schreiben<<kontotyp[i]<<endl;
        i--;
        };



        konto_schreiben<<name<<endl;
        konto_schreiben<<passwort<<endl;
        konto_schreiben<<guthabenstr<<endl;
        konto_schreiben<<kontotyp;

        konto_schreiben.close();


    };


};


int main()
{
    konto test;

    test.guthabenint = 0;


            cout<<"Konto Aendern:"<<endl;
            test.kontoeinlesen();
    
    return 0;
};



dazu gehört noch die datei (kann auch anders aussehen, halt nach dem prinzip):
(der name muss 'kontodatei.txt' lauten)

Code:
Michael Schumacher
pw1
150
Sparkonto
Oliver Kahn
pw2
222
Girokonto
Ralf Schumacher
pw3
500
Sparkonto



Mein problem ist, dass wenn ich ein konto verändere und es speichern möchte geht das nicht, in der datei stehen nur die alten daten und irgendwelcher müll.

kann mir jemend helfen?
Gruss,
Florian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.05.2006, 18:03 Uhr
FlorianW



Kann mir denn niemand helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.05.2006, 18:32 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Kontoprogramme haben wir hier ohne Ende
www.fun-soft.de/showtopic.php?threadid=13195&post_start=10&time=
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: