Un probleme au code source c

Fermé
the dark - 29 oct. 2009 à 22:51
 pacorabanix - 30 oct. 2009 à 01:46
Bonjour,

je veux savoir comment je peux retourner à la page de choix?
càd : quand je termine par exemple (prise en charge) il faut qui m a donne la possibilité de revenir à la table du choix
voila mon code source



#include <stdio.h>
#include <stdlib.h>
void entete(){
printf("FST GUELIZE\t\t\t\t\t\tSAMEDI 30-10-2009\n");
printf("MARRAKECH\t\t\t\t\t\t*****************\n");
printf("*********\n");
printf("\t\t\tGESTION DES EXAMENS\n");
printf("\t\t\t*******************\n");
printf("********************************************************************************\n"); }
int main(int argc, char *argv[])
{

int choix;
do{
system("cls");
entete();
printf("1) prise en charge les informations de base . \n");
printf("2)le calcule de la somme des notes par etudiant. \n");
printf("3)le calcule de le somme des notes par matiere. \n");
printf("4)le calcule de le moyenne par etudiant. \n");
printf("5)l atribution automatique de la mention par etudiant. \n");
printf("6)le tri par ordre croissant sur la moyenne. \n");
printf("7)affichage des informations de base des moyens et de le montien apres le trie. \n");
printf("\n");
printf("ENTREZ VOTRE CHOIX\n");
printf("------------------\n");
scanf("%d",&choix);
switch(choix){
case 1:
system("cls");
entete();
printf("\t\t\tPRISE EN CHARGE\n");
printf("\t\t\t***************\n");
break;
case 2:
system("cls");
entete();
printf("\t\t\tSOMME DES NOTES PAR ETUDIANT\n");
printf("\t\t\t****************************\n");
break;
case 3:
system("cls");
entete();
printf("\t\t\tSOMMES DES NOTES PAR MATIERE\n");
printf("\t\t\t****************************\n");
break;
case 4:
system("cls");
entete();
printf("\t\t\tMOYENNE PAR ETUDIANT\n");
printf("\t\t\t********************\n");
break;
case 5:
system("cls");
entete();
printf("\t\t\tLES MENTION PAR ETUDIANT\n");
printf("\t\t\t************************\n");
break;
case 6:
system("cls");
entete();
printf("\t\tLE TRIE PAR ORDRE CROISSANT SUR LA MOUENNE\n");
printf("\t\t******************************************\n");
break;
case 7:
system("cls");
entete();
printf("\t\t\tAFFICHAGE DES INFORMATIONS DE BASE\n");
printf("\t\t\t**********************************\n");
break;
default:
printf("le choix que vous tapez et faux\n ");

}
}
while(choix<1||choix>7);

system("PAUSE");
return 0;
}

aidez moi s il vous plait j attend votre reponse
A voir également:

8 réponses

est ce que il n a pas de solution pour mon probleme
0
aidez moi
0
mais pourquoi aucune reponse
0
pourquoi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nabil07 Messages postés 140 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 10 avril 2014 64
29 oct. 2009 à 23:38
bonsoir,

#include <stdio.h>
#include <stdlib.h>
void entete(){
printf("FST GUELIZE\t\t\t\t\t\tSAMEDI 30-10-2009\n");
printf("MARRAKECH\t\t\t\t\t\t*****************\n");
printf("*********\n");
printf("\t\t\tGESTION DES EXAMENS\n");
printf("\t\t\t*******************\n");
printf("********************************************************************************\n"); }
//procedure d'affichage du menu
void menu(){
system("cls");
entete();
printf("1) prise en charge les informations de base . \n");
printf("2)le calcule de la somme des notes par etudiant. \n");
printf("3)le calcule de le somme des notes par matiere. \n");
printf("4)le calcule de le moyenne par etudiant. \n");
printf("5)l atribution automatique de la mention par etudiant. \n");
printf("6)le tri par ordre croissant sur la moyenne. \n");
printf("7)affichage des informations de base des moyens et de le montien apres le trie. \n");
printf("\n");
printf("ENTREZ VOTRE CHOIX\n");
printf("------------------\n");
scanf("%d",&choix);
}

int main(int argc, char *argv[])
{

int choix;
do{
menu();
switch(choix){
case 1:
system("cls");
entete();
printf("\t\t\tPRISE EN CHARGE\n");
printf("\t\t\t***************\n");
menu();
break;
case 2:
system("cls");
entete();
printf("\t\t\tSOMME DES NOTES PAR ETUDIANT\n");
printf("\t\t\t****************************\n");
menu();
break;
case 3:
system("cls");
entete();
printf("\t\t\tSOMMES DES NOTES PAR MATIERE\n");
printf("\t\t\t****************************\n");
menu();
break;
case 4:
system("cls");
entete();
printf("\t\t\tMOYENNE PAR ETUDIANT\n");
printf("\t\t\t********************\n");
menu();
break;
case 5:
system("cls");
entete();
printf("\t\t\tLES MENTION PAR ETUDIANT\n");
printf("\t\t\t************************\n");
menu();
break;
case 6:
system("cls");
entete();
printf("\t\tLE TRIE PAR ORDRE CROISSANT SUR LA MOUENNE\n");
printf("\t\t******************************************\n");
menu();
break;
case 7:
system("cls");
entete();
printf("\t\t\tAFFICHAGE DES INFORMATIONS DE BASE\n");
printf("\t\t\t**********************************\n");
menu();
break;
default:
printf("le choix que vous tapez et faux\n ");

}
}
while(choix<1||choix>7);

system("PAUSE");
return 0;
} 


essais ce code , j'ai mis l'affichage du menu dans une fonction, et comme ça on faut l'appel du menu après chque choix.

Cordialement.
0
merci beaucouq
mais moi je veux revinir à la page de menu seulment

par exemple quand je fait prise en charge je peux dire a l utilisateur appuyer sur 10 pour revenir au page de menu
0
pacorabanix > the dark
30 oct. 2009 à 01:03
et bien lorsque tu taperas 10 tu fais en sorte que la fonction qui s'occupe de la "prise en charge" s'arrête en retournant une certaine valeur drapeau (true ou false par exemple) et si cette valeur drapeau est renvoyée tu fais en sorte de recommencer la boucle principale de ton main() .

Et lorsque la fonction prise en charge se termine normalement elle renvoie l'autre valeur, comme ça la boucle de la fonction main ne se fera pas et dans ce cas pas de retour au menu.

do {

...

  switch (choix) {
    ...
    case x:
    drapeau = priseEnCharge();
    ...
  }
...

} while ( (choix<1)||(choix>7)||(drapeau=-1))


//fonction prise en charge :
int priseEnCharge() {
  int drapeau=0;
  switch(nombre tapé) {
    ...
    case 10:
    drapeau=-1;
    return;
    ...
  }
}
0
the dark > pacorabanix
30 oct. 2009 à 01:26
merci
je vais suivre ces etapes
0
Salut

Ton menu boucle uniquement si tu entres un choix <1 ou >7 (erreur)
Si tu veux avoir la possibilité de revenir au menu après un choix correct il faut le prévoir

Ajoutes un nouveau choix
printf("0) Quitter. \n");

La condition de sortie de la boucle sera alors
while(choix != 0);

A+.
0
vous m avez compris
0
hi
0
pacorabanix
30 oct. 2009 à 01:46
évite ces messages à répétitions trop souvent stp... ça ne va pas inciter les gens à venir t'aider. :) merci
0