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

[Proyecto] Mi solucion

Me gustaria que me pudieran a decirme que tal esta el codigo y que mas podemos trabajar para seguir con todo

`
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner Sc = new Scanner(System.in);
double saldo = 0;
int opcionMenu = 0;

    System.out.println("****************");
    System.out.println("Bienvenidos al Banco bogota de colombia");
    System.out.println("Te invitamos a que te registres con nosotros :)");
    System.out.println("Ingresa  tu nombre y apellido");
    String nombre = Sc.nextLine();

   // tipo de cuenta
    System.out.println("seleccione el tipo de cuenta");
    System.out.println("1. Corriente");
    System.out.println("2. Ahorros");
    System.out.println("3. Nómina");

    int tipoCuenta = Sc.nextInt();
    String cuentaSeleccionada = "";

    switch (tipoCuenta){
        case 1:
            cuentaSeleccionada = "Corriente";
            break;

        case 2:
            cuentaSeleccionada = "Ahorros";
            break;

        case 3:
            cuentaSeleccionada = "Nomina";
            break;
    }

    System.out.println("Exelente, ahora deposita una cantidad de 5.000$ COL, para estar listos");
     //deposito inicial
    while (saldo<5000){
        saldo = Sc.nextDouble();

        if (saldo < 5000){
            System.out.println("El depósito inicial debe ser mínimo de 5.000$ COL. Intenta nuevamente.");
        }
    }

    // Registro con exito
    System.out.println("\nRegistro exitoso!");
    System.out.println("Nombre: " + nombre);
    System.out.println("Tipo de cuenta: " + cuentaSeleccionada);
    System.out.println("Saldo inicial: $" + saldo + " COL");
    System.out.println("\n************************************");

    String menu = """
        *** Selecione el numero de la opcion deseada ***
        1 - Consultar
        2 - Depositar 
        3 - Retirar
        9 - Salir
        """;

    while (opcionMenu != 9) {
        System.out.println(menu);
        opcionMenu = Sc.nextInt();

        switch (opcionMenu) {

            case 1:
                // Consultar
                System.out.println("Actualmente el saldo de su cuenta es de: " + saldo + " $ Col");
                break;

            case 2:
                // Depositar
                double valorDepositar;
                do {
                    System.out.println("¿Cuál es el valor que desea depositar? (mínimo 5000 $ Col)");
                    valorDepositar = Sc.nextDouble();

                    if (valorDepositar < 5000) {
                        System.out.println("El valor mínimo para depositar es 5000 $ Col. Por favor intente de nuevo.");
                    }
                } while (valorDepositar < 5000); // Repite hasta que el valor sea válido

                saldo = saldo + valorDepositar;
                System.out.println("Depósito exitoso. Su nuevo saldo es: " + saldo + " $ Col");
                break;


            case 3:
                // Retirar
                double valorRetirar;

                do {
                    System.out.println("¿Cuál es el valor que desea retirar?");
                    valorRetirar = Sc.nextDouble();

                    if (valorRetirar > saldo) {
                        System.out.println("Saldo insuficiente, por favor intente de nuevo.");
                    }
                } while (valorRetirar > saldo); // Repite hasta que el valor sea válido

                saldo = saldo - valorRetirar;
                System.out.println("Retiro exitoso. Su nuevo saldo es: " + saldo + " $ Col");
                break;

            case 9:
                System.out.println("Gracias por usar el sistema. ¡Hasta pronto!");
                break;

            default:
                System.out.println("Opción inválida, por favor intente de nuevo.");
        }
    }

}

}

`

1 respuesta

¡Hola Christian, espero que estés bien!

Tu código se ve bastante bien y parece que has cubierto las funcionalidades básicas de un sistema bancario simple. Aquí te dejo algunas sugerencias para mejorar y seguir trabajando en tu proyecto:

  1. Validación de Entrada: Actualmente, el programa asume que el usuario siempre ingresará datos válidos. Podrías mejorar la robustez del programa validando las entradas del usuario, especialmente para asegurarte de que los valores ingresados sean números cuando se espera.

  2. Uso de Constantes: Podrías definir las cantidades mínimas de depósito y retiro como constantes. Esto hace que el código sea más fácil de mantener y entender. Por ejemplo:

    final double DEPOSITO_MINIMO = 5000;
    
  3. Manejo de Excepciones: Considera manejar posibles excepciones, como InputMismatchException, que pueden ocurrir si el usuario ingresa un tipo de dato incorrecto.

  4. Comentarios y Legibilidad: Asegúrate de que los comentarios sean claros y útiles. También podrías mejorar la legibilidad del código usando nombres de variables más descriptivos.

  5. Modularización: Podrías dividir el código en métodos más pequeños para mejorar la organización y la legibilidad. Por ejemplo, podrías tener métodos separados para registrarUsuario, mostrarMenu, procesarDeposito, etc.

  6. Interfaz de Usuario: Considera mejorar la interfaz de usuario con mensajes más detallados o instrucciones claras para el usuario.

Aquí tienes un pequeño ejemplo de cómo podrías modularizar parte del código:

public static void registrarUsuario(Scanner sc) {
    System.out.println("Ingresa tu nombre y apellido");
    String nombre = sc.nextLine();
    // Resto del código de registro
}

public static void mostrarMenu() {
    System.out.println("*** Seleccione el número de la opción deseada ***");
    System.out.println("1 - Consultar");
    System.out.println("2 - Depositar");
    System.out.println("3 - Retirar");
    System.out.println("9 - Salir");
}

Espero que estas sugerencias te sean útiles para seguir mejorando tu proyecto. ¡Bons estudios!