Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Gzeba en 28 Febrero 2015, 19:39 pm



Título: Consulta programa Cajero Automatico Dev c++
Publicado por: Gzeba en 28 Febrero 2015, 19:39 pm
Buen dia Estimados,

Estoy confeccionando a modo de practica un programa que simula un cajero automatico con el saldo de 1000 pesos. El tema es que nose donde esta el error ya que a mi parecer esta bien.
El programa esta realizado en Dev c++.
Desde ya les agradsco mucho.

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  7.  
  8. int main(int argc, char** argv) {
  9.  
  10. int clave, opcion, monto, saldo, v1, v2, v3;
  11. cout<<"Este Programa muestra el funcionamiento basico de un cajero\n\n\n"<<endl;
  12. Clave:
  13. cout<<"Ingrese clave\n\n";
  14. cin>>clave;
  15.  
  16. Menu:
  17.  
  18. if (clave == 123)
  19. {
  20. Opciones:
  21. cout<<"\n\nBIENVENIDO SR GONZALEZ.\n\n"<<endl;
  22. cout<<"Seleccion la operacion a realizar\n\n";
  23. cout<<"\n1 - Retirar dinero\n";
  24. cout<<"\n2 - Consultar Saldo\n";
  25. cout<<"\nINSERTE OPCION DESEADA: ";
  26. cin>>opcion;
  27. switch (opcion)
  28. {
  29. case '1':
  30. cout<<"Ingrese La cantidad a retirar: $";
  31. cin>>monto;
  32. if (monto<1000)
  33. {
  34. cout<<"Usted va a extraer $"<<monto;
  35. cout<<"\n";
  36. cout<<"1 - Si     2 - No\n\n"<<endl;
  37. cout<<"Que desea Hacer: ";
  38. cin>>v1;
  39. switch (v1)
  40. {
  41. case '1':
  42.        cout<<"Usted ha Retirado $"<<monto<<endl;
  43. cout<<"\n";
  44. cout<<"Desea realizar otra operacion?\n\n";
  45. cout<<"1 - Si     2 - No\n\n"<<endl;
  46.               cin>>v2;
  47. switch (v2)
  48. {
  49. Casov1:
  50. case '1': goto Opciones;
  51. break;
  52. case '2': cout<<"muchas gracias!!"<<endl;
  53. break;
  54. default: cout<<"Opcion no valida!!"<<endl;
  55. goto Casov1;
  56. }
  57. break;
  58. case '2':
  59. Casov2:
  60. cout<<"Desea realizar otra operacion?\n\n";
  61. cout<<"1 - Si     2 - No\n\n"<<endl;
  62. cin>>v3;
  63. switch (v3)
  64. {
  65.         case '1': goto Opciones;
  66. break;
  67. case '2': cout<<"Muchas Gracias por usar nuestros servicios!!\n\n"<<endl;
  68. break;
  69. default: cout<<"Error: La Opcion ingresada no es Valida";
  70. goto Casov2;
  71. }
  72.  
  73. break;
  74.  
  75.         default:
  76. cout<<"Opcion Ingresa no Valida";
  77. goto Opciones;
  78. }
  79. }
  80. else
  81. {
  82. cout<<"No posee saldo para esta operacion;";
  83. goto Opciones;
  84. }
  85. break;
  86.  
  87. case '2':
  88. cout<<"Su saldo es: $"<<monto<<endl;
  89. goto Opciones;
  90. break;
  91.  
  92. default: cout<<"error!!";
  93.  
  94. }
  95.  
  96. }
  97. else
  98. {
  99. cout<<"Clave Erronea"<<endl;
  100. goto Clave;
  101. }
  102.  
  103. return 0;
  104. }

Mod: Al publicar código usa las etiquetas GeSHi


Título: Re: Consulta programa Cajero Automatico Dev c++
Publicado por: engel lex en 28 Febrero 2015, 19:50 pm
vamos por partes

1- no debes usar conio.h es contra recomendado
2- stdio.h no es necesario aquí

3- tu error es:
Código
  1. int clave, opcion, monto, saldo, v1, v2, v3;
luego
Código
  1. case '1':

para entender el error te recomiendo ejecutar este codigo
Código
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4.   int option= '1';
  5.   cout<<option<<endl;
  6.   return 0;
  7. }

4- goto Clave; No!!! D: el goto no debe usarse... solo en casos hiper específicos donde no hay otra opción (hasta ahora con 8 años programando no he visto ninguno y no creo haberlo usado nunca) D:! en tal caso escribe un while y listo...

Código
  1. while(clave != 123){
  2.   cout<<"Clave Erronea"<<endl;
  3. }
  4.  
y quitas el if... ese programa no va a salir de ahí sin 123

acabo de ver el otro goto... eso se resuelve con un while, cambias el if por un while y listo...


Título: Re: Consulta programa Cajero Automatico Dev c++
Publicado por: Gzeba en 28 Febrero 2015, 23:56 pm
Gracias Señor Engel;

Estoy analizando todo lo que me dijo.
La verdad que me cuesta horrores y el libro que tengo me recomienda lo que le dije y hice en las lineas subidas a la pagina. El curso que vi en internet en la pagina "con clase". Recomienda el GOTO. (Estoy leyendo ahora sobre el while)
Lei las recomendaciones que deja esta pagina y estoy analizándolo también.
Si fuese tan amable de recomendarme bibliografia para leer.

Desde ya le agradezco mucho por tomarse las molestias en responder.


Título: Re: Consulta programa Cajero Automatico Dev c++
Publicado por: engel lex en 1 Marzo 2015, 00:09 am
realmente recomendaciones para leer no, no tengo... si no es para la universidad, te recomiendo que si puedas uses un IDE y compilador más "avanzado" que dev c++, como puede ser Netbeans o code::block como IDE y mingw como compilador (buscas en internet "como instalar newbeans con mingw" y está todo) ya que estos IDEs prestan un soporte mayor, ayudan a escribir y mantener el codigo con mayor facilidad, a debuggear cómodamente, etc... (sin contar que se puede usar un mismos compilador para varios lenguajes (no mezclados) cosa que ayuda porque no tienes que adaptarte a otros IDEs)


Título: Re: Consulta programa Cajero Automatico Dev c++
Publicado por: Gzeba en 1 Marzo 2015, 00:28 am
Estoy terminando de estudiar ingenieria electromecanica. De esto nada (programacion). Estoy cultivandome para realizar unos proyectos.

Voy a cambiar de programa como recomiendas.

Te lo agradezco mucho.