Título: Ayuda con menu de programa Publicado por: DarkJack en 25 Agosto 2011, 05:56 am bueno pues me han encargado un menu de conversiones de divisas, he hecho el programa en c, pero debido a que aun no conozco mucho del lenguje siento que hay muchas cosas que se pueden simplificar en mi programa, espero me puedan ayudar, y explicar como puedo mejorarlo :D, muchas gracias
Esta hecho en C, con el compilador Dev C++. #include <stdio.h> #include <windows.h> #define dolar 12.47 #define yen 0.16 #define euro 17.98 int menuPrincipal(void){//muestra el menu int retorno, i; system("cls"); printf("\n\n\n\t\t%c", 201); for(i = 0; i < 30; i++) { printf("%c", 205); } printf("%c\n", 187); printf("\t\t%c", 186); printf(" Conversor de divisas %c\n", 186); printf("\t\t%c ============================ %c\n", 186, 186); printf("\t\t%c 1.- De dolares a pesos %c\n", 186, 186); printf("\t\t%c 2.- De yens a pesos %c\n", 186, 186); printf("\t\t%c 3.- De Euro a pesos %c\n", 186, 186); printf("\t\t%c 4.- Salir %c\n", 186, 186); printf("\t\t%c", 200); for(i = 0; i < 30; i++) { printf("%c", 205); } printf("%c\n", 188); printf("\n\n\t\t Opcion ---------> "); scanf("%d", &retorno); return(retorno); } int main(int argi, char** argc) { float pesos, cant; // definicion de variable flotante int i = 0; while(i < 4) { i = menuPrincipal(); // ejecuta la funcion menu switch(i) { case 1: { //de dolares a pesos printf("\n\n\t\tCual es la cantidad de pesos a cambiar? -> "); scanf("%f", &pesos); cant = pesos / dolar; printf("\t\tLa cantidad de dolares es: -> %f\n\n\t", cant); system("PAUSE"); break; } case 2: { //de yens a pesos printf("\n\n\t\tCual es la cantidad de pesos a cambiar? -> "); scanf("%f", &pesos); cant = pesos/yen; printf("\t\tLa cantidad de yens es: -> %f\n\n\t", cant); system("PAUSE"); break; } case 3: { //de euro a pesos printf("\n\n\t\tCual es la cantidad de pesos a cambiar? -> "); scanf("%f", &pesos); cant = pesos/euro; printf("\t\tLa cantidad de euros es: -> %.2f\n\n\t", cant); system("pause"); break; } default: { printf("Este numero no esta dentro del menu, porfavor elige otro\n\n\t\t"); system("pause"); break; } } } return 0; } Título: Re: Ayuda con menu de programa Publicado por: Alien-Z en 25 Agosto 2011, 15:43 pm Aunque yo programo en C++ lo veo bastante bien para no usar clases o estructuras, lo que si creo es que hay demasiados "printf", puedes usar el mismo para imprimir en pantalla varias cosas en renglones diferentes usando: "\n", asi se simplificaría el programa.
Saludos. Título: Re: Ayuda con menu de programa Publicado por: тαптяα en 25 Agosto 2011, 17:20 pm Dev-C++ no es un compilador.
Título: Re: Ayuda con menu de programa Publicado por: rir3760 en 25 Agosto 2011, 18:13 pm El programa se puede reducir bastante.
* Para empezar seria mejor eliminar las llamadas a 'system("pause")' ya que, siendo estrictos, no son parte del programa. Bien se utiliza la característica de "pausa automática" soportada por la mayoría de los IDEs (con excepción de Dev-C++) o bien se ejecuta mediante el interprete de comandos. * No es necesario colocar llaves después de cada etiqueta y todos los casos, salvo el ultimo, inician con la impresión de la misma cadena (Se puede sacar del "switch"). Con esos mas otros cambios la función principal se puede reducir a: Código
También debes decidir donde se debe validar la opción elegida por el usuario (función principal o en el menú). Un saludo |