Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: DRANXZ88 en 14 de Agosto 2019, 19:57

Título: arrays (arreglos) unidimensionales en Java. Calcular letra DNI ejemplo CU00904C
Publicado por: DRANXZ88 en 14 de Agosto 2019, 19:57
Respuesta que se plantea al ejercicio CU00904C del curso avanzado de programación Java de aprenderaprogramar.


Clase EntradaDeTeclado

Se encarga de gestionar los ingresado por el usuario por el teclado.

Código: [Seleccionar]
package registrardocumento;

import java.util.Scanner;

public class EntradaDeTeclado {

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

    public EntradaDeTeclado() {
        entradaTeclado = "";
    }

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

}


clase Dni

Se encarga de obtener la letra que corresponde dependiendo del numero que le pasa el usuario.

Código: [Seleccionar]
package registrardocumento;

public class Dni {

    private final 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 String obtenerLetra(int numeroDNI) {
        int resultado;
        String letradni;
        resultado = numeroDNI % 23;
        letradni = letra[resultado];
        return letradni;
    }
}


Clase principal main

Donde se ejecuta el programa.

Código: [Seleccionar]
package registrardocumento;

public class RegistrarDocumento {

    public static void main(String[] args) {
        EntradaDeTeclado teclado = new EntradaDeTeclado();
        Dni dni = new Dni();
        System.out.println("Ingrese numero: ");
        teclado.setEntrada();
        String numeroDni = teclado.getEntrada();
        String letra = dni.obtenerLetra(Integer.valueOf(numeroDni));
        System.out.println("El numero de DNI asignado es: " + numeroDni + letra);
    }
}
Título: Re:arrays (arreglos) unidimensionales en Java. Calcular letra DNI ejemplo CU00904C
Publicado por: Ogramar en 13 de Junio 2020, 19:59
Buenas, para quien revise este ejercicio, cumple con lo que se pedía y funciona correctamente.

Hay un detalle que no me gusta. Se incluye un método

Código: [Seleccionar]
    public String setEntrada() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

Los métodos set, por convención, no llevan return. Por tanto este nombre de método no es correcto de acuerdo con la convención que se suele seguir en programación Java.

Otra cosa la clase Dni por su nombre parece representar un Dni, pero no contiene el atributo numeroDNI. Posiblemente hubiera sido preferible nombrarla como calculadoraLetraDNI para que el nombre describiera mejor sus responsabilidades.

De resto todo bien, y bien planteada la distribución en varias clases para distribuir las responsabilidades.

Salu2