punten probleem quiz c++

Status
Niet open voor verdere reacties.

marti901

Gebruiker
Lid geworden
30 aug 2009
Berichten
411
Ik ben bezig met het leren van c++. Dus ik ben is begonnen met he eerste programmaatje/quiz zonder tutorial. Nu loop ik echter tegen een probleem. Als ik alle vragen goed beantwoord geeft hij 6 punten zoals het hoort maar als ik 2 vragen goed heb geeft hij 3 punten. ook bij 1, 3, 4 en 5 goed gaat dat zo dat je 1punt te veel krijgt. Ik kan geen oplossing vinden voor mijn probleem dus ik hoop dat jullie meschien iets wisten.
[CPP]#include <iostream>

int main()
{
using namespace std;

double punten;
string naam;
int leeftijd;
int ati;
int taal;
int html;
int pc;
int i7;
int game;
double cijfer;

punten = 0;
// intro
cout << "We gaan een quiz doen om te kijk hoe slim je bent. Je moet gewoone het goede " << endl << "cijfer in typen en op enter drukken." << endl << endl;
//vraag persoonlijke info
cout << "Wat is je naam?" << endl;
getline (cin, naam);
cout << "Hoe oud ben je?" << endl;
cin >> leeftijd;

cout << "Je heet dus " << naam << " en je bent " << leeftijd << " jaar oud" << endl << endl;

//vraag1
cout << "Van welk bedrijf is de 5870?" << endl;
cout << "1 Van Nvidia" << endl;
cout << "2 Van ATI" << endl;
cout << "3 van geen van beide" << endl;
cin >> ati;
if (ati == 2)
{
cout << "Je hebt de eerste vraag goed." << endl << endl;
punten ++;
}
else
{
cout << "Fout" << endl << endl;
}

//vraag2
cout << "Wat is GEEN programmertaal?" << endl;
cout << "1 HTML" << endl;
cout << "2 c++" << endl;
cout << "3 PHP" << endl;
cin >> taal;

if (taal == 1)
{
cout << "Je hebt de vraag goed." << endl << endl;;
punten++;
}
else
{
cout << "Fout" << endl << endl;;
}

//vraag3
cout << "Waar voor staat de afkortig html?" << endl;
cout << "1 HyperText Markup Language" << endl;
cout << "2 HyperText Master Language" << endl;
cout << "3 HyperText Massive Language" << endl;
cin >> html;

if (html == 1)
{
cout << "Je hebt de vraag goed." << endl << endl;
punten++;
}
else
{
cout << "Fout" << endl << endl;;
}

//vraag4
cout << "Wat zit niet in een computer" << endl;
cout << "1 CPU" << endl;
cout << "2 GPU" << endl;
cout << "3 Externe SSD" << endl;
cin >> pc;

if (pc == 3)
{
cout << "Je hebt de vraag goed." << endl << endl;
punten++;
}
else
{
cout << "Fout" << endl << endl;;
}

//vraag5
cout << "Welke socket heeft de intel core i7 920" << endl;
cout << "1 AMS 3" << endl;
cout << "2 775" << endl;
cout << "3 1336" << endl;
cin >> i7;

if (i7 == 3)
{
cout << "Je hebt de vraag goed." << endl << endl;
punten++;
}
else
{
cout << "Fout" << endl << endl;;
}

//vraag6
cout << "Wat kan GEEN systeem vereisten zij van en game." << endl;
cout << "1 2.4 Ghz cpu" << endl;
cout << "2 Je noet engels kunnen" << endl;
cout << "3 2GB ram" << endl;
cin >> i7;

if (game == 2)
{
cout << "Je hebt de vraag goed." << endl << endl;
punten++;
}
else
{
cout << "Fout" << endl << endl;;
}


cout << "Je hebt " << punten << " Punten" << endl;

if (punten > 4)
{
cout << "Je kennis van computers is goed." << endl;
}
else if (punten == 3)
{
cout << "Je kennis van computers is matig." << endl;
}
else
{
cout << "Je kennis van computers is slecht." << endl;
}
cijfer = punten / 0.6;
cout << cijfer << endl;

system("pause");
return 0;
}[/CPP]

