Probleme qui fait tourner la tete

Moderator: Mod

Probleme qui fait tourner la tete

Postby grisson » Sun Jun 08, 2008 11:34 pm

Salut , en aprentissage du langage C/C++ j'ai décider de modifier un TP du site du zero en donnant un panel de choix plus poussé , mais voila , c'est comme si une boucle etait insérée quelque par , apres avoir choisi le numero de boisson , il fait comme si javai choisi un menu et redemare , Houla ! :roll:

Voyez de vous meme , le code source est ici :

[code:1:896002309b]#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
long choixMenu;
printf("\nBienvenue chez Mac Donald's !\n\n");
printf("*****MENU*****\n\n");
printf("1. Royal cheese\n");
printf("2. Mc Deluxe\n");
printf("3. Mc Bacon\n");
printf("4. Big Mac\n\n");
printf("Faites votre choix !\n\n");
printf("Numero menu : ");
scanf("%ld", &choixMenu);

switch (choixMenu)

{
case 1:
long choixBoisson;
printf("\n\nVous avez choisi le menu Royal cheese");
printf("\n\nChoisissez votre boisson :");
printf("\n\n1.Coca 50cl");
printf("\n2.Coca 100cl");
printf("\n3.Bouteille d eau 50 cl");
printf("\n\nNumero boisson : ");
scanf("%ld", &choixBoisson);

switch (choixBoisson)
{
case 1:
printf("\n\nVous avez choisi un Coca 50 cl et un Royal cheese\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 2:
printf("\n\nVous avez choisi un Coca 100 cl et un Royal cheese\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 3:
printf("\n\nVous avez choisi une bouteille d eau 50 cl et un Royal cheese\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
default:
printf("\n\nVa te faire voir cette boisson n'est pas proposee!\n");
break;

}
case 2:

printf("\n\nVous avez choisi le menu Mc Deluxe");
printf("\n\nChoisissez votre boisson :");
printf("\n\n1.Coca 50cl");
printf("\n2.Coca 100cl");
printf("\n3.Bouteille d eau 50 cl");
printf("\n\nNumero boisson : ");
scanf("%ld", &choixBoisson);

switch (choixBoisson)
{
case 1:
printf("\n\nVous avez choisi un Coca 50 cl et un Mc Deluxe\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 2:
printf("\n\nVous avez choisi un Coca 100 cl et un Mc Deluxe\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 3:
printf("\n\nVous avez choisi une bouteille d eau 50 cl et un Mc Deluxe\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
default:
printf("\n\nVa te faire voir cette boisson n'est pas proposee!\n\n");
break;

}
case 3:

printf("\n\nVous avez choisi le menu Mc Bacon");
printf("\n\nChoisissez votre boisson :");
printf("\n\n1.Coca 50cl");
printf("\n2.Coca 100cl");
printf("\n3.Bouteille d eau 50 cl");
printf("\n\nNumero boisson : ");
scanf("%ld", &choixBoisson);


switch (choixBoisson)
{
case 1:
printf("\n\nVous avez choisi un Coca 50 cl et un Mc Bacon\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 2:
printf("\n\nVous avez choisi un Coca 100 cl et un Mc Bacon\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 3:
printf("\n\nVous avez choisi une bouteille d eau 50 cl et un Mc Bacon\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
default:
printf("\n\nVa te faire voir cette boisson n'est pas proposee!\n\n");
break;

}
case 4:

printf("\n\nVous avez choisi le menu Big Mac");
printf("\n\nChoisissez votre boisson :");
printf("\n\n1.Coca 50cl");
printf("\n2.Coca 100cl");
printf("\n3.Bouteille d eau 50 cl");
printf("\n\nNumero boisson : ");
scanf("%ld", &choixBoisson);


switch (choixBoisson)

{
case 1:
printf("\n\nVous avez choisi un Coca 50 cl et un Big Mac\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 2:
printf("\n\nVous avez choisi un Coca 100 cl et un Big Mac\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
case 3:
printf("\n\nVous avez choisi une bouteille d eau 50 cl et un Big Mac\nvotre commande sera bientot prete, veuillez avancer vers la caisse, Merci\n\n");
break;
default:
printf("\n\nVa te faire voir cette boisson n'est pas proposee!\n\n");
break;
}

default:
printf("\n\nVa te faire voir ce menu n'existe pas!\n\n");
break;


}
system ("pause");

}



[/code:1:896002309b]

Voila voila , essayez pour les utilisateurs de compilateurs C/C++ dexecuter ce programme vous comprendrez mieu ;-) ,

Amicalement , Grisson :)
User avatar
grisson
Projets
 
Posts: 8
Joined: Tue Jun 03, 2008 11:59 am

Postby rougpom » Mon Jun 09, 2008 1:14 am

Premièrement: ne pas oublier, à la fin de tes 'case', l'instruction break qui permet de sortir du switch (sinon tous les cas seront traités à la suite). Ce qui résout ton problème

Deuxièmement les programmeurs n'aiment pas la répétition donc le copy/paste dans ton code est à éviter. Procède autrement!! Tu n'as pas besoin de switch imbriqués.
rougpom
Projets
 
Posts: 3
Joined: Wed Jun 04, 2008 7:00 am

Postby grisson » Mon Jun 09, 2008 10:05 am

Ca marche , en effet le copier coller est provisoire , je ne maitrise encore pas tres bien tout ce qui est boucle ou autre .

En tout cas merci beaucoup de ta reponse , j'ai essayer cela a resolu mon probleme de repetition mai le probleme est que maintenant je ne peux lancer un message qui confirme le choix de la boisson , alors y a t il une autre solution , ou alors ce n'est tout simplmeet pas possible ou tres compliqué de construire ce programmes avec ces simples instructions ?
User avatar
grisson
Projets
 
Posts: 8
Joined: Tue Jun 03, 2008 11:59 am

Postby Demosthene » Mon Jun 09, 2008 5:09 pm

[quote:721fadff2e]ou alors ce n'est tout simplmeet pas possible ou tres compliqué de construire ce programmes avec ces simples instructions ?[/quote:721fadff2e]
Rien n'est impossible ! il faut juste réfléchir ... ce genre de programme n'a rien de difficile ! il faut juste que tu t'habitue a résoudre ce genre de programmes

Une piste : Créer une fonction confirmerChoix qui prend en valeur un int , et dans le switch(choixBoisson) tu met ca :
confirmerChoix(choixBoisson)
Après a toi de repeter le meme tableau et d'afficher le message de choix !
en esperant t'avoir aidé !
Salut
User avatar
Demosthene
Projets
 
Posts: 113
Joined: Mon May 05, 2008 7:40 pm

Postby grisson » Mon Jun 09, 2008 10:16 pm

Oui merci je vai tester ca le plus rapidement possible ;-) .

A la prochaine , amicalement Grisson ..
User avatar
grisson
Projets
 
Posts: 8
Joined: Tue Jun 03, 2008 11:59 am

Postby TheGamerz » Tue Jun 10, 2008 3:32 pm

Juste, enlève le "va te faire voir" par autre chose, perso, comme beaucoup d'autres, je vais pas sur la toile pour me faire lincher/insulter. =O

Voilà petite paranthèse ^^'


[u:a2b59b2800]TheGamerz.[/u:a2b59b2800]
User avatar
TheGamerz
Projets
 
Posts: 278
Joined: Wed Apr 09, 2008 3:46 pm


Return to C/C++

Who is online

Users browsing this forum: No registered users and 8 guests

cron