Consulta programa Cajero Automatico Dev c++

Iniciado por Gzeba, 28 Febrero 2015, 19:39 PM

0 Miembros y 1 Visitante están viendo este tema.

Gzeba

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

engel lex

#1
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...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Gzeba

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.

engel lex

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)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Gzeba

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.