Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío Cuenta bancaria

import java.util.Scanner;

public class CuentaBancaria {
    public static void main(String[] args) {

        String nombreCliente = "Tony Stark";
        String tipoCuenta = "Corriente";
        String tipoMoneda = "S/";
        double saldoDisponible = 2000.8585;
        int opcion;
        String error = "";

        Scanner teclado = new Scanner(System.in);
        System.out.println("\n***** DESAFIO ALURA *****");
        System.out.println("***********DATOS DEL CLIENTE*******************");
        System.out.println(String.format("Nombre del cliente: %s", nombreCliente));
        System.out.println(String.format("Tipo de cuenta: %s", tipoCuenta));
        System.out.println(String.format("Saldo disponible: %s %.2f", tipoMoneda, saldoDisponible));
        System.out.println("\n");
        do {
            System.out.println("""
                    ***********OPCIONES DE CUENTA*******************
                    ** ESCRIBA EL NUMERO DE LA OPCION DESEADA **
                    1 - Consultar Saldo
                    2 - Retirar
                    3 - Depositar
                    9 - Salir
                    """ + error);

            opcion = teclado.nextInt();

            switch (opcion) {
                case 1:
                    System.out.println(String.format("Su saldo disponible es: %s %.2f", tipoMoneda, saldoDisponible));
                    error = "";
                    break;
                case 2:
                    System.out.println("Por favor ingrese el monto a retirar");
                    double montoRetira = teclado.nextDouble();
                    double saldo = CuentaBancaria.Retirar(saldoDisponible, montoRetira);

                    if (saldo == 0){
                        System.out.println("El monto ingresado supera al saldo actual");
                    }else {
                        saldoDisponible = saldo;
                    }

                    error = "";
                    break;
                case 3:
                    System.out.println("Por favor ingrese el monto a depositar");
                    double montoDepositar = teclado.nextDouble();
                    saldoDisponible = CuentaBancaria.Depositar(saldoDisponible, montoDepositar);
                    error = "";
                    break;
                default:
                    error = "Por favor ingrese una opción valida";
                    break;
            }

            if (opcion == 9) {
                System.out.println("Gracias por usar nuestro sistema");
            }

        } while (opcion != 9);

    }

    public static double Retirar(double saldoDisponible, double montoRetiro) {

        if (montoRetiro>saldoDisponible){
            return 0;
        }

        saldoDisponible -= montoRetiro;
        return saldoDisponible;
    }

    public static double Depositar(double saldoDisponible, double montoDepositar) {
        saldoDisponible += montoDepositar;
        return saldoDisponible;
    }

}
1 respuesta

Hola Juan, espero que estés bien

¡Espero que estés disfrutando del curso! He revisado tu código para el desafío de la Cuenta Bancaria y parece que estás en el camino correcto. Sin embargo, he notado un pequeño detalle que podría estar causando problemas. En tu método Retirar, cuando el monto a retirar es mayor que el saldo disponible, estás retornando 0, lo cual puede ser confuso porque el saldo no debería cambiar en ese caso. Una mejor práctica sería retornar el saldo disponible sin cambios. Aquí tienes cómo podrías ajustar ese método:

public static double Retirar(double saldoDisponible, double montoRetiro) {
    if (montoRetiro > saldoDisponible) {
        System.out.println("El monto ingresado supera al saldo actual");
        return saldoDisponible; // Retorna el saldo actual sin cambios
    }

    saldoDisponible -= montoRetiro;
    return saldoDisponible;
}

Además, asegúrate de que el usuario vea un mensaje claro cuando intenta retirar más de lo que tiene en su cuenta, lo cual ya estás haciendo bien con el System.out.println.

Espero que estos ajustes te ayuden a mejorar tu aplicación bancaria. ¡Sigue practicando y experimentando con el código!

Espero haber ayudado y buenos estudios!