Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: EL PORTU en 11 Mayo 2013, 05:40 am



Título: quien me orienta con este ejercicio en c++
Publicado por: EL PORTU en 11 Mayo 2013, 05:40 am
estoy haciendo un programa de cajero automatico me corre pero tiene varios errores quien me pueda ayuda se los agradeceres o si tiene otra forma sencilla de hacer el cajero automatico tambie deria de ayuda para compara aqui esta los que hice             :

#include<stdio.h>
int a=123456,opcion=0;
main()
      {
       printf("\nESTE PROGRAMA MUESTRA COMO ES EL SISTEMA DE UN CAJERO AUTOMATICO");
       printf("\nDame tu clave");
       scanf("\n%d",&a);
       if(a==123456)
       printf("\nEs correcto");
       else
       printf("\n Contraseña invalida");
       printf("\nTeclea otra ves tu clave");
       scanf("\n%d",& a);
       if(a==123456)
       printf("\nEs correcto");
       else
       printf("\nContraseña invalida");
       printf("\nTeclea nuevamente  tu clave");
       scanf("\n%d",& a);
       if(a==123456)
       printf("\nEs correcto");
       else
       printf("\n Contraseña invalida\n");
       printf("\nEste es el menu de opciones ");
       printf("\n1.-Traspaso\n");
       printf("\n2.-Recargas\n");
       printf("\n3.-Retiro en efectivo\n");
       printf("\n11.-Salir\n");
       printf("\nTeclea la opcion que quieras\n");
       scanf("\n%d",&opcion);
       switch(opcion)
              {
                  case 1:
                        {
                         puts("Traspaso");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }
                  case 2:
                        {
                         puts("Recargas");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }
                  case 3:
                        {
                         puts("\nRetiro en efectivo");
                         puts("\nCuanto deseas retirar:");
                         puts("\nElige la opcion que quieras para retirar");
                         puts("\nPuedes elegir:");
                         puts("\n4.- $20");
                         puts("\n5.- $50");
                         puts("\n6.- $100");
                         puts("\n7.- $200");
                         puts("\n8.- $500");
                         puts("\n9.- $1000");
                         puts("\nElige la opcion que quieras");
                         break;
                        }
                  case 4:
                        {
                         puts("Elegiste la opcion de $20");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }
                  case 5:
                        {
                         puts("Elegiste la opcion de $50");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }
                  case 6:
                        {
                         puts("Elegiste la opcion de $100");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }
                  case 7:
                        {
                         puts("Elegiste la opcion de $200");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }
                  case 8:
                        {
                         puts("Elegiste la opcion de $500");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }   
                  case 9:
                        {
                         puts("Elegiste la opcion de $1000");
                         puts("GRACIAS POR SU PREFERENCIA");
                         break;
                        }
                  case 11:
                          {
                           puts("Elejiste la opcion de salir");
                           puts("GRACIAS POR SU PREFERENCIA");
                           break;
                          }
                  default:
                          puts("opcion erronea");                                 
              }
                         getchar();
                         getchar();
      }       


Título: Re: quien me orienta con este ejercicio en c++
Publicado por: CodeSource en 11 Mayo 2013, 07:35 am
Código
  1. #include<stdio.h>
  2. int a=123456,opcion=0;
  3. main()
  4.      {
  5.       printf("\nESTE PROGRAMA MUESTRA COMO ES EL SISTEMA DE UN CAJERO AUTOMATICO");
  6.       printf("\nDame tu clave");
  7.       scanf("\n%d",&a);
  8.       if(a==123456)
  9.       printf("\nEs correcto");
  10.       else
  11.       printf("\n Contraseña invalida");
  12.       printf("\nTeclea otra ves tu clave");
  13.       scanf("\n%d",& a);
  14.       if(a==123456)
  15.       printf("\nEs correcto");
  16.       else
  17.       printf("\nContraseña invalida");
  18.       printf("\nTeclea nuevamente  tu clave");
  19.       scanf("\n%d",& a);
  20.       if(a==123456)
  21.       printf("\nEs correcto");
  22.       else
  23.       printf("\n Contraseña invalida\n");
  24.       printf("\nEste es el menu de opciones ");
  25.       printf("\n1.-Traspaso\n");
  26.       printf("\n2.-Recargas\n");
  27.       printf("\n3.-Retiro en efectivo\n");
  28.       printf("\n11.-Salir\n");
  29.       printf("\nTeclea la opcion que quieras\n");
  30.       scanf("\n%d",&opcion);
  31.       switch(opcion)
  32.              {
  33.                  case 1:
  34.                        {
  35.                         puts("Traspaso");
  36.                         puts("GRACIAS POR SU PREFERENCIA");
  37.                         break;
  38.                        }
  39.                  case 2:
  40.                        {
  41.                         puts("Recargas");
  42.                         puts("GRACIAS POR SU PREFERENCIA");
  43.                         break;
  44.                        }
  45.                  case 3:
  46.                        {
  47.                         puts("\nRetiro en efectivo");
  48.                         puts("\nCuanto deseas retirar:");
  49.                         puts("\nElige la opcion que quieras para retirar");
  50.                         puts("\nPuedes elegir:");
  51.                         puts("\n4.- $20");
  52.                         puts("\n5.- $50");
  53.                         puts("\n6.- $100");
  54.                         puts("\n7.- $200");
  55.                         puts("\n8.- $500");
  56.                         puts("\n9.- $1000");
  57.                         puts("\nElige la opcion que quieras");
  58.                         break;
  59.                        }
  60.                  case 4:
  61.                        {
  62.                         puts("Elegiste la opcion de $20");
  63.                         puts("GRACIAS POR SU PREFERENCIA");
  64.                         break;
  65.                        }
  66.                  case 5:
  67.                        {
  68.                         puts("Elegiste la opcion de $50");
  69.                         puts("GRACIAS POR SU PREFERENCIA");
  70.                         break;
  71.                        }
  72.                  case 6:
  73.                        {
  74.                         puts("Elegiste la opcion de $100");
  75.                         puts("GRACIAS POR SU PREFERENCIA");
  76.                         break;
  77.                        }
  78.                  case 7:
  79.                        {
  80.                         puts("Elegiste la opcion de $200");
  81.                         puts("GRACIAS POR SU PREFERENCIA");
  82.                         break;
  83.                        }
  84.                  case 8:
  85.                        {
  86.                         puts("Elegiste la opcion de $500");
  87.                         puts("GRACIAS POR SU PREFERENCIA");
  88.                         break;
  89.                        }  
  90.                  case 9:
  91.                        {
  92.                         puts("Elegiste la opcion de $1000");
  93.                         puts("GRACIAS POR SU PREFERENCIA");
  94.                         break;
  95.                        }
  96.                  case 11:
  97.                          {
  98.                           puts("Elejiste la opcion de salir");
  99.                           puts("GRACIAS POR SU PREFERENCIA");
  100.                           break;
  101.                          }
  102.                  default:
  103.                          puts("opcion erronea");                                
  104.              }
  105.                         getchar();
  106.                         getchar();
  107.      }        

así se ve mejor , yo te recomendaria que identes un poco para que se vea más orenado (: no manejo C pero ya habra alguien que te aconseje NOTA : no te sugiero porque desconozco la sintaxis aunque las palabras claves y eso son muy generales en otros lenguajes (:


Título: Re: quien me orienta con este ejercicio en c++
Publicado por: amchacon en 11 Mayo 2013, 12:24 pm
Vamos a ver, para la clave tienes que usar un bucle:

Código
  1. printf("\nDame tu clave");
  2. scanf("\n%d",&a);
  3.  
  4. while (a != 123456)
  5. {
  6.     printf("\n Contraseña invalida");
  7.     printf("\nTeclea otra ves tu clave");
  8.     scanf("\n%d",& a);
  9. }
  10.  
  11. printf("Contraseña correcta");

Además en el case 3 se te ha olvidado un scanf.

La próxima vez dinos que errores tiene (y acabamos antes).


Título: Re: quien me orienta con este ejercicio en c++
Publicado por: leosansan en 11 Mayo 2013, 14:46 pm

Para empezar no es C++ sino más bien C.


Además de lo comentado por amchacon, tienes dos switch y no tiene por qué continuar los case del uno con el otro, ambos pueden empezar de 1, eso sí con dos opciones diferentes para no liarla.

Las opciones con entero pueden dar bucles si el usuario entra una letra en lugar de un número, de ahí que yo los use como char y en los case, al ser char van entre las comillas simples.

Sería conveniente darle al usuario la opción de regresar al menú principal una vez que ha usado el menú secundario o segundo switch, así al menos es como funcionan los cajeros y limpiar o refrescar la pantalla según se vayan seleccionando opciones. Con estas opciones te propongo este código para seguir mejorándolo:


Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define GRACIAS     puts("GRACIAS POR SU PREFERENCIA")
  4. int main(){
  5.       int a;
  6.       char opcion,opcion1;
  7.       puts("\nESTE PROGRAMA MUESTRA COMO ES EL SISTEMA DE UN CAJERO AUTOMATICO");
  8.        while(1){
  9.            puts ("\nDame tu clave");
  10.            scanf(" %d",&a);
  11.            if(a==123456){
  12.                system ("cls");
  13.                puts("\nEs correcto");
  14.                break;
  15.            }
  16.            else{
  17.                printf("\n Contraseña invalida");
  18.                printf("\nTeclea otra ves tu clave");
  19.            }
  20.       }
  21.        while (1){
  22.        system("\npause");
  23.        system ("cls");
  24.        puts("\nEste es el menu de opciones\n ");
  25.        puts("1.-Traspaso\n");
  26.        puts("2.-Recargas\n");
  27.        puts("3.-Retiro en efectivo\n");
  28.        puts("4.-Salir\n");
  29.        puts("\nTeclea la opcion que quieras\n");
  30.        scanf(" %c",&opcion);
  31.  
  32.            switch(opcion)
  33.              {
  34.                  case '1':
  35.                        {
  36.                            puts("Traspaso");
  37.                            GRACIAS;
  38.                         break;
  39.                        }
  40.                  case '2':
  41.                        {
  42.                         puts("Recargas");
  43.                         GRACIAS;
  44.                         break;
  45.                        }
  46.                  case '4':
  47.                          {
  48.                               puts("Elejiste la opcion de salir");
  49.                               GRACIAS;
  50.                               system("\npause");
  51.                               return 1;
  52.                          }
  53.                        default:
  54.                          puts("opcion erronea");
  55.                  case '3':
  56.                        {
  57.                         system ("cls");
  58.                         puts("\nRetiro en efectivo");
  59.                         puts("\nCuanto deseas retirar:");
  60.                         puts("\nElige la opcion que quieras para retirar");
  61.                         puts("\nPuedes elegir:");
  62.                         puts("1.- $20");
  63.                         puts("2.- $50");
  64.                         puts("3.- $100");
  65.                         puts("4.- $200");
  66.                         puts("5.- $500");
  67.                         puts("6.- $1000");
  68.                         puts("7.- Volver al menu principal");
  69.  
  70.                                puts("\nElige la opcion que quieras");
  71.                                scanf("\n%c",&opcion1);
  72.                                switch(opcion1)
  73.                                 {
  74.                                    case '1':
  75.                                {
  76.                                     puts("Elegiste la opcion de $20");
  77.                                     GRACIAS;
  78.                                     break;
  79.                                }
  80.                                case '2':
  81.                                {
  82.                                     puts("Elegiste la opcion de $50");
  83.                                     GRACIAS;
  84.                                     break;
  85.                                }
  86.  
  87.                                case '3':
  88.                                {
  89.                                     puts("Elegiste la opcion de $100");
  90.                                     GRACIAS;
  91.                                     break;
  92.                                }
  93.                                case '4':
  94.                                {
  95.                                     puts("Elegiste la opcion de $200");
  96.                                    GRACIAS;
  97.                                     break;
  98.                                }
  99.                                case '5':
  100.                                {
  101.                                     puts("Elegiste la opcion de $500");
  102.                                     GRACIAS;
  103.                                     break;
  104.                                }
  105.                                case '6':
  106.                                {
  107.                                     puts("Elegiste la opcion de $1000");
  108.                                     GRACIAS;
  109.                                     break;
  110.                                }
  111.                                case '7':
  112.                                {
  113.                                     puts("Elegiste la opcion de volver al menu principal");
  114.                                     GRACIAS;
  115.                                     break;
  116.                                }
  117.                                default:
  118.                                  puts("opcion erronea");
  119.                                  break;
  120.                            }
  121.  
  122.                        }
  123.  
  124.              }
  125.        }
  126.        return 0;
  127.  
  128.      }
  129.  

Saluditos!. .....  (http://st.forocoches.com/foro/images/smilies/aaaaa.gif)