elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con menu de programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con menu de programa  (Leído 7,422 veces)
DarkJack

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con menu de programa
« 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;
}


En línea

Alien-Z

Desconectado Desconectado

Mensajes: 177


C++ Programmer


Ver Perfil
Re: Ayuda con menu de programa
« Respuesta #1 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.


En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Ayuda con menu de programa
« Respuesta #2 en: 25 Agosto 2011, 17:20 pm »

Dev-C++ no es un compilador.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda con menu de programa
« Respuesta #3 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
  1. int main(void)
  2. {
  3.   char *moneda[] = {"dolares", "yens", "euros"};
  4.   float cambio[] = {dolar, yen, euro};
  5.   float pesos;
  6.   int i;
  7.  
  8.   do {
  9.      i = menuPrincipal();
  10.  
  11.      if (i >= 1 && i <= 3){
  12.         printf ("\n\n\t\tCual es la cantidad de pesos a cambiar? -> ");
  13.         scanf ("%f", &pesos);
  14.         printf ("\t\tLa cantidad de %s es: -> %.2f\n\n\t", moneda[i - 1], pesos / cambio[i - 1]);
  15.      }else
  16.         printf ("Este numero no esta dentro del menu, porfavor elige otro\n\n\t\t");
  17.   }while (i < 4);
  18.  
  19.   return 0;
  20. }

También debes decidir donde se debe validar la opción elegida por el usuario (función principal o en el menú).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa para Inhabilitar links en el menu ...
Software
GAF 0 1,265 Último mensaje 23 Mayo 2005, 01:52 am
por GAF
No se Puede encontrar el programa de generacion de menu???
Ingeniería Inversa
percy_u 2 2,916 Último mensaje 29 Diciembre 2005, 03:23 am
por pERICOTE
PROGRAMA PARA MENU WEB EN FLASH
Diseño Gráfico
conmanx 2 1,876 Último mensaje 20 Junio 2006, 17:14 pm
por barco
pHacer un programa, con un menú de opcione
Programación C/C++
j 1 2,799 Último mensaje 17 Octubre 2011, 02:39 am
por g0nsan
ayuda..con repetir el programa o regresar al menu
Programación C/C++
retsam07 1 19,089 Último mensaje 1 Diciembre 2012, 16:37 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines