Un probleme au code source c

the dark -  
 pacorabanix -
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
Configuration: Windows XP
Firefox 3.0.14

8 réponses

  1. the dark
     
    est ce que il n a pas de solution pour mon probleme
    0
  2. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  3. nabil07 Messages postés 161 Statut Membre 64
     
    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
    1. the dark
       
      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
      1. pacorabanix > the dark
         
        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
      2. the dark > pacorabanix
         
        merci
        je vais suivre ces etapes
        0
  4. calibos
     
    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
  5. the dark
     
    hi
    0
    1. pacorabanix
       
      évite ces messages à répétitions trop souvent stp... ça ne va pas inciter les gens à venir t'aider. :) merci
      0