Software en JAVA para revisar la Prision Permanente Revisable

Prision Permanente Revisable

Aunque la prision permanente revisable se basa una vez cumplida la condena en aspectos subjetivos deberíamos avanzar hacia elementos objetivos que permitiesen valorar si una persona esta o no capacitada para volver a convivir en sociedad.

Carlos CR como Software Engineer ha creado un programa en JAVA con dos clases (Recluso, Prision) para simular la prision permanente revisable.

Clase Recluso:

1. Atributos: La clase tiene cuatro atributos:
– nombre: el nombre del recluso.
– añosCondena: la cantidad de años a los que fue condenado.
– añosCumplidos: los años que ha pasado en prisión (inicialmente 0).
– libertadCondicional: un booleano que indica si el recluso ha obtenido libertad condicional (inicialmente false).

2. Constructor: El constructor de la clase inicializa el nombre y los años de condena, y establece los años cumplidos y la libertad condicional en sus valores iniciales.

3. Método cumplirAño(): Este método simula el paso de un año en prisión. Si el recluso no tiene libertad condicional, incrementa el contador de años cumplidos y llama al método revisarLibertadCondicional()para verificar si puede obtenerla.

4. Método revisarLibertadCondicional(): Este método verifica si el recluso ha cumplido suficientes años para ser considerado para la libertad condicional. Si ha cumplido su condena, utiliza un generador de números aleatorios para decidir si se le concede la libertad condicional o no.

5. Métodos de acceso: Hay métodos para obtener el nombre del recluso, los años cumplidos y los años de condena, así como un método que verifica si el recluso está libre.

En resumen, este código permite simular el tiempo que un recluso pasa en prisión y la posibilidad de que obtenga libertad condicional al cumplir su condena.

Clase Prision

1. Atributo:
– private List reclusos;es un atributo privado que almacena una lista de objetos de tipo Recluso. La lista se utilizará para gestionar a los reclusos dentro de la prisión.

2. Constructor:
– public Prision() { reclusos = new ArrayList<>(); }es el constructor de la clase. Cuando se crea una nueva instancia de Prision, se inicializa la lista reclusoscomo un nuevo ArrayList, lo que permite agregar reclusos a la lista.

3. Método para registrar reclusos:
– public void registrarRecluso(Recluso recluso)es un método que permite agregar un nuevo recluso a la lista. Cuando se registra un recluso, se imprime un mensaje confirmando que el recluso ha sido registrado con éxito.

4. Simulación del paso de un año:
– public void simularAño()es un método que simula el paso de un año en la prisión. Imprime un mensaje indicando que se está simulando el paso de un año y, para cada recluso que no esté libre, llama al método cumplirAño()del objeto Recluso, lo que probablemente incrementa su tiempo de condena.

5. Estado de la prisión:
– public void estadoPrision()es un método que imprime el estado actual de la prisión. Para cada recluso, muestra su nombre, los años cumplidos, los años de condena y si está en libertad condicional o no.

En resumen, esta clase Prision permite gestionar una lista de reclusos, registrar nuevos reclusos.

Por ultimo el método main ejecuta el software y establece en base al tiempo de condena y cumplido si el recluso obtiene la Libertad condicional.

Base de Datos de una Prision

Clave Primaria (Primary Key)

La clave primaria es un campo o conjunto de campos en una tabla de base de datos que identifica de manera única cada registro de esa tabla. No puede contener valores nulos y debe ser única para cada fila.

Clave Foránea (Foreign Key)

La clave foránea es un campo en una tabla que establece una relación con la clave primaria de otra tabla. Permite mantener la integridad referencial entre las dos tablas, asegurando que el valor en la clave foránea coincida con un valor existente en la clave primaria de la otra tabla.

Representacion de las clases Recluso y Prision en un esquema de base de datos:

Tabla: Recluso

reclusoID (PK)nombreañosCondenaañosCumplidoslibertadCondicional
1Juan Pérez52false
2María López103false
3Pedro Gómez81true
Tabla Recluso
  • reclusoID (PK): Clave primaria que identifica de forma única a cada recluso.
  • nombre: Nombre del recluso.
  • añosCondena: Años a los que fue condenado.
  • añosCumplidos: Años que ha pasado en prisión.
  • libertadCondicional: Indica si ha obtenido libertad condicional (booleano).

Tabla: Prision

prisionID (PK)nombrePrisionubicación
1Prisión CentralCiudad A
2Prisión NorteCiudad B
Tabla Prision
  • prisionID (PK): Clave primaria que identifica de forma única a cada prisión.
  • nombrePrision: Nombre de la prisión.
  • ubicación: Ubicación de la prisión.

Tabla Intermedia: Prision_Recluso

Es necesario establecer una relación más explícita entre Prision y Recluso, creando una tabla intermedia, especialmente si un recluso puede estar en diferentes prisiones a lo largo del tiempo.

prisionID (FK)reclusoID (FK)
11
12
23
Tabla Prision_Recluso
  • prisionID (FK): Clave foránea que hace referencia a la tabla Prision.
  • reclusoID (FK): Clave foránea que hace referencia a la tabla Recluso.

Resumen

  1. Tabla Recluso: Almacena información sobre cada recluso.
  2. Tabla Prision: Almacena información sobre cada prisión.
  3. Tabla intermedia Prision_Recluso: Relaciona los reclusos con las prisiones en las que están.

De esta forma el Software creado en JAVA podría almacenar de forma persistente la información en una Base de Datos relacional.

Compartir artículo:
Abrir chat
Carlos CR Abogado Penalista
Gracias por contactar con Carlos CR Abogado Penalista.

¿Cómo podemos ayudarte?.