Benutzernamen und Pin Prüfung mit Variablen aus der Datenbank-Wie geht das?



  • Das Problem ist direkt nach dem Anmeldeteil!

    das nicht erkannt wird das der Anwender und der Pin zusammengehören.
    bzw das Pintool garnicht funzt. warum auch immer habe keine ahnung wie ich die Übergabe und Übernahme so definieren kann das es funtkioniert.

    Desweitern habe ich irgendwie keine Idee wie ich es anstellen soll das Lehre und Schüler über die If els Verzweigung getrennt werden.

    Das ist mein gesamter Quelltext

    zeilen 1 - 40 ist die Datenbank für das Programm.

    Zeile 42 - 83 ist meine Pinfunktion

    Zeile 85 - 302 ist das Programm mit der pinfunktion die leider nicht läuft.
    Warum auch immer.

    und von Zeile 304 - 559 ist das Programm ohne Funktion - läuft allerdings auch nicht. Entweder ich kann mich anmelden mit Name und pin/ bzw mit egal was ich eingebe oder ich kann eingeben was ich will und es ist immer falsch.



  • Das ist so ziemlich das schlimmste, was mir jemals untergekommen ist. Das ist kein C++, das ist auch kein C, das ist einfach nur Scheiße.

    Bitte erklär uns kurz und verständlich, was das Ding tun soll, dann kann man versuchen, dir Ratschläge zu geben. Mir ist nicht klar, was das Ding tun soll.



  • 314159265358979 schrieb:

    das ist einfach nur Scheiße.

    Da muss ich dem guten Herr Pi leider recht geben. Viele Casts, Sprungbefehle, nicht existierende Header ( <iostream.h> ), rohe Arrays, mehrdeutige Zahlen (69 😃 ), Mehrdeutigkeit bei Bezeichnern, kein Vertrauen auf RAII, unlokale Deklarationen, Rechtschreibefehler, unnötige sleep -Befehle, Unwissenheit über implizite Konvertierungen und Operatorprioritäten und einen schlechten Codestil hast du...



  • EOutOfResources schrieb:

    314159265358979 schrieb:

    das ist einfach nur Scheiße.

    Da muss ich dem guten Herr Pi leider recht geben. Viele Casts, Sprungbefehle, nicht existierende Header ( <iostream.h> ), rohe Arrays, mehrdeutige Zahlen (69 😃 ), Mehrdeutigkeit bei Bezeichnern, kein Vertrauen auf RAII, unlokale Deklarationen, Rechtschreibefehler, unnötige sleep -Befehle, Unwissenheit über implizite Konvertierungen und Operatorprioritäten und einen schlechten Codestil hast du...

    An statt Objektiv zu beurteilen und zu hinterfragen was für einen kenntniss stand man hat - wird genadenlos alles schlecht gemacht.

    Ich weiss selber das , mein Program vom Aufbau her noch nicht das schönste ist, und anstatt zu sagen das ist unnötig und das ist "Scheiße", wäre mir mit gezielten Fragen und Lösungsansätzen mehr geholfen.

    Ich habe weder Programmierung studiert noch mache ich das Professionell - wenn due wissen würdest welchen Wissenstand ich habe, würdest du wahrscheinlich ein wenig anders Argumentiern.

    **Das Programm soll von 2 Arten von Anwendern zu benutzen sein.
    Es sollen min 15 Anwender so definiert werden das Sie max 100 Additionsaufgaben rechnen können, nach jeder Aufgabe Ihren Punktestand erfahren und gefragt werden ob Sie noch eine weitere Aufgabe rechnen wollen. Nach der 100. Aufgabe ist Schluss und der Anwender Schüler erhält seine Bewertung.

    Die 2. Art von Anwendern soll:
    1. nicht rechnen!
    2. nach einzelnen Schülern suchen können,
    3. neue Schüler anlegen können,
    4. die Variablen Aufgabenanzahl und Punkte sollen zurückzusetzen sein,
    5. der durchschnitt der Gruppe Schüler soll Abrufbar sein,
    6. die Ergebnisse aller Schüler soll angezeigt werden,

    Beide Arten von Anwendern haben einen Anmeldenamen und ein Kennwort/Passsword/PIN - diese sollen geprüft werden und spätesten nach der dritten fehlerhaften Eingabe ist Schluss (für heute).**



  • Hab es überflogen.
    Mit welchem Compiler willst du den Quelltext übersetzen?

    Ja, es gibt mir bekannte Compiler, die das so haben wollten. Aber heute wird mit denen nur selten etwas gemacht.

    Also warum C++ im Stil der 90er und für den damaligen Marktführer auf dem Gebiet?

    MfG f.-th.



  • f.-th. schrieb:

    Hab es überflogen.
    Mit welchem Compiler willst du den Quelltext übersetzen?

    Ja, es gibt mir bekannte Compiler, die das so haben wollten. Aber heute wird mit denen nur selten etwas gemacht.

    Also warum C++ im Stil der 90er und für den damaligen Marktführer auf dem Gebiet?

    MfG f.-th.

    Ich Nutze den CPPTrain2
    hier der Link dazu:
    http://www.t-cassebaum.de/

    Ja, warum - weil er seinen Zweck erfüllt, os ist und mit für den Anfang empfohlen wurde.



  • Der gute Herr Cassebaum lebt im letzten Jahrtausend. iostream.h ist seit 1998 nicht mehr im Standard enthalten. Wenn du C++ lernen möchtest, kaufe dir ein gutes Buch, sonst verplemperst du deine Zeit! Die Frage nach einem guten Buch wird hier im Forum immer wieder gestellt, wenn du die Suchfunktion benutzt solltest du also genug Vorschläge finden.



  • Also wurdest du in deine Schule/deinem Lehrinstitut dazu angehalten CPPTrain2 zu nutzen? CPPTrain2 ist ja nur eine IDE wo du den Quelltext eingibst oder erstellst, wenn ich das nicht falsch gelesen hab.

    Wenn der Compiler der free bcc ist, der kann auch modernen Quelltext übersetzen.

    Schau mal ob dein CPPTrain2 mit so etwas klar kommt:

    #include <iostream>  // so sehen Header heute aus
    
    using namespace std; // oder, wenn das nicht gewollt std:: entsprechend ergänzen
    
    int main()
    {
      cout << "Hello World!" << endl;
      cout << "Welcome to C++ Programming" << endl; 
    }
    

    Hast du in deine Unterlagen auch nur die alten Beispiele?

    MfG f.-th.



  • #include <iostream.h>  // so sehen Header heute aus
    
    using namespace std; // oder, wenn das nicht gewollt std:: entsprechend ergänzen
    
    int main()
    {
      cout << "Hello World!" << endl;
      cout << "Welcome to C++ Programming" << endl;
      getchar();
    }
    

    so funktioniert es - ohne getchar(); schließt es sofort.

    Ja in meinen Aufzeichnungen sind mehr oder weniger nur Dinge von den Anfängen von C++ enthalten - das nötigste!

    Zum Anfang der lehrphase programmierung hieß es, wir sollen keine Programme programmieren nur lesen und verstehen.
    Und dann zum Abschluss so eine Aufgabe!



  • Danos schrieb:

    #include <iostream.h>  // so sehen Header heute aus
    

    Warum hast du jetzt doch wieder ein .h eingefügt? So sehen Header eben nicht aus!



  • #include <iostream>  // so sehen Header heute aus
    


  • #include <iostream> // so sehen Header heute aus

    using namespace std; // oder, wenn das nicht gewollt std:: entsprechend ergänzen
    
    int main()
    {
      cout << "Hello World!" << endl;
      cout << "Welcome to C++ Programming" << endl;
      getchar();
    }
    

    Sorry - So ist es korrekt! 😃



  • Bei der IDE ist Volkards C++ Kurs dabei, wo auch noch iostream.h verwendet wurde. 😃



  • "schließt sofort" -> die Beiträge hier im Forum können wir kaum noch zählen 😃

    Ihr sollt Consolen-Programme auch auf der Console ausführen 👍

    So zurück zur Basis.

    Hier mal ein wenig Quelltext:

    // Additionsaufgabengenerator
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    struct person
    {
    	string name;
    	int pinnummer;		// wenn andere Zeichen oder Buchstaben möglich sein sollen -> ändern
    	bool sl;			// schüler/lehrer;
    	int heutenichtmehr; // nach Fehleingabe Tageszahl - sonst 0
    } nutzer;
    
    void dummy()  // nur zum Test
    {
    	nutzer.name = "maier";
    	nutzer.pinnummer = 1234;
    	nutzer.sl = 1;
    	nutzer.heutenichtmehr = -3;
    }
    
    int nutzerident()
    {
    	int versuch = 0;
    	string nname;
    	int pinn;
    	do
    	{
    		cout << "Bitte geben sie ihren Namen ein: ";
    		cin >> nname;
    		cout << endl << "Pin eingeben: ";
    		cin >> pinn;
    		if(nutzer.name == nname)
    		{
    		    versuch = 3;
                nutzer.heutenichtmehr = 0;
            }
            else
            {
                versuch++;
    		    // Datum in Struct eintragen -> ergänzen
                nutzer.heutenichtmehr = 31;  // 31 -> Dummy
            }
        } while (versuch < 3);
    	return (nutzer.heutenichtmehr);
    
    }
    
    void lehrer()
    {
        cout << "Lehrerfunktion" << endl;
        // Gruppen, Schüler + Aufgaben -> ideal auch auf Funktionsgruppen teilen
    }
    
    void schueler()
    {
        cout << "Schülerfunktion" << endl;
        // Gruppen, Schüler + Aufgaben -> ideal auch auf Funktionsgruppen teilen
    }
    
    int main()
    {
    	cout << "Additionsaufgabengenerator" << endl << endl;
    	dummy();
    	cout << "Nutzeridentifikation" << endl;
    	if(!nutzerident())
    	{
    	    cout << "Nutzer identifiziert" << endl;
    	    if(nutzer.sl)
                lehrer();
            else
                schueler(); // ue damit es einfacher wird ? <- Ansichtssache
    	}
    	else
    	{
    	    cout << "Identifikation fehlerhaft" << endl << "Programm beendet";
    		// Konsequenz, wenn nicht identifiziert
    	}
    }
    

    hoffe mal das kein grosser Bock drin ist und das halbwegs den Kenntnissen des Betragserstellers entgegen kommt. Der Quellcode löst noch nicht die ganze Aufgabe. Ein wenig Arbeit soll ja noch bleiben. 😃

    Auf Konsole testen, hatte ich schon geschrieben 😕

    MfG f.-th.



  • Schön und gut - allerdings ist somit mein Problem nicht behoben meine Datenbank sieht so aus.

    #include <iostream>
    #include <fstream>
    int main()
    {
      int Punkte[69],i,Aufgabenanzahl[69];
      char Name[69][100];
      char Pin[69][12];
      //int Lehrer[69];
      char Anwender[69][20];
      ofstream Abspeichern;
      for(i=1;i<=2;i++)
      {
        Punkte[i]=0;
        Aufgabenanzahl[i]=0;
        cout<<"Gib den "<<i<<". Namen ein: ";
        cin >>Name[i];
        cout<<"Gib den "<<i<<". Pin ein: ";
        cin >>Pin[i];
        cout<< "Ist "<<i<<" ein Lehrer oder Schüler?"; //(wenn ja gib eine 1 ein, wenn nicht eine 0)
        cin >>Anwender[i];
        /*if( Eingabe[i] =='j'  )   // Bedingung
        { 
          Lehrer[i]=1;       // wahr-Block
        }
        else
        {  
          Lehrer[i]=0;      // falsch-Block
        }*/
      }
      Abspeichern.open("Rechnerei.dat",ios::out | ios::binary);
      Abspeichern.write(reinterpret_cast<char*>(Punkte),69*sizeof(int));
      Abspeichern.write(reinterpret_cast<char*>(Aufgabenanzahl),69*sizeof(int));
      Abspeichern.write(reinterpret_cast<char*>(Name),69*sizeof(char[100]));
      Abspeichern.write(reinterpret_cast<char*>(Pin),69*sizeof(char[100]));
      Abspeichern.write(reinterpret_cast<char*>(Anwender),69*sizeof(char[100]));
      Abspeichern.close();
      return 0;
    }
    

    meine Funktion :

    bool pineingabe(char richtigepin[12])
    { char eingabepin[12];
      int Versuch,i;
      char Pin [69][12];
      !strcmp(eingabepin,Pin[i]);
      bool ergebnis;
      Versuch=0;
      top:
      cout << "Bitte die Pin eingeben: "; // Ausgabe
      cin >> eingabepin; // Eingabe
    
         if( Versuch <2 )   // Bedingung
         {
             Versuch++;
    
            if( eingabepin==richtigepin )   // Bedingung
            { ergebnis=true;       // wahr-Block
              cout<< " Vielen Dank für Ihre Anmeldung.";
              sleep(2);
              clrscr();
            }
            else
            {//ergebnis= false;
             cout<< "Die "<<Versuch<<".Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.";
             sleep(2);
             clrscr();
             goto top;
            }
    
         }
         else
         {
           cout<< " Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!";
           sleep(2);
           ergebnis = false;
           //exit(0); 
                 // falsch-Block
         }
    
          return (ergebnis);
    }
    

    Und das ist das Programm:
    Und hier Funktionieren die Übernahme und Übergabewerte für die Funktion nicht!
    Kann mir bitte dort jemand weiterhelfen. Und einen Vorschlag machen für die Unterteilung lehrer/Schüler?

    #include <iostream>
    #include <conio>
    #include <fstream>
    #include <dos>
    #include "Funktionpin.cpp"
    
    int main()
    {
      int Punkte[69],Aufgabenanzahl[69],i,Auswahl;
      char Name[69][100], Anmeldename[100],Anwender[69][20],Lehrer[20];
      char Pin[69][12],Anmeldepin[12],eingabepin[12];
      //string Ausgabepinname="unbekannte Pin";
      //Variablen nur zum Rechnen:
      int zahl1, zahl2, ergebnis, loesung,n;
      char wiederholung, Ende;
      string note;
      int prozente;
    
    // Hier beginnt das Einlesen der Daten.
      ifstream Einlesen;
      Einlesen.open("Rechnerei.dat",ios::in | ios::binary);
      Einlesen.read(reinterpret_cast<char*>(Punkte),69*sizeof(int));
      Einlesen.read(reinterpret_cast<char*>(Aufgabenanzahl),69*sizeof(int));
      Einlesen.read(reinterpret_cast<char*>(Name),69*sizeof(char[100]));
      Einlesen.read(reinterpret_cast<char*>(Pin),69*sizeof(char[100]));
      Einlesen.read(reinterpret_cast<char*>(Anwender),69*sizeof(char[100]));
      Einlesen.close();
    //Hier endet das Einlesen der Daten.
    
      cout << "Herzlich Wilkommen beim Mathetrainer 01/2011"; // Ausgabe
    //Hier beginnt das Anmelden.
      gotoxy (30,12);
    
      cout << "Geben Sie Ihren Namen ein: ";
      cin >> Anmeldename;
      //cout << "Geben Sie Ihren Pin ein: ";
      //cin >> Anmeldepin; //clrscr ();
    
        for(i=1;i<=69;i++)
          {            
    
                            if(!strcmp(Anmeldename,Name[i]) )
                            { 
    
                             cout<< "Anmeldename gefunden\n";
                             bool pin;
                             pin=pineingabe(pin);
                             if( pin==true )   // Bedingung
                             { 
                             cout<<"Programm läuft!";       // wahr-Block
                             } 
                              n=i;
                            } 
    
          }
    
     /*if( Ausgabepinname != "unbekannte Pin" )   
     { cout <<"  Name: " << Ausgabepinname;       
     }
     else
     { cout <<"  Fehler: " << Ausgabepinname;
     }*/ 
    
     //Definition Lehrer / Schüler
     //xy:
     //if( Lehrer == Anwender[i] )   // Bedingung
     //{    
    
            cout<<"Guten Tag Lehrer " << Name[i]; sleep (1); clrscr(); gotoxy(20,2);
            cout << " Willkommen im Hauptmenü!!" << endl << endl << endl << endl << endl << endl; // Ausgabe: Begrüßung im Menü
            sleep (3);  // wahr-Block
            do
            { 
              cout << "\t1.\t Einen neuen Nutzer anlegen.\n" ; // Ausgabe
              cout << "\t2.\t Ergebnisse einsehen.\n" ; // Ausgabe
              cout << "\t3.\t Zurücksetzungsoption.\n" ; // Ausgabe
              cout << "\t4.\t Ergebnissübersicht der Gruppe.\n" ; // Ausgabe
              cout << "\t5.\t Durchschnitsleistung der Gruppe.\n" ; // Ausgabe
              cout << "\t6.\t Programm beenden.\n" ; // Ausgabe
              cout << "\n\n\t\t Bitte treffen Sie Ihre Auswahl:\t" ; // Ausgabe
              cin >> Auswahl; // Eingabe
              switch( Auswahl )          // Auswahlausdruck
              { case  1 :   break; // Fall 1
                case  2 :   break; // Fall 2
                case  3 :   break;  // Fall n
                case  4 :   for( i=1 ;i<=69  ;i++  )// Aus Aufgaeb 710
                            { 
                             cout<< i <<"Name :\t"<<Name[i]<<"Aufgaben :\t"<<Aufgabenanzahl[i]<<"\t"<<Punkte[i]<<" Punkte von "<<Aufgabenanzahl[i]<<"möglichen"<<endl;
                                   // Schleifenkörper-Block
                            }
    
                break; // Fall 1
                case  5 :   break; // Fall 2
                case  6 :   cout<< "Sind Sie sicher das Sie das Progamm beenden wollen? (j/n)" ;
                            cin>> Ende;
                            break;  // Fall n
               default:  ;  cout << " Die Eingabe war nicht korreket, bitte wählen Sie einen der Punkte 1-6.";
                            Ende = 'n';    // sonst-Fall
              }
    
            } while(Ende != 'j' ); // Solange-Bedingung
     /*}
     else
     {        // falsch-Block
    
    //Hier beginnt das Rechenprogramm.
      randomize();
      Aufgabenanzahl[n];
      do
      {  
    
        if (Aufgabenanzahl[n]<5)
        {   
           clrscr ();
           gotoxy (20,10);
           Aufgabenanzahl[n]++;
           zahl1 = random(100);
           zahl2 = random(100);
           ergebnis = zahl1 + zahl2;
           cout << "Aufgabe " <<  Aufgabenanzahl[n] << " von 100" << endl;
           gotoxy (25,15);  
           cout << zahl1 << " + " << zahl2 << " = "; // Ausgabe
           //clrscr ();
           cin >> loesung;
           if( loesung == ergebnis )   // Bedingung
           { 
           clrscr (); 
           gotoxy (25,11);
           cout << "Das hast Du richtig gerechnet.";  // wahr-Block
           Punkte[n] = Punkte[n] + 1;
           cout << " Du erhälst 1 Punkt" << endl; sleep (1);
           }
           else
           { 
           clrscr (); sleep (1);
           cout << "Das hast Du leider falsch gerechnet" << endl; sleep (2);      // falsch-Block
           }
           clrscr(); gotoxy (25,11);
           if(Aufgabenanzahl[n]<5  )   // Bedingung
           { 
             cout << "Möchtest Du eine weitere Aufgabe rechnen (j/n)? ";
             cin >> wiederholung;       // wahr-Block
           }
           else
           { 
             wiederholung = 'n';
             cout<< "Das Maximum ist erreicht";       // falsch-Block
           }
    
        }   
        else   
        {
         clrscr (); sleep (1);
         wiederholung = 'n';
         cout << "Es ist keine weitere Aufgabe möglich. Du hast 100 von 100 Aufgaben gerechnet." << endl;       // 100 Aufgaben sind erreicht
        }
      }
      while (wiederholung == 'j');
      cout << "Dein Gesamtpunktestand beträgt: " << Punkte[n] << endl;
      //*cout << "Dein Gesamtpunktestand beträgt: " << Punkte << endl <<endl;
      prozente = Punkte[n]*100/Aufgabenanzahl[n];  
      cout << "Du hast "<< prozente << " Prozent erreicht!";
      if(prozente < 26 ){note = "ungenügend";}
      else
      { if(prozente < 51 ){note = "mangelhaft";}
        else 
        {if(prozente < 66 ){note = "ausreichend";}
         else
         {if(prozente < 81 ){note = "befriedigend";}
          else
          { if(prozente < 95 ){note = "gut";}
            else { note = "sehr gut";}
         }
        }
       }
      }   
      cout << " Das entspricht der Note " <<note;
      getchar(); 
     }*/ 
    //Hier beginnt das Abmelden/Abspeichern.
      ofstream Abspeichern;
      Abspeichern.open("Rechnerei.dat",ios::out | ios::binary);
      Abspeichern.write(reinterpret_cast<char*>(Punkte),69*sizeof(int));
      Abspeichern.write(reinterpret_cast<char*>(Aufgabenanzahl),69*sizeof(int));
      Abspeichern.write(reinterpret_cast<char*>(Name),69*sizeof(char[100]));
      Abspeichern.write(reinterpret_cast<char*>(Pin),69*sizeof(char[100]));
      Abspeichern.write(reinterpret_cast<char*>(Anwender),69*sizeof(char[100]));
      Abspeichern.close();
    //Da kommt nur noch das dicke Ende.
      clrscr (); gotoxy (25,10);
      cout << "Das Programm wird nun beendet"; // Ausgabe
      sleep (2);
      clrscr ();
      gotoxy (25,12);
      cout << "Auf Wiedersehn, bis zum nächsten Mal."; // Ausgabe
      sleep (2);
      //getchar();
      return 0;
    }
    


    1. Benutze std::string
    2. Lern den Umgang mit IO-Streams. Wer reinterpret_cast für sowas braucht, der hat nicht mehr alle Tassen im Schrank.
    3. goto, sleep, clrscr ... Ohne Worte.


  • Noch mal, wenn

    int main()
    

    im Quelltext steht, sollte das nur genau ein mal im Quelltext eines Projekts stehen. ⚠

    #include "Funktionpin.cpp"
    

    ist in einem Quelltext suboptimal.
    Da erstellt man eine Main.cpp, eine Funktionpin.cpp und eventuell weitere xy.cpp.
    Diese compiliert man dann nacheinander und linkt die Objektdateien dann zusammen zu einem Programm.

    Ich gehe also davon aus das du "deinen" Quelltext nicht verstanden hast.

    Wenn du meinen letzten Beitrag begriffen hättest, wäre dir vielleicht aufgefallen das der erste Quelltextabschnitt deines letzten Beitrags da drin angeschnitten worden ist.

    Oder glaubst du, das wir dir hier den kompletten Quelltext einstellen? So was mach ich eventuell Heiligabend, wenn ich gut drauf bin 😃

    MfG f.-th.



  • Es steht im Rechnerprogramm nur einmal - ich habe es in der Funktion nicht enthalten und genau das ist wie geschrieben mein Problem ich weiss nciht wie ich es meinem programm begreifbar machen soll den [i.] Pin zu übergeben und zu prüfen.

    Und wenn ich es vordefiniere ist es ja nicht veränderbar - oder sehe ich das falsch. Eine definierte Variable kann ich nur innerhalb eines Typs oder einer höhrern Variable, durch zuweisung ändern.

    Und genau in diesem Teil liegt das Problem:

    cout << "Geben Sie Ihren Namen ein: ";
      cin >> Anmeldename;
      //cout << "Geben Sie Ihren Pin ein: ";
      //cin >> Anmeldepin; //clrscr ();
    
        for(i=1;i<=69;i++)
          {            
    
                            if(!strcmp(Anmeldename,Name[i]) )
                            {
    
                             cout<< "Anmeldename gefunden\n";
                             bool pin;
                             pin=pineingabe(pin);
                             if( pin==true )   // Bedingung
                             {
                             cout<<"Programm läuft!";       // wahr-Block
                             }
                              n=i;
                            }
    
          }
    
    bool pineingabe(char richtigepin[12])
    { char eingabepin[12];
      int Versuch,i;
      char Pin [69][12];
      !strcmp(eingabepin,Pin[i]);
      bool ergebnis;
      Versuch=0;
      top:
      cout << "Bitte die Pin eingeben: "; // Ausgabe
      cin >> eingabepin; // Eingabe
    
         if( Versuch <2 )   // Bedingung
         {
             Versuch++;
    
            if( eingabepin==richtigepin )   // Bedingung
            { ergebnis=true;       // wahr-Block
              cout<< " Vielen Dank für Ihre Anmeldung.";
              sleep(2);
              clrscr();
            }
            else
            {//ergebnis= false;
             cout<< "Die "<<Versuch<<".Eingabe war nicht korrekt. Bitte Versuchen Sie es erneut.";
             sleep(2);
             clrscr();
             goto top;
            }
    
         }
         else
         {
           cout<< " Die Logindaten sind verkehrt! \n Es ist keine weitere Eingabe möglich!";
           sleep(2);
           ergebnis = false;
           //exit(0);
                 // falsch-Block
         }
    
          return (ergebnis);
    }
    

    Ich verlange keinen kompletten Quelltext - Ich möchte nur wissen und verstehen was mein Fehler ist! Und wie es besser ist. natürlich kann ich auch in der Struktur vordefinieren der Schüler hat 0 punkte und Augabenanzahl. Allerdings ist das auch so wenn das programm geschlossen wird?
    Weil dann könnte ich mir dieses Datenbankprogramm sparen und alles Definieren und wie jetzt auch den Anfang und das Ende des Programms lassen!? 😕



  • Bist du einfach nur dumm oder kannst du nicht lesen? 😡
    Es wurde schon mehrmals gesagt, dass du keine Sprungbefehle, keine Sleep , std::string und lokale Deklarationen nutzen sollst!



  • Danos schrieb:

    Ich möchte nur wissen und verstehen was mein Fehler ist!

    Wo kommen die Daten her? Du vergleichst deinen Eingabestring ohne das bereits in dem Namensarray Daten liegen.

    Lehrt euer Lehrer euch wirklich goto? Dafür gibt es Schleifen (goto gehört jedenfalls nicht in sauberen Code für Hochsprachen). Ebenso gibt es seit 1998 einen C++ Standard, und auch Lehrer sollten sich irgendwann mal damit auseinander setzen.

    Danos schrieb:

    Allerdings ist das auch so wenn das programm geschlossen wird?

    Konsolenprogramme müssen sich automatisch am Schluss beenden. Das liegt an der Art wie eine Konsole arbeitet. Man gibt etwas ein (z.B. den Programmnamen um dieses Programm zu starten), und erwartet am Schluss das man den nächsten Befehl eingeben kann. Wenn das Programm nicht schließen würde, kommt man nicht wieder auf die Kommandozeile.


Anmelden zum Antworten