Autor Tema: arrays (arreglos) unidimensionales en Java. Calcular letra DNI ejemplo CU00904C  (Leído 2003 veces)

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
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);
    }
}
« Última modificación: 13 de Junio 2020, 19:59 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".