Simulando cajero automático en C++

C++ | Simulador de cajero automático

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.

La clave o NIP

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.

Menú del cajero automático en C++

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.

Retirar del cajero

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.

Poniendo todo junto

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:

Simulando cajero automático en C++
Simulando cajero automático en C++

En caso de que el post te haya gustado te invito a leer más sobre C++.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *