lunes, 2 de febrero de 2015

Cuenta corriente (ejercicio 83) sin análisis de excepciones

package ejercicio83;

/**
 *
 * @author juan
 */
public class CuentaCorriente {

    private String Nombre;
    private String Apellidos;
    private String Direccion;
    private String Telefono;
    private String Nif;
    private double Saldo;

    public CuentaCorriente() {
        Nombre = "";
    }

    private boolean esDigito(String cadena) {
        boolean retorno = true;
        for (int i = 0; i < cadena.length(); i++) {
            if (!Character.isDigit(cadena.charAt(i))) {
                return false;
            }
        }
        return retorno;
    }



    public boolean comprobarNIF() {
        boolean retorno = true;
        String numeroNIF;

        char letraNIF, letraCalculada;
       
        if (Nif != null && Nif.length()==9) {
            numeroNIF = Nif.substring(0, Nif.length() - 1);
            letraNIF = Nif.charAt(Nif.length() - 1);
            letraCalculada = this.calcularNif(numeroNIF);

            if (letraNIF == letraCalculada && letraCalculada != 'Ñ') {
                retorno = true;
            } else {
                retorno = false;
            }
        } else {
            retorno = false;
        }
        return retorno;
    }

    public char calcularNif(String dni) {
        char letra = 'Ñ';
        int numDni, resto;
        String letrasDNI = "TRWAGMYFPDXBNJZSQVHLCKE";

        if (esDigito(dni)) {
            numDni = Integer.parseInt(dni);
            resto = numDni % 23;

            letra = letrasDNI.charAt(resto);
        }

        return letra;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }

    public String getApellidos() {
        return Apellidos;
    }

    public void setApellidos(String Apellidos) {
        this.Apellidos = Apellidos;
    }

    public String getDireccion() {
        return Direccion;
    }

    public void setDireccion(String Direccion) {
        this.Direccion = Direccion;
    }

    public String getTelefono() {
        return Telefono;
    }

    public void setTelefono(String Telefono) {
        this.Telefono = Telefono;
    }

    public String getNif() {
        return Nif;
    }

    public void setNif(String Nif) {
        this.Nif = Nif;
    }

    public double getSaldo() {
        return Saldo;
    }

    public void setSaldo(double Saldo) {
        this.Saldo = Saldo;
    }

    /**
     *
     * @param Nombre
     * @param Apellidos
     * @param Direccion
     * @param Telefono
     * @param Nif
     * @param Saldo
     */
    public CuentaCorriente(String Nombre, String Apellidos, String Direccion, String Telefono, String Nif, double Saldo) {
        this.Nombre = Nombre;
        this.Apellidos = Apellidos;
        this.Direccion = Direccion;
        this.Telefono = Telefono;
        this.Nif = Nif;
        this.Saldo = Saldo;
    }

    public void sacarDinero(double cantidad) {
        Saldo -= cantidad;
    }

    public void ingresarDinero(double cantidad) {
        this.Saldo += cantidad;
    }

    public void consultarCuenta() {
        System.out.println("_____________________");
        System.out.println("Nombre: " + Nombre);
        System.out.println(this.Apellidos);
        System.out.println(this.Direccion);
        System.out.println(this.Telefono);
        System.out.println(this.Nif);
        System.out.println("Saldo: " + Saldo);
        System.out.println("=====================");

    }

    public boolean saldoNegativo() {
        if (Saldo < 0) {
            return true;
        } else {
            return false;
        }
        /**
         * booelan retorno= false;
         *
         * if (Saldo<0 p="" retorno="" return="">         */

    }
}


public class Ejercicio83 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        CuentaCorriente miCuenta,otraCuenta;
        
        miCuenta= new CuentaCorriente("pepito","pérez","mi calle","988","44545454C",100000);
        otraCuenta = new CuentaCorriente();
        
        otraCuenta.setSaldo(100);
        otraCuenta.sacarDinero(300);
        
        miCuenta.consultarCuenta();
        otraCuenta.consultarCuenta();
       //System.out.println(miCuenta.calcularNif("44545454"));
        if (otraCuenta.comprobarNIF()) System.out.println("nif correcto");
        else System.out.println("nif incorrecto");
        
    
    }
    
}