Richtige und falsche Lösungen zählen?



  • Seit Tagen zerbreche ich mir den Kopf darüber, wie ich mein Programm dazu bringe, richtige und falsche Ergebnisse aufzuzählen.

    Also mal ein Beispiel: Wenn ich 5 Rechenaufgaben (Addition) gelöst habe, soll der Computer am Ende ausgeben: "Du hast 2 falsche und 3 Aufgaben richtig gelöst."

    Ich meine das ich dazu die bool Variable benötige, aber ich finde es immer noch nicht heraus wie es geht!



  • Zeig doch mal wie das jetzt bei dir aussieht. Speicher zu jeder Aufgabe einfach einen bool mit oder lege ein enum an.

    Gruß



  • Hallo

    Du brauchst zwei Zähler vom Typ unsigned int, einen für richtige und einen für falsch. Bei jeder Frage wird der entsprechende Zähler erhöht, am ende gibst du die Werte der Zähler aus.

    bis bald
    akari



  • Hallo

    Soll der Benutzer seine Lösungen eingeben? Wenn dies so ist, dann kannst du doch einfach die Lösungen des Benutzers mit den richtigen Lösungen vergleiche.

    cin<<LösungBenutzer
    if(LösungBenutzer==ComputerLösung)
        Vergleiche=true;
    else
        Vergleich=false
    

    Weiss nicht, ob es das ist, was du suchst.

    chrische



  • akari schrieb:

    Hallo

    Du brauchst zwei Zähler vom Typ unsigned int, einen für richtige und einen für falsch. Bei jeder Frage wird der entsprechende Zähler erhöht, am ende gibst du die Werte der Zähler aus.

    bis bald
    akari

    *0p71m1z3d*: Ein Zähler, auf den zweiten Wert kommst du mit Hilfe von Anz-Count 😉

    MfG SideWinder



  • Hallo

    @sidewinder : Er hat nichts davon gesagt, das er die Anzahl auch mitzählt... 😉 ansonsten natürlich richtig

    bis bald
    akari



  • chrische5 schrieb:

    Hallo

    Soll der Benutzer seine Lösungen eingeben? Wenn dies so ist, dann kannst du doch einfach die Lösungen des Benutzers mit den richtigen Lösungen vergleiche.

    cin<<LösungBenutzer
    if(LösungBenutzer==ComputerLösung)
        Vergleiche=true;
    else
        Vergleich=false
    

    Weiss nicht, ob es das ist, was du suchst.

    chrische

    Ja, der Benutzer soll die Lösung eingeben. Es werden übrigens Aufgaben per Zufall generiert. Wenn alle Aufgaben ausgerechnet wurden (also es geht um Addition) sagt mir das Programm wie viele ich falsch und richtig gelöst habe.

    Also hier der Quellcode das ich geschrieben hab:

    //Kopfrechenaufgabe (Addition) mit Zufallszahlen
    #include <windows.h>
    #include <iostream>
    #include <conio>
    
    using namespace std;
    
    #define HELLGRUEN 0x000a
    #define WEISS 0x000f
    #define HELLROT 0x000c
    #define GELB 0x000e
    void color(WORD color)
    {
        SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), color);
    };
    
    int main()
    {
    unsigned short zahl;
    unsigned short zahl2;
    int eingabe;
    int ergebnis;
    string ja = "ja";
    string nein = "nein";
    string jain = "jain";
    char bereit[255];
    
    ZURUECK:
    clrscr();
    color(WEISS);		//textfarbe
    cout << "Kopfrechenaufgabe mit Addition. Die Spielregel:\n\nEs werden 5 Rechenaufgaben gestellt die Sie in Ruhe l\224sen k\224nnen." << endl;
    cout << "Wenn Sie das Ergebnis eingegeben haben, sagt der Computer ob Sie richtig oder falsch gerechnet haben." << endl;
    cout << "Es wird dann automatisch fortgesetzt.\n\nSind Sie bereit? Bitte \'ja\' oder \'nein\' eingeben: "; cin.getline(bereit, 255,'\n');
    
     if (bereit == ja)
     {
      srand(time(0));
      //---------   Hier werden 5 zufällige Aufgaben generiert
      for (int i = 1; i <=5; i++)
     {
      clrscr();
      color(HELLGRUEN);
      zahl = rand();
      zahl2 = rand();
      cout << "Aufgabe " << i << ": " << "Wie viel sind " << zahl << " + " << zahl2 << " ? "; cin >> eingabe;
      Sleep(600);
      ergebnis = zahl + zahl2;
      if (eingabe == ergebnis)
       {
    
       color(GELB);
       cout << "\nRichtig!\n" << endl;
       color(HELLGRUEN);
       cout << "Das Ergebnis lautet: " << ergebnis << "." << endl << "Bitte warten...";
       Sleep(2000);
       }
       if (eingabe != ergebnis)
       {
    
       color(HELLROT);
       cout << "\nFalsch!\n" << endl;
       color(HELLGRUEN);
       cout << "Das richtige Ergebnis lautet: " << ergebnis << "." << endl << "Bitte warten..." << endl;
       Sleep(2000);
       }
    
         cout << "\nEs wurden alle Aufgaben ausgerechnet, Programm Ende." << endl;
    
      }
     }
    // ------------------
    
    else if (bereit == nein)
    {
     cout << "\nOk, Programm abgebrochen." << endl;
    }
    else if (bereit == jain)
    {
     color(HELLROT);
     cout << "\nEin " << bereit << " gilt nicht! :-(. Entweder ja oder nein." << endl;
     Sleep(3000);
     goto ZURUECK;
    }
    else
     {
     color(HELLROT);
      cout << "\nDie Antwort kenne ich nicht, bitte versuche es nochmal." << endl;
     Sleep(2000);
     goto ZURUECK;
     }
     return 0;
    }
    


  • Falls jemand sich fragen sollte, was der Unsinn mit "Bitte warten ..." und Sleep soll, das ist nur ein Feature! Also nicht darüber nachdenken. 😉



  • Wie schon gesagt einfach ein Zähler...

    int anzRichtige = 0;
    
    //...
    
    if (eingabe == ergebnis)
       {
       ++anzRichtige;
    


  • lustig schrieb:

    Wie schon gesagt einfach ein Zähler...

    int anzRichtige = 0;
    
    //...
    
    if (eingabe == ergebnis)
       {
       ++anzRichtige;
    

    ach so, naja danke.

    tse, auf die simpelsten Sachen komm ich nicht drauf. Ich Idiot! 😞


Anmelden zum Antworten