Foros del Web » Programación para mayores de 30 ;) » C/C++ »

No me respeta la distribucion de los menus

Estas en el tema de No me respeta la distribucion de los menus en el foro de C/C++ en Foros del Web. Estoy aprendiendo C, a diferencia de lo que he estado haciendo, el programa que diseñe tiene dos menús, uno para elegir entre dos animales, y ...
  #1 (permalink)  
Antiguo 06/07/2015, 20:10
 
Fecha de Ingreso: julio-2015
Mensajes: 1
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta No me respeta la distribucion de los menus

Estoy aprendiendo C, a diferencia de lo que he estado haciendo, el programa que diseñe tiene dos menús, uno para elegir entre dos animales, y después de elegir uno, elegir entre varias opciones para el animal; lo que quiero hacer es volver al menú de las opciones (segundo menú) solo he logrado volver al primer menú (en donde elijo entre los animales) ¿que tengo mal?

#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<conio.h>
int main(void)
{
clrscr();
char letra;
int n3,d;
printf("a=Ardilla\np=Piedra\n");
printf("Escoja entre la ardilla o la piedra:");
scanf("%c",&letra);
switch(tolower(letra))
{
case 'a':
do{
clrscr();
printf("1.Saltar\n2.Comer\n3.Bailar\n4.Defecar\n5. Abrazar\n6.Reproducirse\n7.Volar\n8.Pasar Fisica\n9.Piromano\n10.Morir");
printf("Seleccione una de las 10 opciones:");
scanf("%d",&n3);
if(n3==1)
printf("saltar\n");
scanf("%d",&d);
if(n3==2)
printf("muere\n");
break;
}while(d==30);
case 'p':
printf("Seleccione una de las 10 opciones:");
break;
case 'z':
exit(0);
break;
default:
printf("Opcion Incorrecta\n");
getch();
main();
break;
}
system("pause");
return 0;
}

por su ayuda, gracias
  #2 (permalink)  
Antiguo 07/07/2015, 00:44
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 2 meses
Puntos: 204
Respuesta: No me respeta la distribucion de los menus

Si colocas cada menú en una función... pasar de un menú a otro es tan sencillo como llamar a la función correspondiente. Esto lo puedes organizar de varias maneras, yo simplemente te estoy enseñando una de ellas:

Código C:
Ver original
  1. void menu1( void );
  2. void menu2( void );
  3.  
  4. void menu1( void )
  5. {
  6.   char letra;
  7.   do
  8.   {
  9.     printf("a=Ardilla\np=Piedra\n");
  10.     printf("Escoja entre la ardilla o la piedra:");
  11.     scanf("%c",&letra);
  12.     switch(tolower(letra))
  13.     {
  14.       case 'a':
  15.         printf( "Ardilla" );
  16.         menu2( );
  17.         break;
  18.  
  19.       case 'p':
  20.         printf( "Piedra" );
  21.         menu2( );
  22.         break;
  23.     }
  24.   } while( letra != 's' ); // usa la 's' para salir
  25. }
  26.  
  27. void menu2( )
  28. {
  29.   int opcion;
  30.   do
  31.   {
  32.     printf( "1.Saltar\n"
  33.             "2.Comer\n"
  34.             "3.Bailar\n"
  35.             "4.Defecar\n"
  36.             "5. Abrazar\n"
  37.             "6.Reproducirse\n"
  38.             "7.Volar\n"
  39.             "8.Pasar Fisica\n"
  40.             "9.Piromano\n"
  41.             "10.Morir\n" );
  42.     printf("Seleccione una de las 10 opciones:");
  43.     scanf("%d",&opcion);
  44.  
  45.     switch( opcion )
  46.     {
  47.       // ...
  48.     }
  49.  
  50.   } while( opcion != 0 ); // Usa la opcion 0 para salir
  51. }
  52.  
  53. int main( )
  54. {
  55.   menu1( );
  56. }

Un saludo

Etiquetas: menus, programacion, turboc, volver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:31.