Siguiendo con los ejercicios de programación en C++ vamos a ver la solución a otro de ellos. En este caso se trata de simular un cajero automático de manera muy simple. El ejercicio dice así:
Realice un programa en C++ el cual simule todas las transacciones que realiza un cajero automático. El mismo debe desplegar el menú, indicar cuando la clave es incorrecta y enviar el mensaje cuando no hay suficientes fondos.
Comenzamos solicitando la clave y comprobando si la misma es correcta. Para ello definimos la clave de acceso correcta en el código, solicitamos al usuario la clave y comparamos.
// La clave correcta
const string claveCorrecta = "1234";
cout << "Bienvenido al cajero automático\n";
cout << "Ingrese la clave: ";
string clave = "";
cin >> clave;
if (clave != claveCorrecta)
{
cout << "Clave incorrecta";
// Con return detenemos la ejecución del programa
return 0;
}
// Si llegamos hasta aquí, podemos estar seguros de que el usuario introdujo la clave correcta
cout << "Clave correcta\nBienvenido\n";
Como puedes ver, en caso de que la clave no sea correcta, detenemos la ejecución del programa. Obviamente puedes cambiar la clave.
Ahora pasemos al menú. Solo tendremos la opción de retirar, en donde vamos a comprobar los fondos, pero primero vamos a centrarnos en el menú.
El programa se detiene cuando el usuario elija salir.
string eleccion = "";
// Menú
while (eleccion != "2")
{
// Mostrar fondos
cout << "Fondos disponibles: " << fondos << endl;
// Imprimir menú
cout << "1. Retirar dinero\n2. Salir\nSeleccione: ";
}
Ya dentro del menú si el usuario elige retirar, hacemos lo que se ve a continuación.
Comenzamos con unos fondos simulados. En este caso lo he dejado en 5000
, quedando así:
// Más arriba...
double fondos = 5000; // Simular fondos
//...
if (eleccion == "1")
{
// Solicitar cuánto se retira
double retiro;
cout << "Ingrese cantidad a retirar: " << endl;
cin >> retiro;
// Comprobar si puede retirar
if (retiro > fondos || retiro <= 0)
{
cout << "No puede retirar esa cantidad";
}
else
{
// En caso de que sí pueda retirar
cout << "OK. Ha retirado " << retiro << endl;
// Restamos los fondos existentes
fondos = fondos - retiro;
// Y el ciclo sigue...
}
}
Verificamos si la cantidad es correcta. El usuario no puede retirar una cantidad de 0 o una que sobrepase lo que tiene en su cuenta.
En caso de que todo vaya bien, restamos el retiro de los fondos y volvemos a presentarle el menú en caso de que quiera volver a retirar.
Llegó el momento de ver el código completo. Queda así:
/*
https://parzibyte.me/blog
*/#include <iostream>
using namespace std;
int main()
{
// La clave correcta
const string claveCorrecta = "1234";
cout << "Bienvenido al cajero automático\n";
cout << "Ingrese la clave: ";
string clave = "";
cin >> clave;
if (clave != claveCorrecta)
{
cout << "Clave incorrecta";
// Con return detenemos la ejecución del programa
return 0;
}
// Si llegamos hasta aquí, podemos estar seguros de que el usuario introdujo la clave correcta
cout << "Clave correcta\nBienvenido\n";
double fondos = 5000; // Simular fondos
string eleccion = "";
// Menú
while (eleccion != "2")
{
// Mostrar fondos
cout << "Fondos disponibles: " << fondos << endl;
// Imprimir menú
cout << "1. Retirar dinero\n2. Salir\nSeleccione: ";
cin >> eleccion;
if (eleccion == "1")
{
// Solicitar cuánto se retira
double retiro;
cout << "Ingrese cantidad a retirar: " << endl;
cin >> retiro;
// Comprobar si puede retirar
if (retiro > fondos || retiro <= 0)
{
cout << "No puede retirar esa cantidad";
}
else
{
// En caso de que sí pueda retirar
cout << "OK. Ha retirado " << retiro << endl;
// Restamos los fondos existentes
fondos = fondos - retiro;
// Y el ciclo sigue...
}
}
}
return 0;
}
Al momento de compilarlo, ejecutarlo y probarlo los resultados son correctos:
En caso de que el post te haya gustado te invito a leer más sobre C++.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.