Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Verificacion de acceso

Clase Acceso:

public class AccesoVerificacion {
   private int codigoDeAcceso = 2023;
   private int entradaCodigo;
   private String [] permisos = {"1","2","3"};
   private  String entradaPermiso;
   private boolean accesoCodigo;
   private boolean accesoPermiso;

   public void setEntradaCodigo(int entradaCodigo) {
       this.entradaCodigo = entradaCodigo;
       this.accesoCodigo = codigoDeAcceso == this.entradaCodigo;
   }

   public void setEntradaPermiso(String entradaPermiso) {
       this.entradaPermiso = entradaPermiso;
       this.accesoPermiso = Arrays.stream(permisos).anyMatch(this.entradaPermiso::equals);
   }


   public void acceso(){
       if(accesoCodigo && accesoPermiso){
           System.out.println("Acceso permitido. !Bienvendio al sistema!");
       } else{
           System.out.println("ACCESO DENEGADO.");
           if (!accesoCodigo && accesoPermiso){
               System.out.println("    - Código de Acceso incorrecto.");
           } else if (!accesoPermiso && accesoCodigo) {
               System.out.println("    - Nivel de Permiso inválido.");
           } else {
               System.out.println("    - Incorrectos el 'Código de Acceso' y el 'Nivel de Permiso'.");
           }
       }
   }
}

Clase Main:

public class Principal {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);

        AccesoVerificacion sistema = new AccesoVerificacion();
        System.out.println("Ingresa el código de sistema:");
        sistema.setEntradaCodigo(teclado.nextInt());
        System.out.println("Ingresa el nivel de permiso:");
        sistema.setEntradaPermiso(teclado.next());
        sistema.acceso();
    }
}
1 respuesta

¡Hola Aldo, espero que estés bien!

Tu código parece estar en el camino correcto para lograr lo que se pide en el ejercicio. Sin embargo, hay un pequeño detalle que podrías ajustar para que funcione perfectamente según la descripción del ejercicio. El problema está en cómo estás manejando el nivel de permiso. Según el contexto del ejercicio, los niveles de permiso son numéricos (1, 2 o 3), pero en tu código, los estás manejando como cadenas de texto.

Aquí tienes una sugerencia para ajustar tu código:

  1. Cambia el tipo de dato del array permisos de String[] a int[] para que coincida con los niveles de permiso numéricos.
  2. Modifica el método setEntradaPermiso para que acepte un int en lugar de un String.

Espero que estos ajustes te ayuden a resolver el problema. ¡Espero haber ayudado y buenos estudios!