C++ und ein Problematisches PROGRAMM



  • Hallo erstamll

    ich hab >Folgendess Prob und Zwar ich wollte in Prog schreiben

    Die aufgaben Stellung ist hier

    Sie sind Mitarbeiter des einen Autoleasingunternehmens. Das Unternehmen bietet 2 Formen von Leasingverträgen an.

    * Tagesleasing:
    Bei einer Leasingdauer bis zu 15 Tagen berechnet das unternehmen pro
    Tag eine Grundgebühr von 20.00€/Tag sowie 0,50€ je Gefahrenem
    Kilometer

    * Monatsleasing:
    Bei einer Leasingdauer von mehr als 15 Tagen wird Grundsätzlich
    monatlich abgerechnet. Für das Monatsleasing beträgt die Grundgebühr
    300,00€ für jeden angefangenen Monat und es werden für jeden
    Kilometer 0,06€ in Rechnung gestellt.

    So Kein Problem aber jetzt kommt der Hammer.

    Die Daten für die Leasingverträge sind in einer SEQUENZIELLEN Datei abzuspeichern. Aus Vereinfachungsgründen darf angenommen werden, dass der gesamte Datenbestand zur Laufzeit in einer Hauptspeichertabelle verfügbar ist (Hinweis: Max. 100 Datensätze). Die DATENSTRUKTUR der Leasingdaten

    Leasingvertragsnummer
    Leasingobjektnummer
    Leasingobjektbezeichnung
    Kundennummer
    Kundenname
    Strasse
    PLZ
    Ort
    Leasingbeginn: Tag
    Leasingbeginn: Monat
    Leasingbeginn: Jahr
    Leassingende: Tag
    Leassingende: Monat
    Leassingende: Jahr
    Rechnungsbetrag

    Für die Verwaltung der Leasingverträge wird ein Prog. benötigt, mit dem man Leasingverträge erfassen, anzeigen, ändern und löschen kann. Außerdem sollen Rechnungen und eine Liste der noch nicht abgeschlossenen Leasingverträge (Felder für Leassingende sind noch mit 0 belegt) gedruckt werden können. Das Programm soll MODULAR aufgebaut werden und die einzelnen MODULE können arbeitsteilig erstellt werden.

    So das Prog ist da Aber nich Vollständig !!!

    #include <iostream.h> 
    #include <iomanip.h> 
    #include <conio.h> 
    #include <string.h> 
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    FILE*DATEI; 
    
    void eingabe_m(); 
    void ausgabe_m(); 
    void aendern_m(); 
    void loeschen_m();
    void eingabe(); 
    void ausgabe(); 
    void aendern(); 
    void loeschen();
    void tagesleasing();
    void monatsleasing (); 
    //--------------------------------------------------------------------------------------------------
    struct Programm 
    { 
            int lvnr;               //Leasingvertragsnummer 
            int lonr;               //Leasingobjektnummer 
            char lob[20];           //Leasingobjektbezeichnung 
            int knr;                //Kundennummer 
            char kn[20];            //Kundenname 
            char str[30];           //Strasse 
            int plz;                //PLZ 
            char ort[30];           //Ort 
            char lbtag[10];         //Leasingbeginn: Tag 
            char lbmonat[9];        //Leasingbeginn: Monat 
            char lbjahr[4];         //Leasingbeginn: Jahr 
            char letag[10];         //Leassingende: Tag 
            char lemonat[9];        //Leassingende: Monat 
            char lejahr[4];         //Leassingende: Jahr 
            double rb;              //Rechnungsbetrag 
    } 
    STRUKT; 
    //--------------------------------------------------------------------------------------------------
    int main() 
    { 
            int i; 
    
            do 
            {       cout<<"\n1. Tagesleasing\n";
                    cout<<"\n2. Monatsleasing\n\n\t";
                    cin>>i; 
                    switch(i) 
                    { 
                            case 1: tagesleasing();break;
                            case 2: monatsleasing();break; 
    
                            default: cout<<"Fehler!\n";break; 
                    } 
            } 
            while(i!=0); 
            getch(); 
            return 0; 
    } 
    //==================================================================================================
    void tagesleasing ()
    {
    clrscr();
    cout <<"Tagesleasing  Eingabe\n\n";
     int i; 
            do 
            { 
                    cout<<"1. Eingabe\n"; 
                    cout<<"2. Ausgabe\n"; 
                    cout<<"3. Aendern\n"; 
                    cout<<"4. Loeschen\n"; 
                    cout<<"0. ENDE\n\n"; 
                    cout<<"Bitte treffen Sie eine Entscheidung: "; 
                    cin>>i; 
                    switch(i) 
                    { 
                            case 1: eingabe();break; 
                            case 2: ausgabe();break; 
                            case 3: aendern();break; 
                            case 4: loeschen();break; 
                            case 0: cout<<"\nDas Programm endet hier..";break; 
                            default: cout<<"Fehler!\n";break; 
                    } 
            } 
            while (i!=0); 
            getch(); 
            exit (1);
    }
    //--------------------------------------------------------------------------------------------------
    
    void eingabe() 
    { 
            char x; 
            clrscr(); 
            DATEI=fopen("C:\\leasing.dat","a+"); 
            do 
            { 
                    cout<<"Bitte geben Sie die Leasingvertragsnummer ein: "; 
                    cin>>STRUKT.lvnr; 
                    cout<<"Bitte geben Sie die Leasingobjektnummer ein: "; 
                    cin>>STRUKT.lonr; 
                    cout<<"Bitte geben Sie die Leasingobjektbezeichnung ein: "; 
                    cin>>STRUKT.lob; 
                    cout<<"Bitte geben Sie die Kundennummer ein: "; 
                    cin>>STRUKT.knr; 
                    cout<<"Bitte geben Sie den Kundennamen ein: "; 
                    cin>>STRUKT.kn; 
                    cout<<"Bitte geben Sie die Strasse ein: "; 
                    cin>>STRUKT.str; 
                    cout<<"Bitte geben Sie die PLZ ein: "; 
                    cin>>STRUKT.plz; 
                    cout<<"Bitte geben Sie den Ort ein: "; 
                    cin>>STRUKT.ort; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Tag) ein: "; 
                    cin>>STRUKT.lbtag; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Monat) ein: "; 
                    cin>>STRUKT.lbmonat; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Jahr) ein: "; 
                    cin>>STRUKT.lbjahr; 
                    cout<<"Bitte geben Sie das Leassingende(Tag) ein: "; 
                    cin>>STRUKT.letag; 
                    cout<<"Bitte geben Sie das Leassingende(Monat) ein: "; 
                    cin>>STRUKT.lemonat; 
                    cout<<"Bitte geben Sie das Leassingende(Jahr) ein: "; 
                    cin>>STRUKT.lejahr; 
                    cout<<"Bitte geben Sie den Rechnungsbetrag ein: "; 
                    cin>>STRUKT.rb; 
                    cout<<"\nWollen Sie abspeichern? Ja/Nein: "; 
                    cin>>x; 
                    if(x=='j') 
                    { 
                            fwrite(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    } 
                    cout<<"Wollen Sie weitermachen? Ja/Nein: "; 
                    cin>>x; 
            } 
            while(x!='n'); 
            fclose(DATEI); 
            clrscr(); 
            return; 
    } 
    //--------------------------------------------------------------------------------------------------
    void ausgabe() 
    { 
            clrscr(); 
            DATEI=fopen("C:\\leasing.dat","r+"); 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            cout<<"===================================================\n\n"; 
            do 
            { 
                    fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    cout<<"Leasingvertragsnummer:\t\t"<<STRUKT.lvnr<<"\n"; 
                    cout<<"Leasingobjektnummer:\t\t"<<STRUKT.lonr<<"\n"; 
                    cout<<"Leasingobjektbezeichnung:\t"<<STRUKT.lob<<"\n"; 
                    cout<<"Kundennummer:\t\t\t"<<STRUKT.knr<<"\n"; 
                    cout<<"Kundennamen:\t\t\t"<<STRUKT.kn<<"\n"; 
                    cout<<"Strasse:\t\t\t"<<STRUKT.str<<"\n"; 
                    cout<<"PLZ:\t\t\t\t"<<STRUKT.plz<<"\n"; 
                    cout<<"Ort:\t\t\t\t"<<STRUKT.ort<<"\n"; 
                    cout<<"Leasingbeginn(Tag):\t\t"<<STRUKT.lbtag<<"\n"; 
                    cout<<"Leasingbeginn(Monat):\t\t"<<STRUKT.lbmonat<<"\n"; 
                    cout<<"Leasingbeginn(Jahr):\t\t"<<STRUKT.lbjahr<<"\n"; 
                    cout<<"Leassingende(Tag):\t\t"<<STRUKT.letag<<"\n"; 
                    cout<<"Leassingende(Monat):\t\t"<<STRUKT.lemonat<<"\n"; 
                    cout<<"Leassingende(Jahr):\t\t"<<STRUKT.lejahr<<"\n"; 
                    cout<<"Rechnungsbetrag:\t\t"<<STRUKT.rb<<"\n\n"; 
                    cout<<"===================================================\n\n"; 
            } 
            while(!feof(DATEI)); 
            fclose(DATEI); 
            cout<<"Weiter mit beliebiger Taste..."; 
            getch(); 
            clrscr(); 
            return; 
    } 
    //--------------------------------------------------------------------------------------------------
    void aendern() 
    { 
            char x,suche; 
            int s=1; 
            clrscr(); 
            DATEI=fopen("C:\\leasing.dat","r+"); 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            do 
            { 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            cout<<"Bitte gesuchte Kundennummer eingeben: "; 
                    cin>>suche; 
                    if(suche == STRUKT.knr); 
                    { 
                            cout<<"Leasingvertragsnummer:\t\t"<<STRUKT.lvnr<<"\n"; 
                            cout<<"Leasingobjektnummer:\t\t"<<STRUKT.lonr<<"\n"; 
                            cout<<"Leasingobjektbezeichnung:\t"<<STRUKT.lob<<"\n"; 
                            cout<<"Kundennummer:\t\t\t"<<STRUKT.knr<<"\n"; 
                            cout<<"Kundennamen:\t\t\t"<<STRUKT.kn<<"\n"; 
                            cout<<"Strasse:\t\t\t"<<STRUKT.str<<"\n"; 
                            cout<<"PLZ:\t\t\t\t"<<STRUKT.plz<<"\n"; 
                            cout<<"Ort:\t\t\t\t"<<STRUKT.ort<<"\n"; 
                            cout<<"Leasingbeginn(Tag):\t\t"<<STRUKT.lbtag<<"\n"; 
                            cout<<"Leasingbeginn(Monat):\t\t"<<STRUKT.lbmonat<<"\n"; 
                            cout<<"Leasingbeginn(Jahr):\t\t"<<STRUKT.lbjahr<<"\n"; 
                            cout<<"Leassingende(Tag):\t\t"<<STRUKT.letag<<"\n"; 
                            cout<<"Leassingende(Monat):\t\t"<<STRUKT.lemonat<<"\n"; 
                            cout<<"Leassingende(Jahr):\t\t"<<STRUKT.lejahr<<"\n"; 
                            cout<<"Rechnungsbetrag:\t\t"<<STRUKT.rb<<"\n\n"; 
                            cout<<"Alter Rechnungsbetrag: "<<STRUKT.rb<<"\n"; 
                            cout<<"Neuer Rechnungsbetrag: "; 
                            cin>>STRUKT.rb; 
             fseek(DATEI,(s-1)*sizeof(struct Programm),SEEK_SET); 
                            fwrite(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    } 
          s++; 
                    cout<<"Wollen Sie weiter suchen? Ja/Nein: "; 
                    cin>>x; 
            } 
            while(x!='n'); 
            fclose(DATEI); 
            cout<<"\nWeiter mit beliebiger Taste..."; 
            getch(); 
            clrscr(); 
            return; 
    } 
    //--------------------------------------------------------------------------------------------------
    void loeschen() 
    { 
    } 
    //==================================================================================================
    
    void monatsleasing()
    {
    clrscr();
    cout <<"Monatsleasing Eingabe\n\n";
     int i; 
            do 
            { 
                    cout<<"1. Eingabe\n"; 
                    cout<<"2. Ausgabe\n"; 
                    cout<<"3. Aendern\n"; 
                    cout<<"4. Loeschen\n"; 
                    cout<<"0. ENDE\n\n"; 
                    cout<<"Bitte treffen Sie eine Entscheidung: "; 
                    cin>>i; 
                    switch(i) 
                    { 
                            case 1: eingabe_m();break; 
                            case 2: ausgabe_m();break; 
                            case 3: aendern_m();break; 
                            case 4: loeschen_m();break; 
                            case 0: cout<<"\nDas Programm endet hier..";break; 
                            default: cout<<"Fehler!\n";break; 
                    } 
            } 
            while(i!=0); 
            getch(); 
            exit (1);
    }
    
    //--------------------------------------------------------------------------------------------------
    void eingabe_m() 
    { 
            char x; 
            clrscr(); 
            DATEI=fopen("C:\\mleasing.dat","a+"); 
            do 
            { 
                    cout<<"Bitte geben Sie die Leasingvertragsnummer ein: "; 
                    cin>>STRUKT.lvnr; 
                    cout<<"Bitte geben Sie die Leasingobjektnummer ein: "; 
                    cin>>STRUKT.lonr; 
                    cout<<"Bitte geben Sie die Leasingobjektbezeichnung ein: "; 
                    cin>>STRUKT.lob; 
                    cout<<"Bitte geben Sie die Kundennummer ein: "; 
                    cin>>STRUKT.knr; 
                    cout<<"Bitte geben Sie den Kundennamen ein: "; 
                    cin>>STRUKT.kn; 
                    cout<<"Bitte geben Sie die Strasse ein: "; 
                    cin>>STRUKT.str; 
                    cout<<"Bitte geben Sie die PLZ ein: "; 
                    cin>>STRUKT.plz; 
                    cout<<"Bitte geben Sie den Ort ein: "; 
                    cin>>STRUKT.ort; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Tag) ein: "; 
                    cin>>STRUKT.lbtag; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Monat) ein: "; 
                    cin>>STRUKT.lbmonat; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Jahr) ein: "; 
                    cin>>STRUKT.lbjahr; 
                    cout<<"Bitte geben Sie das Leassingende(Tag) ein: "; 
                    cin>>STRUKT.letag; 
                    cout<<"Bitte geben Sie das Leassingende(Monat) ein: "; 
                    cin>>STRUKT.lemonat; 
                    cout<<"Bitte geben Sie das Leassingende(Jahr) ein: "; 
                    cin>>STRUKT.lejahr; 
                    cout<<"Bitte geben Sie den Rechnungsbetrag ein: "; 
                    cin>>STRUKT.rb; 
                    cout<<"\nWollen Sie abspeichern? Ja/Nein: "; 
                    cin>>x; 
                    if(x=='j') 
                    { 
                            fwrite(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    } 
                    cout<<"Wollen Sie weitermachen? Ja/Nein: "; 
                    cin>>x; 
            } 
            while(x!='n'); 
            fclose(DATEI); 
            clrscr(); 
            return; 
    } 
    //--------------------------------------------------------------------------------------------------
    void ausgabe_m() 
    { 
            clrscr(); 
            DATEI=fopen("C:\\mleasing.dat","r+"); 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            cout<<"===================================================\n\n"; 
            do 
            { 
                    fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    cout<<"Leasingvertragsnummer:\t\t"<<STRUKT.lvnr<<"\n"; 
                    cout<<"Leasingobjektnummer:\t\t"<<STRUKT.lonr<<"\n"; 
                    cout<<"Leasingobjektbezeichnung:\t"<<STRUKT.lob<<"\n"; 
                    cout<<"Kundennummer:\t\t\t"<<STRUKT.knr<<"\n"; 
                    cout<<"Kundennamen:\t\t\t"<<STRUKT.kn<<"\n"; 
                    cout<<"Strasse:\t\t\t"<<STRUKT.str<<"\n"; 
                    cout<<"PLZ:\t\t\t\t"<<STRUKT.plz<<"\n"; 
                    cout<<"Ort:\t\t\t\t"<<STRUKT.ort<<"\n"; 
                    cout<<"Leasingbeginn(Tag):\t\t"<<STRUKT.lbtag<<"\n"; 
                    cout<<"Leasingbeginn(Monat):\t\t"<<STRUKT.lbmonat<<"\n"; 
                    cout<<"Leasingbeginn(Jahr):\t\t"<<STRUKT.lbjahr<<"\n"; 
                    cout<<"Leassingende(Tag):\t\t"<<STRUKT.letag<<"\n"; 
                    cout<<"Leassingende(Monat):\t\t"<<STRUKT.lemonat<<"\n"; 
                    cout<<"Leassingende(Jahr):\t\t"<<STRUKT.lejahr<<"\n"; 
                    cout<<"Rechnungsbetrag:\t\t"<<STRUKT.rb<<"\n\n"; 
                    cout<<"===================================================\n\n"; 
            } 
            while(!feof(DATEI)); 
            fclose(DATEI); 
            cout<<"Weiter mit beliebiger Taste..."; 
            getch(); 
            clrscr(); 
            return; 
    } 
    //--------------------------------------------------------------------------------------------------
    void aendern_m() 
    { 
            char x,suche; 
            int s=1; 
            clrscr(); 
            DATEI=fopen("C:\\mleasing.dat","r+"); 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            do 
            { 
                    fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
          cout<<"Bitte gesuchte Kundennummer eingeben: "; 
                    cin>>suche; 
                    if(suche == STRUKT.knr); 
                    { 
                            cout<<"Leasingvertragsnummer:\t\t"<<STRUKT.lvnr<<"\n"; 
                            cout<<"Leasingobjektnummer:\t\t"<<STRUKT.lonr<<"\n"; 
                            cout<<"Leasingobjektbezeichnung:\t"<<STRUKT.lob<<"\n"; 
                            cout<<"Kundennummer:\t\t\t"<<STRUKT.knr<<"\n"; 
                            cout<<"Kundennamen:\t\t\t"<<STRUKT.kn<<"\n"; 
                            cout<<"Strasse:\t\t\t"<<STRUKT.str<<"\n"; 
                            cout<<"PLZ:\t\t\t\t"<<STRUKT.plz<<"\n"; 
                            cout<<"Ort:\t\t\t\t"<<STRUKT.ort<<"\n"; 
                            cout<<"Leasingbeginn(Tag):\t\t"<<STRUKT.lbtag<<"\n"; 
                            cout<<"Leasingbeginn(Monat):\t\t"<<STRUKT.lbmonat<<"\n"; 
                            cout<<"Leasingbeginn(Jahr):\t\t"<<STRUKT.lbjahr<<"\n"; 
                            cout<<"Leassingende(Tag):\t\t"<<STRUKT.letag<<"\n"; 
                            cout<<"Leassingende(Monat):\t\t"<<STRUKT.lemonat<<"\n"; 
                            cout<<"Leassingende(Jahr):\t\t"<<STRUKT.lejahr<<"\n"; 
                            cout<<"Rechnungsbetrag:\t\t"<<STRUKT.rb<<"\n\n"; 
                            cout<<"Alter Rechnungsbetrag: "<<STRUKT.rb<<"\n"; 
                            cout<<"Neuer Rechnungsbetrag: "; 
                            cin>>STRUKT.rb; 
             fseek(DATEI,(s-1)*sizeof(struct Programm),SEEK_SET); 
                            fwrite(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    } 
          s++; 
                    cout<<"\n\nWollen Sie weiter suchen? Ja/Nein: "; 
                    cin>>x; 
            } 
            while(x!='n'); 
            fclose(DATEI); 
            cout<<"\nWeiter mit beliebiger Taste..."; 
            getch(); 
            clrscr(); 
            return; 
    } 
    //--------------------------------------------------------------------------------------------------
    void loeschen_m() 
    { 
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    

    So jetzt das Folgendes Problemm! und zwar in der zeile 190 und 358 Sagt der Compiler Code hat Keine Wirkung cih weiss auch nich warum ?

    2 Problemm die Löschfunktion! Könnte jemmand mir da ein Tipp geben wie ich das hinkriege mit der Löschfunktion ?

    3. Nach der daten eingabe Und Abschpeicherung will ich die daten verändern so (wenn ich z.B Kundennummer eingebe der nich Existiert dann kann ich Trodzdem die Daten verändern !!!.
    🙄

    Es währe sehr NETT wenn mir da jemmand helfen könnte !!!!!!!!!!!!!

    Ich Bedanke mich schon im Vorraus

    P.s Rechtschreibfehler sind BEABSICHTIGT 😉 😃 😃



  • Wo sind denn die Zeilen ? (Hab grad keine Lust zu zählen)



  • und zwar ist es bei

    void aendern() 
    { 
            char x,suche; 
            int s=1; 
            clrscr(); 
            DATEI=fopen("C:\\leasing.dat","r+"); 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); //<----------------Die sache hier
            do 
            { 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            cout<<"Bitte gesuchte Kundennummer eingeben: "; 
                    cin>>suche; 
                    if(suche == STRUKT.knr); 
                    { 
                            cout<<"Leasingvertragsnummer:\t\t"<<STRUKT.lvnr<<"\n"; 
                            cout<<"Leasingobjektnummer:\t\t"<<STRUKT.lonr<<"\n"; 
                            cout<<"Leasingobjektbezeichnung:\t"<<STRUKT.lob<<"\n"; 
                            cout<<"Kundennummer:\t\t\t"<<STRUKT.knr<<"\n"; 
                            cout<<"Kundennamen:\t\t\t"<<STRUKT.kn<<"\n"; 
                            cout<<"Strasse:\t\t\t"<<STRUKT.str<<"\n"; 
                            cout<<"PLZ:\t\t\t\t"<<STRUKT.plz<<"\n"; 
                            cout<<"Ort:\t\t\t\t"<<STRUKT.ort<<"\n"; 
                            cout<<"Leasingbeginn(Tag):\t\t"<<STRUKT.lbtag<<"\n"; 
                            cout<<"Leasingbeginn(Monat):\t\t"<<STRUKT.lbmonat<<"\n"; 
                            cout<<"Leasingbeginn(Jahr):\t\t"<<STRUKT.lbjahr<<"\n"; 
                            cout<<"Leassingende(Tag):\t\t"<<STRUKT.letag<<"\n"; 
                            cout<<"Leassingende(Monat):\t\t"<<STRUKT.lemonat<<"\n"; 
                            cout<<"Leassingende(Jahr):\t\t"<<STRUKT.lejahr<<"\n"; 
                            cout<<"Rechnungsbetrag:\t\t"<<STRUKT.rb<<"\n\n"; 
                            cout<<"Alter Rechnungsbetrag: "<<STRUKT.rb<<"\n"; 
                            cout<<"Neuer Rechnungsbetrag: "; 
                            cin>>STRUKT.rb; 
             fseek(DATEI,(s-1)*sizeof(struct Programm),SEEK_SET); 
                            fwrite(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    } 
          s++; 
                    cout<<"Wollen Sie weiter suchen? Ja/Nein: "; 
                    cin>>x; 
            } 
            while(x!='n'); 
            fclose(DATEI); 
            cout<<"\nWeiter mit beliebiger Taste..."; 
            getch(); 
            clrscr(); 
            return; 
    }
    


  • if(suche == STRUKT.knr); 
                           ^
    

    Schau mal da ist ein ; zu viel



  • Ich dachte Ertmall auch das der Semikolon schuld dran ist Aber er ist es nich!

    Zwar wenn ich es wegnehme dann meldet sich der Comiler Nicht!!!

    Aber dann funktioniert die Aendern Funktion nich mehr!!!

    Oder hat jemmand neen anderen Vorschlag für die Unterfunktion "Aundern"?!??! 😞



  • Fiktor schrieb:

    Ich dachte Ertmall auch das der Semikolon schuld dran ist Aber er ist es nich!

    Zwar wenn ich es wegnehme dann meldet sich der Comiler Nicht!!!

    Aber dann funktioniert die Aendern Funktion nich mehr!!!

    Oder hat jemmand neen anderen Vorschlag für die Unterfunktion "Aundern"?!??! 😞

    das problem ist das semikolon. das muss weg.

    das die funktion nicht geht, liegt daran, dass du mit

    if(suche == STRUKT.knr)
    

    einen buchstaben mit einem string vergleichst - dabei wird nichts für dich sinnvolles herauskommen.

    das die funktion geht, wenn das semikolon da ist, liegt daran, dass dann der ganze block darunter generell ausgeführt wird.



  • Mach aus char suche einfach ein int suche und das problem mit dem ändern ist gelöst.



  • stimmt ja.... knr war ja ein int und kein string.... im eifer des gefechtes übersehen :p



  • Danke Danke Danke !!!!!!!!!!!!!!!!!!!!!!!! 😃 😃 😃 #

    Was hätte ich ohne EUCH gemacht ?!?!?!?

    Nochmall Danke!!!!!



  • Fiktor schrieb:

    Das stimmt mir dem Int und Char so Ich habs Koregiert aber das Problemmist Trodzdemm da !!! 😞

    1.) Welches Problem?
    2.) Was hat das debuggen ergeben?



  • Hat sich schon Erledigt!!! 🙂

    Ich Bedanke mich nochmall !!!!



  • Ähm ja Ich bin noch auf ein Problemm Gestossen und Zwar

    Wenn ich ne eingabe 2 Datensätze mache Überschreibt er denn 1 Dantensatz mit demm 2 ?!?!

    Also z.B 1 Datensatz war (1) dann 2 Datensatz war (3)
    So bei der Ausgabe Kommt dann (3) (3)!!!
    Normalleweise musst jetzt da Stehen (1) (3)

    Hier ist der Code

    // Onkel Viktor, 16.5.2004, all rights reserved
    #include <iostream.h> 
    #include <iomanip.h> 
    #include <conio.h> 
    #include <string.h> 
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    FILE*DATEI; 
    
    void eingabe(); 
    void ausgabe(); 
    void aendern(); 
    void tagesleasing();
    
    //--------------------------------------------------------------------------------------------------
    struct Programm 
    { 
            int lvnr;               //Leasingvertragsnummer 
            int lonr;               //Leasingobjektnummer 
            char lob[20];           //Leasingobjektbezeichnung 
            int knr;                //Kundennummer 
            char kn[20];            //Kundenname 
            char str[30];           //Strasse 
            int plz;                //PLZ 
            char ort[30];           //Ort 
            char lbtag[10];         //Leasingbeginn: Tag 
            char lbmonat[9];        //Leasingbeginn: Monat 
            char lbjahr[4];         //Leasingbeginn: Jahr 
            char letag[10];         //Leassingende: Tag 
            char lemonat[9];        //Leassingende: Monat 
            char lejahr[4];         //Leassingende: Jahr 
            double rb;              //Rechnungsbetrag 
    } 
    STRUKT[100]; 
    //--------------------------------------------------------------------------------------------------
    int main() 
    { 
            int i; 
    
            do 
            {       cout<<"\n1. Tagesleasing\n";
                    cout<<"\n2. Monatsleasing\n\n\t";
                    cin>>i; 
                    switch(i) 
                    { 
                            case 1: tagesleasing();break;
    
                            default: cout<<"Fehler!\n";break; 
                    } 
            } 
            while(i!=0); 
            getch(); 
            return 0; 
    } 
    //==================================================================================================
    void tagesleasing ()
    {
    clrscr();
    cout <<"Tagesleasing  Eingabe\n\n";
     int i; 
            do 
            { 
                    cout<<"1. Eingabe\n"; 
                    cout<<"2. Ausgabe\n"; 
                    cout<<"3. Aendern\n"; 
                    cout<<"4. Loeschen\n"; 
                    cout<<"0. ENDE\n\n"; 
                    cout<<"Bitte treffen Sie eine Entscheidung: "; 
                    cin>>i; 
                    switch(i) 
                    { 
                            case 1: eingabe();break; 
                            case 2: ausgabe();break; 
                            case 3: aendern();break; 
                            case 4: loeschen();break; 
                            case 0: cout<<"\nDas Programm endet hier..";break; 
                            default: cout<<"Fehler!\n";break; 
                    } 
            } 
            while (i!=0); 
            getch(); 
            exit (1);
    }
    //--------------------------------------------------------------------------------------------------
    
    void eingabe() 
    {         for(int i=0;i<100;i++)
            { 
            char x; 
            clrscr(); 
            DATEI=fopen("C:\\leasing.dat","a+"); 
            do 
            {    
            cout<<"Bitte geben Sie die Leasingvertragsnummer ein: "; 
                    cin>>STRUKT[i].lvnr; 
                    cout<<"Bitte geben Sie die Leasingobjektnummer ein: "; 
                    cin>>STRUKT[i].lonr; 
                    cout<<"Bitte geben Sie die Leasingobjektbezeichnung ein: "; 
                    cin>>STRUKT[i].lob; 
                    cout<<"Bitte geben Sie die Kundennummer ein: "; 
                    cin>>STRUKT[i].knr; 
                    cout<<"Bitte geben Sie den Kundennamen ein: "; 
                    cin>>STRUKT[i].kn; 
                    cout<<"Bitte geben Sie die Strasse ein: "; 
                    cin>>STRUKT[i].str; 
                    cout<<"Bitte geben Sie die PLZ ein: "; 
                    cin>>STRUKT[i].plz; 
                    cout<<"Bitte geben Sie den Ort ein: "; 
                    cin>>STRUKT[i].ort; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Tag) ein: "; 
                    cin>>STRUKT[i].lbtag; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Monat) ein: "; 
                    cin>>STRUKT[i].lbmonat; 
                    cout<<"Bitte geben Sie den Leasingbeginn(Jahr) ein: "; 
                    cin>>STRUKT[i].lbjahr; 
                    cout<<"Bitte geben Sie das Leassingende(Tag) ein: "; 
                    cin>>STRUKT[i].letag; 
                    cout<<"Bitte geben Sie das Leassingende(Monat) ein: "; 
                    cin>>STRUKT[i].lemonat; 
                    cout<<"Bitte geben Sie das Leassingende(Jahr) ein: "; 
                    cin>>STRUKT[i].lejahr; 
                    cout<<"Bitte geben Sie den Rechnungsbetrag ein: "; 
                    cin>>STRUKT[i].rb; 
                    cout<<"\nWollen Sie abspeichern? Ja/Nein: "; 
                    cin>>x;
    
                    if(x=='j') 
                    { 
                            fwrite(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    } 
                    cout<<"Wollen Sie weitermachen? Ja/Nein: "; 
                    cin>>x; 
            } 
            while(x!='n'); 
            fclose(DATEI); 
            clrscr(); 
            return; 
    }} 
    //--------------------------------------------------------------------------------------------------
    void ausgabe() 
    {    
            for(int i=0;i<100;i++)
            { 
    
            clrscr(); 
            DATEI=fopen("C:\\leasing.dat","r+"); 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            cout<<"===================================================\n\n"; 
            do 
            {     
                    fread(&STRUKT,sizeof(STRUKT),1,DATEI);
    
                    cout<<"Leasingvertragsnummer:\t\t"<<STRUKT[i].lvnr<<"\n"; 
                    cout<<"Leasingobjektnummer:\t\t"<<STRUKT[i].lonr<<"\n"; 
                    cout<<"Leasingobjektbezeichnung:\t"<<STRUKT[i].lob<<"\n"; 
                    cout<<"Kundennummer:\t\t\t"<<STRUKT[i].knr<<"\n"; 
                    cout<<"Kundennamen:\t\t\t"<<STRUKT[i].kn<<"\n"; 
                    cout<<"Strasse:\t\t\t"<<STRUKT[i].str<<"\n"; 
                    cout<<"PLZ:\t\t\t\t"<<STRUKT[i].plz<<"\n"; 
                    cout<<"Ort:\t\t\t\t"<<STRUKT[i].ort<<"\n"; 
                    cout<<"Leasingbeginn(Tag):\t\t"<<STRUKT[i].lbtag<<"\n"; 
                    cout<<"Leasingbeginn(Monat):\t\t"<<STRUKT[i].lbmonat<<"\n"; 
                    cout<<"Leasingbeginn(Jahr):\t\t"<<STRUKT[i].lbjahr<<"\n"; 
                    cout<<"Leassingende(Tag):\t\t"<<STRUKT[i].letag<<"\n"; 
                    cout<<"Leassingende(Monat):\t\t"<<STRUKT[i].lemonat<<"\n"; 
                    cout<<"Leassingende(Jahr):\t\t"<<STRUKT[i].lejahr<<"\n"; 
                    cout<<"Rechnungsbetrag:\t\t"<<STRUKT[i].rb<<"\n\n"; 
                    cout<<"===================================================\n\n"; 
            }       
            while(!feof(DATEI)); 
            fclose(DATEI); 
            cout<<"Weiter mit beliebiger Taste..."; 
            getch(); 
            clrscr(); 
            return;  }
    } 
    //--------------------------------------------------------------------------------------------------
    void aendern() 
    { 
       for(int i=0;i<100;i++)
        {  
            char x; 
            int suche,s=1;
    
            clrscr(); 
            DATEI=fopen("C:\\leasing.dat","r+"); 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            do 
            { 
            fread(&STRUKT,sizeof(STRUKT),1,DATEI); 
            cout<<"Bitte gesuchte Kundennummer eingeben: ";
    
                    cin>>suche;
    
                    if(suche == STRUKT[i].knr) 
                    {        
                            cout<<"Leasingvertragsnummer:\t\t"<<STRUKT[i].lvnr<<"\n"; 
                            cout<<"Leasingobjektnummer:\t\t"<<STRUKT[i].lonr<<"\n"; 
                            cout<<"Leasingobjektbezeichnung:\t"<<STRUKT[i].lob<<"\n"; 
                            cout<<"Kundennummer:\t\t\t"<<STRUKT[i].knr<<"\n"; 
                            cout<<"Kundennamen:\t\t\t"<<STRUKT[i].kn<<"\n"; 
                            cout<<"Strasse:\t\t\t"<<STRUKT[i].str<<"\n"; 
                            cout<<"PLZ:\t\t\t\t"<<STRUKT[i].plz<<"\n"; 
                            cout<<"Ort:\t\t\t\t"<<STRUKT[i].ort<<"\n"; 
                            cout<<"Leasingbeginn(Tag):\t\t"<<STRUKT[i].lbtag<<"\n"; 
                            cout<<"Leasingbeginn(Monat):\t\t"<<STRUKT[i].lbmonat<<"\n"; 
                            cout<<"Leasingbeginn(Jahr):\t\t"<<STRUKT[i].lbjahr<<"\n"; 
                            cout<<"Leassingende(Tag):\t\t"<<STRUKT[i].letag<<"\n"; 
                            cout<<"Leassingende(Monat):\t\t"<<STRUKT[i].lemonat<<"\n"; 
                            cout<<"Leassingende(Jahr):\t\t"<<STRUKT[i].lejahr<<"\n"; 
                            cout<<"Rechnungsbetrag:\t\t"<<STRUKT[i].rb<<"\n\n"; 
                            cout<<"Alter Rechnungsbetrag: "<<STRUKT[i].rb<<"\n"; 
                            cout<<"Neuer Rechnungsbetrag: "; 
                            cin>>STRUKT[i].rb; 
             fseek(DATEI,(s-1)*sizeof(struct Programm),SEEK_SET); 
                            fwrite(&STRUKT,sizeof(STRUKT),1,DATEI); 
                    } 
          s++; 
                    cout<<"Wollen Sie weiter suchen? Ja/Nein: "; 
                    cin>>x; 
            } 
            while(x!='n'); 
            fclose(DATEI); 
            cout<<"\nWeiter mit beliebiger Taste..."; 
            getch(); 
            clrscr(); 
            return; 
    }      }
    //--------------------------------------------------------------------------------------------------
    

    Ich habs versucht rauszufinden woran es Liegt aber mir ist kein Fahler Aufgefahlen 😞



  • könntest du bitte den code demnächste etwas beschränken? es is nich einfach sich da durch zukämpfen^^

    //edit sorry, ich überblicke erst jetzt, was du alles machst,und nimm meinen guten rat an, überarbeite nochmal dein ganzes programm, da sind mehrere logische fehler drin, zb was ich bis grad eben übersehen hab:

    in der eingabe hast du zuerst eine for schleife, welche bis 100 zählt.
    dazu hast du eine struktur, welche 100 einträge hat, demnach siehts auf dem ersten blick so aus, dass du die 100 strukturen füllen willst, aber dann in der do while schleife nimmst du immer nur die erste struktur und benutzt sie immer wieder, um in die datei zu schreiben, der fehler ist, das du dich scheinbar nicht entscheiden konntest, was du machen wolltest...ähnliches bei der ausgabe

    dein fehler in der ausgabe ist einfach, dass du den ersten eintrag einliest ohne ihn auszugeben


Anmelden zum Antworten