Projet URGENT: menus imbriqués - C++ - Programmation
MarshPosté 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?
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 ); }
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();
...
}