Exercice langage C: Examen et QCM

[tab name=’Exercice 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é.

[/tab][tab name=’Correction’]

/* PROGRAMME QCM */
#include 
#include 
#define MLIGNE 256
#define MNAME 100
struct qcm {
int numquest;
char quest[MLIGNE];
char rep1[MLIGNE];
char rep2[MLIGNE];
char rep3[MLIGNE];
char rep4[MLIGNE];
int solrep;
};
typedef struct qcm TQCM;
/***** PARTIE ADMINISTRATEUR *******/
int fcreer_qcm(char *nomfic); 
/* mode administrateur, ouverture et ajout en fin ou création du fichier nomfic contenant 
une série de questions,
** cette fonction appelle dans une boucle while : tsaisie_quest et fenr_quest */
void faff_quest(FILE *faff, TQCM *tq); /* ecrit dans le fichier (faff) la question (tq) 
*/
int faff_qcm(char *nomfic); 
/* mode administrateur, affichage à l'écran de toutes les questions du fichier nomfic, 
retourne 0 si le fichier 
** n'a pas pu être ouvert en lecture, 1 si tout s'est bien passé */

[/tab][end_tabset skin= »ginger » ]

Merci de partager le cours et de laisser vos suggestion..

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *