Solución: Semana 1: Evidencia: Clases y objetos - Parte I

Solución: En un banco se manejan cuentas bancarias que pertenecen a un cliente; cada vez que éste realiza un depósito o retiro, debe dar su número de usuario para poder realizar ambas operaciones, claro  que en el caso de un retiro, es necesario mostrar alguna identificación la cual compruebe que él es el poseedor de la cuenta, y si hay dinero suficiente en ésta, dicha operación se realiza. El banco tiene una serie de empleados con una identificación para cobrar su sueldo; es importante manejar los años que llevan trabajando, pues de esto dependen sus vacaciones (se dan cinco días por el primer año y se aumentan dos días por cada año cumplido hasta llegar al máximo que son 20 días), un empleado del banco puede ser cajero, supervisor, recepcionista, en fin, existen una serie de puestos que se deben cubrir para que esta entidad funcione satisfactoriamente.

El banco tiene contacto con algunas empresas con las que sus clientes pueden tener inversiones, manejando diferentes niveles de riesgo. El banco identifica una clave de casa inversionista, de hecho es muy importante la confiabilidad de ésta teniendo en cuenta su historial, los porcentajes de retorno de inversión, los montos de las inversiones y los plazos, esto para poder ofrecerle al usuario una gama de inversiones que puedan realizarse por medio de la entidad financiera.

Tenga en cuenta utilizar al menos una variable y un método de clase para cada una de las clases definidas.

Solución:


import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        boolean eleccionCorrecta = true;
        int operacion;
        Scanner reader = new Scanner(System.in);
        double inicial;
        double totalCuenta;

        while (eleccionCorrecta) {
            eleccionCorrecta = false;
            System.out.print("Que operacion desea realizar \n");
            System.out.print("Elija \n 1. Transacciones con clientes. \n 2. Calcular dias de vacaciones \n");
            operacion = reader.nextInt();

            //Operacion
            switch (operacion) {
                case 1:
                    // Crear la cuenta
                    eleccionCorrecta = true;
                    Cuenta Cuenta1;
                    Cuenta1 = new Cuenta(0, "", "", 0, 0);
                    System.out.print("Cedula cliente: ");
                    int cedula = reader.nextInt();
                    Cuenta1.setCedula(cedula);
                    System.out.print("Nombres cliente: ");
                    String nombres = reader.next();
                    Cuenta1.setNombres(nombres);
                    System.out.print("Nombres Apellidos: ");
                    String apellidos = reader.next();
                    Cuenta1.setNombres(apellidos);
                    System.out.print("Numero de cuenta: ");
                    int numero = reader.nextInt();
                    Cuenta1.setNumeroCliente(numero);
                    System.out.print("Cantidad inicial: ");
                    inicial = reader.nextInt();
                    Cuenta1.setInicial(inicial);

                    while (eleccionCorrecta) {
                        eleccionCorrecta = false;
                        System.out.print("Que operacion desea realizar \n");
                        System.out.print("Elija \n 1. Para deposito. \n 2. Para retiro \n");
                        operacion = reader.nextInt();

                        //Operacion
                        switch (operacion) {
                            // declaracion case
                            // los valores deben ser del mismo tipo de la expresion
                            case 1:
                                // hacemos un ingreso en la cuenta
                                System.out.print("Cantidad depositar: ");
                                double deposito = reader.nextDouble();
                                Cuenta1.deposito(deposito);
                                break; // break es opcional

                            case 2:
                                // hacemos un ingreso en la cuenta
                                System.out.print("Cantidad a retirar: ");
                                double retiro = reader.nextDouble();
                                System.out.print("Ingrese su cedula: ");
                                int c = reader.nextInt();
                                Cuenta1.retiro(retiro, c);
                                break; // break es opcional

                            default:
                                System.out.print("Elija una opcion valida \n");
                                eleccionCorrecta = true;
                        }

                        System.out.println("-------------------------------------------------");
                        // Consultamos el saldo de nuevo
                        totalCuenta = Cuenta1.saldo();
                        System.out.println("Total actual en la cuenta: " + totalCuenta + " pesos");
                    }
                    break;
                case 2:
                    //Crear el empleado
                    Empleado Empleado1;
                    Empleado1 = new Empleado(0, "0", "0", 0, "");
                    System.out.print("Nombres empleado: ");
                    nombres = reader.next();
                    Empleado1.setNombres(nombres);
                    System.out.print("Apellidos empleado: ");
                    apellidos = reader.next();
                    Empleado1.setApellidos(apellidos);
                    System.out.print("Cedula del empleado: ");
                    cedula = reader.nextInt();
                    Empleado1.setCedula(cedula);
                    System.out.print("Cargo: ");
                    String cargo = reader.next();
                    Empleado1.setCargo(cargo);
                    System.out.print("Años de antigüedad: ");
                    int antiguedad = reader.nextInt();
                    Empleado1.setAniosAntiguedadEmpleado(antiguedad);
                    Empleado1.diasVacaciones(Empleado1.getAniosAntiguedadEmpleado());

                    break;
                default:
                    System.out.print("Elija una opcion valida \n");
                    eleccionCorrecta = true;
            }

        }
        reader.close();
    }
}
public class Cliente extends Persona {

    private int numeroCliente;

    public Cliente(int cedula, String nombres, String apellidos, int numero) {
        super(nombres, apellidos, cedula);
        numeroCliente = numero;
    }

    public boolean Identificacion(int c) {
        if (cedula == c) {
            return true;
        } else {
            return false;
        }
    }

    public void setNumeroCliente(int n) {
        numeroCliente = n;
    }

    public int getNumeroCliente() {
        return numeroCliente;
    }
}
public class Cuenta extends Cliente {

    private int numeroCuenta;
    private double saldo;

    public Cuenta(int cedula, String nombres, String apellidos, int numero, double inicial) {
        super(cedula, nombres, apellidos, numero);
        saldo = inicial;
    }

    public void deposito(double cantidad) {
        saldo = saldo + cantidad;
        System.out.println("Se depositan en la cuenta: " + cantidad + " pesos");
    }

    public void retiro(double cantidad, int c) {
        if (Identificacion(c)) {
            if (puedoSacar(cantidad)) {
                saldo = saldo - cantidad;
                System.out.println("Se retiran de la cuenta " + cantidad + " pesos");
            } else {

                System.out.println("Su saldo es insuficiente para ese retiro");
            }
        } else {
            System.out.println("Usted no es cliente, no puede hacer el retiro");
        }
    }

    public boolean puedoSacar(double cantidad) {
        return cantidad <= saldo;
    }

    public double saldo() {
        return saldo;
    }

    public int getNumeroCuenta() {
        return numeroCuenta;
    }

    public void setNumeroCuenta(int numero) {
        numeroCuenta = numero;
    }

    public void setInicial(double inicial) {
        saldo = inicial;
    }
}
import java.util.Arrays;

public class Empleado extends Persona {

    // instance variables - replace the example below with your own
    private int aniosAntiguedadEmpleado;
    public String cargoEmpleado;
    private int diasVacacionesEmpleado;
    private String[] arrayCargos = {"cajero", "supervisor", "recepcionista"};

    public Empleado(int cedula, String nombres, String apellidos, int antiguedad, String cargo) {
        super(nombres, apellidos, cedula);
        aniosAntiguedadEmpleado = antiguedad;
        cargoEmpleado = cargo;
    }

    public int getAniosAntiguedadEmpleado() {
        return aniosAntiguedadEmpleado;
    }

    public void diasVacaciones(int antiguedad) {
        diasVacacionesEmpleado = 0;
        aniosAntiguedadEmpleado = antiguedad;
        if (aniosAntiguedadEmpleado <= 1) {
            diasVacacionesEmpleado = 0;
        } else if (aniosAntiguedadEmpleado == 1) {
            diasVacacionesEmpleado = 5;
        } else if (aniosAntiguedadEmpleado <= 8) {
            diasVacacionesEmpleado = (aniosAntiguedadEmpleado - 1) * 2 + 5;
        } else {
            diasVacacionesEmpleado = 20;
        }
        //return diasVacacionesEmpleado;
        System.out.println("El empleado " + nombres + " " + apellidos + " tiene " + diasVacacionesEmpleado + " dias de vacaciones");
    }

    public void setCargo(String cargo) {
        if (validarCargo(cargo)) {
            cargoEmpleado = cargo;
        } else {
            System.out.println("Ese no es un cargo valido");
        }
    }

    public String getCargo() {
        return cargoEmpleado;
    }

    public void setAniosAntiguedadEmpleado(int antiguedad) {
        aniosAntiguedadEmpleado = antiguedad;
    }

    public boolean validarCargo(String cargo) {
        return Arrays.asList(arrayCargos).contains(cargo);
    }
}

public class Inversionista {

    private String claveInversionista;
    private String historialInversionista;
    private double porcentajeRetornoInversion;
    private double montoInversion;
    private int plazoInversion;

    public Inversionista(String clave, String historial, double porcentaje, double monto, int plazo) {
        claveInversionista = clave;
        historialInversionista = historial;
        porcentajeRetornoInversion = porcentaje;
        montoInversion = monto;
        plazoInversion = plazo;
    }

    public String getHistorial() {
        return historialInversionista;
    }

    public void setHistorial(String historial) {
        historialInversionista = historial;
    }

    public Double getMontoInversion() {
        return montoInversion;
    }

    public void setMontoInversion(Double monto) {
        montoInversion = monto;
    }

    public int getPlazoInversion() {
        return plazoInversion;
    }

    public void setPlazoInversion(int plazo) {
        plazoInversion = plazo;
    }

    public Double getPorcentajeRetornoInversion() {
        return porcentajeRetornoInversion;
    }

    public void setPorcentajeRetornoInversion(double porcentaje) {
        porcentajeRetornoInversion = porcentaje;
    }

    public void setPlazo(int plazo) {
        plazoInversion = plazo;
    }

    public void setClaveInversionista(String clave) {
        claveInversionista=clave;
    }

    public String getClaveInversionista() {
        return claveInversionista;
    }
}

public class Persona {

    String nombres;
    String apellidos;
    int cedula;

    public Persona(String n, String a, int c) {
        nombres = n;
        apellidos = a;
        cedula = c;
    }

    public void setNombres(String n) {
        nombres = n;
    }

    public void setApellidos(String a) {
        apellidos = a;
    }

    public void setCedula(int c) {
        cedula = c;
    }

    public String getNombres() {
        return nombres;
    }

    public String getApellidos() {
        return apellidos;
    }

    public int getCedula() {
        return cedula;
    }
}

0 comments :

Publicar un comentario