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

Menu con switch

Estas en el tema de Menu con switch en el foro de C/C++ en Foros del Web. Buenas chicos tal vez me puedan dar una mano, estoy haciendo un menú con switch, pero al seleccionar una opción termina con esa. Ya probé ...
  #1 (permalink)  
Antiguo 31/07/2010, 17:29
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Menu con switch

Buenas chicos tal vez me puedan dar una mano, estoy haciendo un menú con switch, pero al seleccionar una opción termina con esa. Ya probé con while pero no lo consigo.

Código C:
Ver original
  1. #include <stdio.h>
  2. int main(){
  3.     char nombre[20];
  4.     int a,b,c;
  5.     int num;
  6.     int salirMenu = 0;
  7. while(salirMenu == 0){
  8.     printf("Lista de opciones, selecione 1) Para agregar alumno, 2) Para darle una calificacion. Selecione: ");
  9.     scanf("%i", &num);
  10. switch(num)
  11. {
  12.       case 1:
  13.       printf("Introduce nombre del alumno: \n");
  14.       scanf("%i", nombre);
  15.       salirMenu = 1;
  16.       break;
  17.       case 2:
  18.       printf("Introduce notas: \n");
  19.       scanf("%i", a, b, c);
  20.       break;
  21.       case 3:
  22.       printf("El alumno: %i, tiene la calificacion de %i %i %i \n", nombre, a, b ,c);
  23.       break;
  24.       default:
  25.       printf( "Tienes que selecionar una opcion correcta.\n" );
  26. }
  27. }
  28. }

Gracias ;)
  #2 (permalink)  
Antiguo 31/07/2010, 22:02
Avatar de gvite666  
Fecha de Ingreso: abril-2010
Mensajes: 65
Antigüedad: 14 años
Puntos: 4
Respuesta: Menu con switch

hola "guzzano" sabes no entiendo lo que pides, asi que no se si pueda ayudarte en eso, lo que si puedo es corregiste algunas cosas de tu programa.

Código C:
Ver original
  1. case 1:
  2.        printf("Introduce nombre del alumno: \n");
  3.        scanf("%s", nombre);/*aqui tienes que poner una "s" en tu mascara ya que
  4.        estas recibiendo una cadena o un string en ingles*/
Código C:
Ver original
  1. case 2:
  2.       printf("Introduce notas: \n");
  3.       scanf("%i %i %i", &a, &b, &c);//te faltaron los apuntadores a la dirrecion de memoria y varias mascaras
Código C:
Ver original
  1. case 3:
  2.       printf("El alumno: %s, tiene la calificacion de %i %i %i \n", nombre, a, b ,c);//la "s" de la cadena o string
Corrige esto y si todavia no hace lo que tu quieres, xf explicalo un poco mejor.
Saludos.
  #3 (permalink)  
Antiguo 01/08/2010, 09:28
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Menu con switch

Seguramente la primeros que hacer es introducir un nombre y esa opcion pone a la variable SalirMenu en Uno, por lo que en la proxima iteracion del while la condicion es mentira y evita el while!
  #4 (permalink)  
Antiguo 01/08/2010, 10:13
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: Menu con switch

Cita:
Iniciado por gvite666 Ver Mensaje
hola "guzzano" sabes no entiendo lo que pides, asi que no se si pueda ayudarte en eso, lo que si puedo es corregiste algunas cosas de tu programa.

Código C:
Ver original
  1. case 1:
  2.        printf("Introduce nombre del alumno: \n");
  3.        scanf("%s", nombre);/*aqui tienes que poner una "s" en tu mascara ya que
  4.        estas recibiendo una cadena o un string en ingles*/
Código C:
Ver original
  1. case 2:
  2.       printf("Introduce notas: \n");
  3.       scanf("%i %i %i", &a, &b, &c);//te faltaron los apuntadores a la dirrecion de memoria y varias mascaras
Código C:
Ver original
  1. case 3:
  2.       printf("El alumno: %s, tiene la calificacion de %i %i %i \n", nombre, a, b ,c);//la "s" de la cadena o string
Corrige esto y si todavia no hace lo que tu quieres, xf explicalo un poco mejor.
Saludos.
Si ya me había dado cuenta, sabes que al seleccionar una opción, ejecuta todo el código y cuando terminas con breck se termina el programa. Yo lo que quiero es hacer volver regresar al menú, osea el de seleccionar opciones.

Cita:
Iniciado por sam90 Ver Mensaje
Seguramente la primeros que hacer es introducir un nombre y esa opcion pone a la variable SalirMenu en Uno, por lo que en la proxima iteracion del while la condicion es mentira y evita el while!
Estoy aprendiendo jaja, ¿que desventajas consigo con while?
  #5 (permalink)  
Antiguo 01/08/2010, 11:40
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Menu con switch

Saca la linea 15 de tu codigo...y tendria que funcionar!!
  #6 (permalink)  
Antiguo 01/08/2010, 12:06
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: Menu con switch

Cita:
Iniciado por sam90 Ver Mensaje
Saca la linea 15 de tu codigo...y tendria que funcionar!!
Pero si es así entonces el while no tiene una condición que ejecutar. Sin la linea 15 no muestra ningún texto.
  #7 (permalink)  
Antiguo 01/08/2010, 12:27
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Menu con switch

Código C++:
Ver original
  1. #include <stdio.h>
  2. int main(){
  3.     char nombre[20];
  4.     int a,b,c;
  5.     int num;
  6.     int salirMenu = 0;
  7. while(salirMenu == 0){
  8.     printf("Lista de opciones, selecione 1) Para agregar alumno, 2) Para darle una calificacion. Selecione: ");
  9.     scanf("%i", &num);
  10. switch(num)
  11. {
  12.       case 1:
  13.       printf("Introduce nombre del alumno: \n");
  14.       scanf("%i", nombre);
  15.      
  16.       break;
  17.       case 2:
  18.       printf("Introduce notas: \n");
  19.       scanf("%i", a, b, c);
  20.       break;
  21.       case 3:
  22.       printf("El alumno: %i, tiene la calificacion de %i %i %i \n", nombre, a, b ,c);
  23.       break;
  24.       default:
  25.       printf( "Tienes que selecionar una opcion correcta.\n" );
  26. }
  27. }
  28. }


Prueba con tu codigo asi!!
  #8 (permalink)  
Antiguo 01/08/2010, 13:23
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: Menu con switch

Cita:
Iniciado por sam90 Ver Mensaje
Código C++:
Ver original
  1. #include <stdio.h>
  2. int main(){
  3.     char nombre[20];
  4.     int a,b,c;
  5.     int num;
  6.     int salirMenu = 0;
  7. while(salirMenu == 0){
  8.     printf("Lista de opciones, selecione 1) Para agregar alumno, 2) Para darle una calificacion. Selecione: ");
  9.     scanf("%i", &num);
  10. switch(num)
  11. {
  12.       case 1:
  13.       printf("Introduce nombre del alumno: \n");
  14.       scanf("%i", nombre);
  15.      
  16.       break;
  17.       case 2:
  18.       printf("Introduce notas: \n");
  19.       scanf("%i", a, b, c);
  20.       break;
  21.       case 3:
  22.       printf("El alumno: %i, tiene la calificacion de %i %i %i \n", nombre, a, b ,c);
  23.       break;
  24.       default:
  25.       printf( "Tienes que selecionar una opcion correcta.\n" );
  26. }
  27. }
  28. }


Prueba con tu codigo asi!!
Así también lo había probado antes, se repite muchas veces. Cuando vuelva pruebo con do while aver.

Última edición por guzzano; 01/08/2010 a las 13:37
  #9 (permalink)  
Antiguo 01/08/2010, 14:06
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Menu con switch

No entiendo que queres hacer entonces!! porque primero te quejas que se termina el programa, ahora te quejas que se hace repite muchas veces, decidite!!

el do while es lo mismo que el while... sino atinas bien a las condiciones vas a estar en lo mismo,
  #10 (permalink)  
Antiguo 01/08/2010, 14:25
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: Menu con switch

Cita:
Iniciado por sam90 Ver Mensaje
No entiendo que queres hacer entonces!! porque primero te quejas que se termina el programa, ahora te quejas que se hace repite muchas veces, decidite!!

el do while es lo mismo que el while... sino atinas bien a las condiciones vas a estar en lo mismo,
De esa manera si se repite, pero no como debería.


Yo solo quiero tratar que vuelva y pueda seleccionar la opción de abajo. Se que se puede hacer de una manera mas fácil sin usar switch, pero tengo una futura idea ;)

Etiquetas: switch
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 21:36.