Exercice langage C QCM, tutoriel langage C.
Il s’agit de faire un programme permettant de gérer des fichiers de QCM. Un qcm sera représenté par une :
structure du type : typedef truct qcm { int numquest; char quest[256]; char rep1[256]; char rep2[256]; char rep3[256]; char rep4[256]; int solrep; } TQCM;
Où numquest est le numéro de la question,
quest est la chaine de caractère représentant la question, rep1 à rep 4 les 4 réponses possibles.
solrep est le numéro de la seule solution à la question
Le programme permet de passer en mode administrateur pour générer des fichiers de qcm, ou en mode utilisateur pour utiliser les qcm. Ces deux modes font l’objet de deux parties différentes. Il est conseillé de commencer par la partie administrateur. Le code de la fonction main vous est donné ci-dessous :
int main (void) { char calu; do { printf("(a) mode administrateur,\n(b) mode utilisateur,\n"); printf("(c) quitter,\nvotre choix : "); scanf(" %c", &calu); switch(calu) { case 'a': gestion_admin(); calu = 'c'; break; case 'b': gestion_util(); calu = 'c'; break; case 'c': printf("fin du programme \n\n"); break; default : printf("\nmauvaise saisie recommencer !!\n"); } } while( calu !='c'); return 0; }
3) Faire une fonction de prototype int fcreer_qcm(char *nomfic) qui permet d’ouvrir un fichier dont le nom nomfic est passé en paramètre. La fonction ne permet qu’un ajout à la fin. Les questions précédentes seront utilisées. La fonction retourne 1 si le fichier a été ouvert correctement, 0 sinon. Le code de retour n’est pas utilisé.
4) Faire une fonction de prototype void faff_quest(FILE *faff, TQCM *tq) qui permet d’afficher sur le fichier faff passé en paramètre les champs numéro de question, libellé de la question et les 4 réponses possibles de la question tq.
5) Faire une fonction de prototype int faff_qcm(char *nomfic) qui permet l’affichage à l’écran de toutes les questions du fichier dont le nom nomfic est passé en paramètre. Ne pas oublier pour les affichages de rajouter la réponse. La fonction retourne 1 si le fichier a été ouvert correctement, 0 sinon. Le code de retour n’est pas utilisé.
La correction exercice C/C++ (voir page 2 en bas)