Autor
|
Tema: ayuda en un menu en switch (Leído 23,878 veces)
|
poisonkhriz
Desconectado
Mensajes: 3
|
hola a todos bueno soy nuevo en la programacion sobre todo en c, uso un copilador bastante primitivo q es el turbo c 3.0 ese nos exigen en la U XD bueno al grano. lo que queria pedirles es como hacer un menu con funciones por ejemplo #include<stdio.h> #include<conio.h> void alta( int........char.....) void bajas(int....float...) main() { printf(" menu") . . . . . switch(op); { case 1: // aqui es mi duda en como aplicar la funcion void en el case, tengo que llamarla,o simplementes hacer la operaciones pertinentes no se si me de entender,es que la verdad mi maestra de curso no sabe explicar nada.... bueno ojala me puedan ayudar y de paso ojala me den algunos consejillos para programar XD gracias por leer el post
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
El switch selecciona en función de lo que tu pongas. En tu caso, op. lo que hay en el case, es lo que se hará si se da que op tiene ese valor. Supongamos que n es una variable entera switch(n){ case 0: hago_algo(); break; case 5: n=hago_otra_cosa(n); break; case default: no_hago_nada(); break }
Si n vale 0, se llama a la función void hago_algo. si n vale 5, se llama a una función que devuelve un entero, que se guarda en n, y para cualquier otro caso, se llama a la función void no_hago_nada. Espero que de esta forma se entienda como funciona el switch
|
|
« Última modificación: 20 Marzo 2011, 03:04 am por Akai »
|
En línea
|
|
|
|
poisonkhriz
Desconectado
Mensajes: 3
|
si,eso lo entiendo.. bueno por ejemplo he visto ejemplos en donde en el case solo se pone la funcion case 1: altas break; case 2: bajas break; } void altas //aca se llama la funcion y se hace la operacion tengo duda en eso como aplicar las funciones en el case o tambien les agradecería mucho si me puedieran dar un ejemplo de un switch con funciones void y que retornen valor gracias por contestar
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
No, en el case no se está poniendo la función.
(case 1) : función
el case, es el 1, los dos puntos, separan el case de lo que se tiene que realizar en el case, que es la función.
Y los ejemplos que pides, ya los he puesto antes, mira con atención.
|
|
|
En línea
|
|
|
|
Samael.Black
Desconectado
Mensajes: 19
|
Bueno nose mucho de programacion... pero quisas te refieras a esto: #include <iostream> #include <stdlib.h> void saludar(){ std::cout << "Hola mundo" << std::endl; } // <-- funcion 1 void adios(){ system("exit"); } // <-- funcion 2
int main() { empezar: int accion = 0; std::cout << "MENU:" << std::endl; std::cout << "[1] Ir a la funcion." << std::endl; // <-- menu std::cout << "[2] Salir del programa." << std::endl; std::cin >> accion; switch(accion) <-- inicias switch leyendo el valor de variable accion { case 1: saludar(); <-- llamas a funciones break; case 2: adios(); // <--- llamas a funciones break; default: system ("cls"); std::cout << "Error valor no reconocido" << std::endl; goto empezar; } return 0; }
|
|
|
En línea
|
|
|
|
poisonkhriz
Desconectado
Mensajes: 3
|
si exacto algo asi pero sin el iostream todavia no veo eso en clase ahi llamas la funcion en el case y me imagino que cuando se termina el switch, llamas de nuevo la funcion para ejecutar el caso....
|
|
|
En línea
|
|
|
|
Akai
Desconectado
Mensajes: 823
|
poisonkhriz, date cuenta de lo siguiente. NO llamas a la función para evaluar el case, sino una vez el case está evaluado. Da lo mismo, que lo pongas de esta forma: switch(n){ case 0: hago_algo(); break; case 5: n=hago_otra_cosa(n); break; case default: no_hago_nada(); break }
switch(n){ case 0:hago_algo(); break; case 5:n=hago_otra_cosa(n); break; case default: no_hago_nada(); break }
Es lo mismo. Y te repito NO TIENES FUNCIONES EN LA EVALUACIÓN DEL CASE, sino en lo que se realiza en caso de darse ese valor del parámetro evaluado por el switch. EL CASE VA ANTES DE LOS DOS PUNTOS, TODO LO DEMÁS ES LO QUE SE HACE SI SE DA ESE CASO
|
|
|
En línea
|
|
|
|
<<<-Basura->>>
Desconectado
Mensajes: 388
|
Bueno Creo que lo que necesitas es esto: #include <stdio.h> // Liberia de Entrada y Salida E/S O/I #include <conio.h> // Para usar clrscr(); #include <stdlib.h> // Solo para usar exit(); altas(); // Se Declara Funcion Altas bajas(); // Se Declara Funcion Bajas error(); // Se Declara Funcion Error void main(){ char sw; // Esta es la variable que va a cotrolar el menu ES un TIPO CHAR porque el int da errores... // Si declaras un int y por error meten una letra.. bucle infinito do{ gotoxy(0,0); // Espesificar donde va hacer la salida printf("1. Altas \n"); // printf("2. Bajas \n"); // Esto es para imprimir el Menu printf("3. Salir \n"); // scanf("%s",&sw); // Le asigna un valor a la variable switch(sw){ case '1': clrscr(); // Limpiar la Consola altas(); // Se va a la Funcion altas break; case '2': clrscr(); // limpiar la consola bajas(); //se va a la funcion bajas break; case '3': clrscr(); // limpiar la consola break; default: error(); // Se va a la Funcion Error } }while(sw!='3'); // SI se Escribe 3 se Sale del buble--- Terminar exit(0); // Terminar Programa } altas(){ gotoxy(5,5); // Imprimir espeficicamente en la posicion 5,5 printf("Altas"); //Salida.. Imprime Altas } bajas(){ gotoxy(5,5); // Imprimir espeficicamente en la posicion 5,5 printf("Bajas"); //Salida.. Imprime Bajas } error(){ // ESTO ES clrscr(); // limpiar la consola // Por si meten algun valor que gotoxy(5,5);printf("No Selecciono Ninguna Obcion..."); // No este en el Menu }
Bueno Es lo Mejor que Pude Hacer. Espero que te sirva
|
|
|
En línea
|
<<<--Basura-->>>
|
|
|
Akai
Desconectado
Mensajes: 823
|
rasielunderwar, sinceramente, tu código necesita un par de arreglos.
Lees un carácter como un string? MAL para leer caracteres char sw;
para leer cadenas char cadena[10]; // o si jugamos con memoria dinámica char* cadena;
Usar conio... ejem, tiende a pecado. Es una librería tremendamente obsoleta. Por otro lado, para qué terminar con un exit 0? haz tu main int y que haga un return 0.
|
|
« Última modificación: 20 Marzo 2011, 14:53 pm por Akai »
|
En línea
|
|
|
|
<<<-Basura->>>
Desconectado
Mensajes: 388
|
Pues gracias por los consejos... cambie mi codigo a int main, y quite el exit(0); pero me manda un error: General Protection Exception SW.CPP 42 SW(2) 0x138F:0x0097 Processor Fault por eso fue que lo hice con el exit , Podrias decirme porque es que sale ese error.. jeje
|
|
« Última modificación: 20 Marzo 2011, 15:33 pm por rasielunderwar »
|
En línea
|
<<<--Basura-->>>
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
una pequeña ayuda con el comando switch
Programación C/C++
|
alkimista1988
|
3
|
3,043
|
20 Junio 2011, 18:49 pm
por alkimista1988
|
|
|
[SRC] Menú básico usando switch
Java
|
madpitbull_99
|
2
|
4,570
|
15 Octubre 2011, 12:55 pm
por тαптяα
|
|
|
Ayuda por favor con un switch con 3 cases
Programación C/C++
|
suso teruel
|
3
|
2,666
|
10 Julio 2012, 20:24 pm
por suso teruel
|
|
|
Necesito ayuda con un menu en java (switch)
Java
|
Mike_Mike_2000
|
3
|
4,308
|
25 Septiembre 2014, 07:10 am
por milx86
|
|
|
Nintendo muestra por error el menú para desarrolladores de Switch en un vídeo...
Noticias
|
wolfbcn
|
0
|
1,585
|
1 Febrero 2017, 22:30 pm
por wolfbcn
|
|