Projet URGENT: menus imbriqués

Projet URGENT: menus imbriqués - C++ - Programmation

Marsh Posté le 20-01-2003 à 17:14:32    

Bonjour je suis débutant en C++ et bien sur mon super menu ne marche pas!  
Si j'utilise les menus 1 2 ou 3 alors quand je reviens au menu 0 je ne peux plus sortir et je reviens en boucle sur l'ancien menu appelé. Je comprends pas...
merci d'avance,
ctnul mes ca deviendra bien.
 
PS: c'est mieux de faire des switchs imbriqués ou y'a une méthode "propre" à faire dans ce cas la?
 
---------------------------------------------------------------
 
[cpp]
#include <iostream.h>
#include "humain.h"
#include "anophele.h"
#include "tropho.h"
#include <stdlib.h>
 
void Menu3();int Menu2();int Menu1();int Menu0();
 
 
void Menu33() {
  char x;
  do {
  cout<<("\n\nMENU PARAMETRES EXTERNES\n" );
  cout<<("Taper un des chiffres du menu suivant:\n" );
  cout<<("0. Revenir au menu de départ\n" );
  cout<<("1. Modifications du taux d'humidité\n" );
  cout<<("2. Ajout de vaccins\n" );
  cout<<("3. Ajout de moustiquaire\n" );
  cout<<("4. Revenir au menu précédent\n" );
  cin>>x;
 
    switch(x) {
    case '1': cout << "\nEntrer le taux d'humidite (ex: ) : ";
            cin  >> Anophele::txHumidite;
            break;
    case '2': cout << "\nEntrer le nombre de vaccins (ex: ) : ";
            cin  >> Humain::nbVaccin;
            break;
    case '3': cout << "\nEntrer le nombre de moustiquaires (ex: ) : ";
            cin  >>  Humain::nbMqr;
            break;
    case '4': Menu3();break;
    case '0': Menu0();break;
    default: break;
   }
  } while (1);
}
 
void Menu32() {
  char x;
  do {
  cout<<("\n\nMENU HOTES\n" );
  cout<<("Taper un des chiffres du menu suivant:\n" );
  cout<<("0. Revenir au menu de départ\n" );
  cout<<("1. Modification du nombre d'humains\n" );
  cout<<("2. Modification du nombre d'humains infectées\n" );
  cout<<("3. Modification du nombre d'anophèles femelles\n" );
  cout<<("4. Revenir au menu précédent\n" );
  cin>>x;
 
    switch(x) {
    case '1': cout << "\nEntrer le nombre d'humains de la population: ";
            cin  >> Humain::nbH;
            break;
    case '2': cout << "\nEntrer le nombre d'humains infectés: ";
            cin  >> Humain::nbHI;
            break;
    case '3': cout << "\nEntrer le nombre d'anophele: ";
            cin  >> Anophele::nbA;
            break;
    case '0': Menu0();break;
    default: break;
   }
  } while (1);
}
 
 
void Menu31() {
  char x;
  do {
  cout<<("\n\nMENU TEMPS\n" );
  cout<<("Taper un des chiffres du menu suivant:\n" );
  cout<<("0. Revenir au menu de départ\n" );
  cout<<("1. en jour\n" );
  cout<<("2. en mois\n" );
  cout<<("3. en année\n" );
  cout<<("4. Revenir au menu précédent\n" );
  cin>>x;
 
    switch(x) {
    case '1': break;
    case '2': break;
    case '3': break;
    case '0': Menu0();break;
    default: break;
   }
  } while (1);
}
 
 
void Menu3() {
  char x;
  do {
  cout<<("\n\nMENU OPTIONS\n" );
  cout<<("Taper un des chiffres du menu suivant:\n" );
  cout<<("0. Revenir au menu de départ\n" );
  cout<<("1. Modifications temporelle\n" );
  cout<<("2. Modifications sur les hotes\n" );
  cout<<("3. Modifications des paramètres externes\n" );
  cin>>x;
 
    switch(x) {
    case '1': Menu31();break;
    case '2': Menu32();break;
    case '3': Menu33();break;
    case '0': Menu0();break;
    default: break;
   }
  } while (1);
}
 
int Menu2() {
 
}
 
int Menu1() {
 
}
 
 
int Menu0() {
  char x;
  do {
  cout<<("\n\nMENU PRINCIPAL\n" );
  cout<<("Taper un des chiffres du menu suivant:\n" );
  cout<<("0. Quitter\n" );
  cout<<("1. Affichage Graphique\n" );
  cout<<("2. Sauvegarder l'affichage et les paramètres\n" );
  cout<<("3. Modifier les paramètres\n" );
  cin>>x;
    switch(x) {
    case '1': Menu1();break;
    case '2': Menu2();break;
    case '3': Menu3();break;
    case '0': return 0;break;
    default: break;
   }
  } while (x!=0 && x!=1 && x!=2 && x!=3 );
}
 
int main(){
...
Menu0();
...
}

Reply

Marsh Posté le 20-01-2003 à 17:14:32   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed