Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
#include <iostream>
#include <stdio.h>
#include <conio.h>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {

int clave, opcion, monto, saldo, v1, v2, v3;
cout<<"Este Programa muestra el funcionamiento basico de un cajero\n\n\n"<<endl;
Clave:
cout<<"Ingrese clave\n\n";
cin>>clave;

Menu:

if (clave == 123)
{
Opciones:
cout<<"\n\nBIENVENIDO SR GONZALEZ.\n\n"<<endl;
cout<<"Seleccion la operacion a realizar\n\n";
cout<<"\n1 - Retirar dinero\n";
cout<<"\n2 - Consultar Saldo\n";
cout<<"\nINSERTE OPCION DESEADA: ";
cin>>opcion;
switch (opcion)
{
case '1':
cout<<"Ingrese La cantidad a retirar: $";
cin>>monto;
if (monto<1000)
{
cout<<"Usted va a extraer $"<<monto;
cout<<"\n";
cout<<"1 - Si     2 - No\n\n"<<endl;
cout<<"Que desea Hacer: ";
cin>>v1;
switch (v1)
{
case '1':
       cout<<"Usted ha Retirado $"<<monto<<endl;
cout<<"\n";
cout<<"Desea realizar otra operacion?\n\n";
cout<<"1 - Si     2 - No\n\n"<<endl;
              cin>>v2;
switch (v2)
{
Casov1:
case '1': goto Opciones;
break;
case '2': cout<<"muchas gracias!!"<<endl;
break;
default: cout<<"Opcion no valida!!"<<endl;
goto Casov1;
}
break;
case '2':
Casov2:
cout<<"Desea realizar otra operacion?\n\n";
cout<<"1 - Si     2 - No\n\n"<<endl;
cin>>v3;
switch (v3)
{
        case '1': goto Opciones;
break;
case '2': cout<<"Muchas Gracias por usar nuestros servicios!!\n\n"<<endl;
break;
default: cout<<"Error: La Opcion ingresada no es Valida";
goto Casov2;
}

break;

        default:
cout<<"Opcion Ingresa no Valida";
goto Opciones;
}
}
else
{
cout<<"No posee saldo para esta operacion;";
goto Opciones;
}
break;

case '2':
cout<<"Su saldo es: $"<<monto<<endl;
goto Opciones;
break;

default: cout<<"error!!";

}

}
else
{
cout<<"Clave Erronea"<<endl;
goto Clave;
}

return 0;
}


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 (cpp) [Seleccionar]
int clave, opcion, monto, saldo, v1, v2, v3;
luego
Código (cpp) [Seleccionar]
case '1':

para entender el error te recomiendo ejecutar este codigo
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int main() {
  int option= '1';
  cout<<option<<endl;
  return 0;
}


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 (cpp) [Seleccionar]
while(clave != 123){
  cout<<"Clave Erronea"<<endl;
}

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.