java

Java: ejercicio de solicitud de crédito con plazo e interés

Hoy vamos a resolver otro ejercicio de programación en Java. Se trata de un programa que simula la solicitud de crédito de un usuario solicitando el monto y el plazo (12, 24, 36 y 60 meses) así como el interés y el pago mensual.

Por otro lado, dentro del ejercicio vamos a solicitar los datos del cliente que los pide, por ejemplo el sueldo, nombre, género, etcétera.

Descripción del ejercicio

A continuación te dejo la descripción de este ejercicio de programación en Java:

  • Al iniciar el programa debe mostrar un menú con las opciones: “Solicitud” y “Crédito”. Las opciones pueden ser números o letras.
  • Si el usuario selecciona la opción “Crédito” sin haber hecho primero la opción “Solicitud”, debe mostrar el menú principal.
  • En la opción “Solicitud”, el programa debe solicitar los siguientes datos:
    • Nombre del cliente
    • Sexo
    • Edad
    • Sueldo mensual
  • El programa repetirá la solicitud del sueldo si este es menor o igual a $7000. En caso contrario, mostrará nuevamente el menú principal.
  • En la opción “Crédito”, solicitará un monto para el crédito, si y solo si la opción “Solicitud” ya fue realizada. En caso contrario, mostrará nuevamente el menú principal.
  • Posteriormente, mostrará un menú con las opciones: 12, 24, 36 y 60 meses. Las opciones pueden ser números o letras
  • Con base al tipo de plazo, se aplica un interés: 12 meses 25%, 24 meses 45%, 36 meses 60%, 60 meses 75%
  • El programa mostrará en pantalla la información recolectada y terminará su ejecución. Ejemplo:
    • Cliente: Juan Pérez Sexo: Hombre Edad: 45 Sueldo Mensual: 8500
    • Monto del crédito: $50000 Plazo: 24 meses Total: $72500
    • Pagos de: $3020.83
    • ¿Desea calcular otro monto? S/N
  • Si el usuario da la opción “S”, se mostrará el menú principal para realizar otra solicitud. Si el usuario da la opción “N”, termina el programa

Ahora veamos su solución.

Explicación del algoritmo

Todo va a estar dentro de un ciclo while que se va a romper solo cuando el usuario ya no quiera hacer solicitud de crédito. Además, vamos a tener una bandera que indicará si el usuario ha llenado la solicitud correctamente.

Después vamos a usar if para calcular el interés con operaciones simples.

Simulador de crédito en Java

Simulador de solicitud de crédito en Java

Es momento de pasar al código. Queda así:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // Bandera para saber si ha llenado la solicitud
        boolean haLlenadoSolicitud = false;
        // Variables de datos del cliente
        String nombre = "", sexo = "";
        int edad = 0;
        double sueldo = 0;
        // Saber si quiere hacer más solicitudes
        String masSolicitudes = "s";
        String eleccion = "";
        while (masSolicitudes.equalsIgnoreCase("s")) {
            System.out.println("1. Solicitud\n2. Crédito\nElige [1-2]: ");
            eleccion = sc.nextLine();
            if (eleccion.equals("1")) {
                System.out.println("Ingresa nombre: ");
                nombre = sc.nextLine();
                System.out.println("Ingresa edad: ");
                edad = sc.nextInt();
                // Consumir la línea sobrante que dejó "nextInt". Si no lo hacemos, el programa no espera para leer el sexo
                sc.nextLine();
                System.out.println("Ingresa sexo: ");
                sexo = sc.nextLine();
                while (sueldo <= 7000) {
                    System.out.println("Ingresa sueldo: ");
                    sueldo = sc.nextDouble();
                    // Consumir la línea sobrante que dejó "nextDouble"
                    sc.nextLine();
                }
                haLlenadoSolicitud = true;
            }
            if (eleccion.equals("2")) {
                if (haLlenadoSolicitud) {
                    double monto;
                    System.out.println("Ingresa el monto que solicitas: ");
                    monto = sc.nextDouble();
                    // Consumir la línea que dejó "nextDouble"
                    sc.nextLine();
                    System.out.println("1. 12 meses\n2. 24 meses\n3. 36 meses\n4. 60 meses\nElige [1-4]: ");
                    String plazo = sc.nextLine();
                    double porcentajeDeInteres = 0;
                    int meses = 0;
                    if (plazo.equals("1")) {
                        porcentajeDeInteres = 0.25;
                        meses = 12;
                    } else if (plazo.equals("2")) {
                        porcentajeDeInteres = 0.45;
                        meses = 24;
                    } else if (plazo.equals("3")) {
                        porcentajeDeInteres = 0.6;
                        meses = 36;
                    } else if (plazo.equals("4")) {
                        porcentajeDeInteres = 0.75;
                        meses = 60;
                    }
                    double interes = monto * porcentajeDeInteres;
                    double total = monto + interes;
                    double pagoMensual = total / meses;
                    System.out.println("Cliente: " + nombre);
                    System.out.println("Sexo: " + sexo + "\tEdad: " + String.valueOf(edad) + "\tSueldo Mensual: " + String.valueOf(sueldo));
                    System.out.println("Monto del crédito: $" + String.valueOf(monto) + "\tPlazo: " + String.valueOf(meses) + " meses");
                    System.out.printf("Total: $%.2f\n", total);
                    System.out.printf("Pagos de: $%.2f\n", pagoMensual);
                    System.out.println("¿Desea calcular otro monto? [S/N]");
                    masSolicitudes = sc.nextLine();
                } else {
                    System.out.println("No has llenado la solicitud");
                }
            }
        }
    }
}

Como puedes ver, la bandera que indica si la solicitud ha sido llenada está en la línea 8, y la cambiamos solo cuando el usuario introduce todos sus datos en la línea 34.

Luego en caso de que solicite un crédito se le pide el plazo y se hacen los cálculos en la línea 60 hasta la línea 62. La pregunta de volver a calcular otro monto se hace en la línea 68, y eso cambia la bandera del ciclo while en la línea 69 y 16.

Conclusión

Así terminamos este ejercicio de programación en Java. Como siempre te digo: eres libre de mejorarlo, adaptarlo o tomar las partes que necesites para tu proyecto.

Finalmente te dejo con más tutoriales y ejercicios resueltos de Java.

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.