tips vind ik ook goed

(de vragen worden nog veranderd, is even al voorbeeld)
 
Laatst bewerkt:
tips vind ik ook goed

Als je de code inspecteert dan zul je zien dat je eigenlijk steeds dezelfde routine uitvoert. Wanneer je deze routine in een functie stopt is je code meteen een stuk compacter en leesbaarder.

Iets als het onderstaande:

[cpp]
bool stel_vraag(const std::string vraag, const std::string opties, const int antwoord)
{
while (true) // deze lus stopt pas wanneer er een waarde gereturnd wordt
{
std::cout << vraag << "\n\n"
<< opties << "\n\n";
int in;
if (std::cin >> in)
{
std::cout << "Je antwoord is " << (in == antwoord ? "goed" : "fout") << '\n'; // (voorwaarde ? wanneer de voorwaarde geldt : wanneer de voorwaarde niet geldt)
return (in == antwoord);
}
else
{
/* het herstellen van de stream */
std::cin.clear();
std::cin.ignore(INT_MAX, '\n');
}
}
}
[/cpp]

In je main functie hoef je dan enkel het volgende te schrijven:

[cpp]
int main()
{
int punten = 0;
if (stel_vraag("Wat zit niet in een computer?", "1. CPU\n2. GPU\n3. Externe SSD", 3)) // \n = new line
++punten;
// dit voor alle vragen
[/cpp]
}
[/cpp]
 
Als je de code inspecteert dan zul je zien dat je eigenlijk steeds dezelfde routine uitvoert. Wanneer je deze routine in een functie stopt is je code meteen een stuk compacter en leesbaarder.

Iets als het onderstaande:

[cpp]
bool stel_vraag(const std::string vraag, const std::string opties, const int antwoord)
{
while (true) // deze lus stopt pas wanneer er een waarde gereturnd wordt
{
std::cout << vraag << "\n\n"
<< opties << "\n\n";
int in;
if (std::cin >> in)
{
std::cout << "Je antwoord is " << (in == antwoord ? "goed" : "fout") << '\n'; // (voorwaarde ? wanneer de voorwaarde geldt : wanneer de voorwaarde niet geldt)
return (in == antwoord);
}
else
{
/* het herstellen van de stream */
std::cin.clear();
std::cin.ignore(INT_MAX, '\n');
}
}
}
[/cpp]

In je main functie hoef je dan enkel het volgende te schrijven:

[cpp]
int main()
{
int punten = 0;
if (stel_vraag("Wat zit niet in een computer?", "1. CPU\n2. GPU\n3. Externe SSD", 3)) // \n = new line
++punten;
// dit voor alle vragen
[/cpp]
}
[/cpp]
oke thx zal ik doen(ben ook nog maar beginner in c++ nog een lange weg te gaan)
ga volgend jaar ict opleiding doen.
 
Laatst bewerkt:
(ben ook nog maar beginner in c++ nog een lange weg te gaan)

Daar heb ik rekening mee gehouden tijdens het voorbeeld. (een makkelijke methode gekozen en commentaar bij de dingen die wellicht uitleg nodig hebben)

In elk geval veel succes met het leren van C++. Heb je wel al ervaring met andere programmeertalen? Of begin je meteen met C++?
 
Daar heb ik rekening mee gehouden tijdens het voorbeeld. (een makkelijke methode gekozen en commentaar bij de dingen die wellicht uitleg nodig hebben)

In elk geval veel succes met het leren van C++. Heb je wel al ervaring met andere programmeertalen? Of begin je meteen met C++?
Ja had het gezien heel duidelijk. Nee het is niet mijn eerste programmeertaal.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan