Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: DRANXZ88 en 21 de Junio 2016, 19:33

Título: Obtener la letra del DNI a partir del número Ejercicios java avanzado CU00904C
Publicado por: DRANXZ88 en 21 de Junio 2016, 19:33
Clase principal main

Código: [Seleccionar]
package ejercicioscuoo904c;

public class EjerciciosCuoo904c {

    public static void main(String[] args) {
        Documento numero = new Documento();
        EntradaDeTeclado entrada = new EntradaDeTeclado();
        System.out.println("Agregar el numero de DNI:");
        entrada.Agregar();
        int numeroDNI = Integer.parseInt(entrada.getEntrada());
        numero.obtenerLetra(numeroDNI);
    }

}


Clase entrada del teclado

Código: [Seleccionar]
package ejercicioscuoo904c;

import java.util.Scanner;

public class EntradaDeTeclado {

    private String entradaTeclado;
    Scanner sc = new Scanner(System.in);

    public EntradaDeTeclado() {
        entradaTeclado = "";
    }

    public String Agregar() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

    public String getEntrada() {
        return entradaTeclado;
    }

}


Clase documento para obtener la letra del DNI

Código: [Seleccionar]
package ejercicioscuoo904c;

public class Documento {

    private String[] letra = {"T", "R", "W", "A", "G", "M", "Y", "F", "P", "D", "X", "B", "N", "J", "Z", "S", "Q", "V", "H", "L", "C", "K", "E"};

    public Documento() {
    }

    public void obtenerLetra(int numeroDNI) {
        int resto;
        String letraDni;
        resto = Math.round(numeroDNI % 23);
        letraDni = letra[resto];

        System.out.println("El numero de su Documento Nacional de Identidad (DNI) es: " + numeroDNI + "" + letraDni);
    }
}
Título: Re:Ejercicios de java avanzado I CU00904C
Publicado por: ESOJ en 24 de Junio 2016, 08:48
Hola.

En líneas generales veo tu código correcto.

Lo que si cambiaría es el método Agregar de la clase EntradaTeclado.Tal y como lo has planteado es una mezcla de getter y setter ya que estableces el valor y lo devuelve.

Yo lo convertiría simplemente en un setter:

Código: [Seleccionar]
public void setAgregar() {
        entradaTeclado = sc.nextLine();     


Recuerda cambiar en la clase principal la linea:
entrada.Agregar();

por

entrada.setAgregar();

Un saludo