1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| #include <iostream>
#include <vector>
#include <string>
using namespace std;
struct QCM{
string question;//Chaine de caratere
vector<string> reponses; //Tableau de chaine de caratère
unsigned int solution;
};//attention au ";"
typedef vector<QCM> Examen;//On doit ajoutr cette ligne après avoir créer la struture
void affiche(const QCM& variableQcm);
unsigned int poser_question(const QCM& varQCM);
unsigned int demander_nombre(unsigned int a, unsigned int b);
Examen creer_examen();//
int main()
{
Examen exam=creer_examen();
poser_question(exam[0]);
poser_question(exam[1]);
return 0;
}
Examen creer_examen(){
Examen varExam;
QCM qcm1;//Déclaration de la variable qcm de type/structure QCM
//Définition de la variable qcm de type/structure QCM
qcm1.question="Combien...adulte";//Initialisation des champs
qcm1.reponses={"32","beaucoup","aucunes"};
qcm1.solution=1;
QCM qcm2={{"Qui pose stupid question"},{"prof","toi","personne"},2};
//poser_question(qcm);
return varExam;
}
void affiche(const QCM& variableQcm){
//On affiche les questions et réponsesproposées
cout<<variableQcm.question<<endl;
//Pour les questions proposées il faut parcourir/afficher un tableau de string (donc utilisation d'une boucle for)
for(size_t i(0);i<variableQcm.reponses.size();i++){//qcm.reponse est le champ reponse de la variable qcm
cout<<i+1<<" ";
cout<<variableQcm.reponses[i]<<endl; //Accès aux éléments d'un champ d'une structure
}
}
unsigned int poser_question(const QCM& q)
{
affiche(q);
return demander_nombre(1, q.reponses.size());//entre 1 et la taille du qcm
}
unsigned int demander_nombre(unsigned int a, unsigned int b)
{
/* échange les arguments s'ils n'ont pas été donnés dans *
* le bon sens. */
if (a > b) { unsigned int tmp(b); b=a; a=tmp; }
unsigned int res;
do {
cout << "Entrez un nombre entier compris entre "
<< a << " et " << b <<" : ";
cin >> res;
} while ((res < a) or (res > b));
return res;
} |
Partager