Está en la página 1de 3

Universidad del Quindío

Programa de Ingeniería de Sistemas y Computación.


Estructura de datos – Proyecto Final.
2018-1

PROYECTO FINAL - UQCenso

El gobierno nacional a través de la oficina DANE desea contar con un software que permita a la población
censarse con el fin de agilizar el proceso de recolección de información y análisis estadístico de los datos.
La aplicación debe permitir registrar usuarios, una vez registrados se le debe mostrar las preguntas del
censo, las preguntas se dividen en secciones.

Las secciones del censo son:

● Información personal de los integrantes del hogar: En esta sección el usuario debe registrar a
todas las personas que pertenezcan a su núcleo familiar.

○ Sección especial para el responsable del hogar: El núcleo familiar debe tener un
responsable, en esta sección exclusiva para él se le debe solicitar información asociada a
cuántos son sus ingresos y egresos mensuales, si cotiza salud, pensión, cesantías.

● Información sobre la vivienda: En esta sección el usuario debe responder a varias preguntas
relacionadas a las características y el estado en que se encuentra la vivienda donde habita.

● Información sobre nivel estudios: En esta sección el usuario indica qué nivel de estudios tiene
cada uno de los integrantes de su hogar.

● Información sobre situación laboral: En esta sección el usuario indica la situación laboral de los
integrantes de su hogar mayores de edad, qué empleo tienen, es independiente o pertenece a una
empresa, si pertenece a una empresa, dónde queda ubicada, cuánto tiempo lleva en su último
trabajo, es pensionado o si no tiene trabajo.

La aplicación debe tener un administrador desde donde se permita consultar la información diligenciada por
los usuarios, además debe tener un dashboard con algunas gráficas que resumen estadísticamente la
información.

Los requisitos del software son:

Cliente

1. Registrar usuario, los atributos son: cedula, nombre, fecha de nacimiento, sexo, teléfono, dirección,
email y parentesco (hijo(a), esposo(a), padre o madre) con el responsable del hogar. Los usuarios
registrados se guardan en un HashMap.

a. El usuario se registra a sí mismo en la aplicación, y luego registra a todos los miembros de


su núcleo familiar, los cuales deben de estar almacenados en un ArrayList.

2. Censo tiene una Cola de secciones, una Sección tiene un nombre, y una lista doblemente enlazada
de preguntas, una Pregunta tiene un identificador, texto, tipo y una lista de opciones. Los tipos de
preguntas son: selección múltiple con única (1) y múltiple respuesta (2).

3. En el núcleo familiar hay dos tipos de miembros: el responsable de la familia, que es la persona que
vela y tiene mayor responsabilidad en el hogar y otro, otro son los demás miembros del núcleo,
dado esto para la persona que es responsable de la familia debe de haber una seccion de
preguntas especial para el (sueldo, pensión etc). la persona responsable de la familia no necesaria
es quien se registra en la aplicación.

4. La aplicación debe de mostrar una barra de progreso que indique el porcentaje del censo que se ha
completado hasta el momento, es decir, si son 20 preguntas en total y se han contestado sólo 10, la
barra de progreso debe indicar un 50% de avance.

5. Cada usuario debe poder llenar el formulario hasta cierta pregunta, cerrar la aplicación, y cuando
vuelva a iniciar sesión debe continuar en la última pregunta diligenciada.

1
6. Se debe persistir toda la información mediante serialización binaria.

7. Las preguntas de la sección sobre información de la vivienda se deben cargar desde un archivo
XML cuyo formato debe ser:

<?xml version="1.0" encoding="UTF-8" ?>


<pregunta>
<id>1</id>
<texto>¿En qué material está construido su piso?</texto>
<tipo>1</tipo>
<opciones>
<opcion>Cerámica</opcion>
<opcion>Madera</opcion>
<opcion>Cemento</opcion>
<opcion>Tierra</opcion>
</opciones>
</pregunta>
</xml>

8. Cada grupo debe formular al menos 15 preguntas en la sección sobre la información de la vivienda.
Cada pregunta debe de llevar el formato descrito en el punto anterior.

9. Para las demás secciones, formular un total de 15 preguntas.

10. Cuando el usuario termine el censo debe aparecer una imagen que lo indique.

Administrador

11. Indicar el porcentaje de personas que alcanzaron nivel de estudios de primaria, secundaria,
profesional, postgrado o no tuvieron acceso a estudios. Crear grafico de pastel.

12. Qué porcentaje de responsables de hogar son hombres y mujeres. Crear gráfico de donut.

13. Cuántas familias cuyos miembros en su totalidad tuvieron acceso a educación superior.

14. Realizar un gráfico de barras apiladas en donde se indique el porcentaje de personas por sexo que
hay en cada uno de los siguientes rangos: infantes (0-5), preadolescentes (6-10), adolescentes (11-
17), jóvenes (18-29), adultos (30-60) y tercera edad (61 o más).

15. Porcentaje de hogares que están compuestos por madres solteras segregarlos por la cantidad de
hijos menores de edad que tienen (1-2), (2-4), (6 o más). Crear gráfico de barras.

16. Realizar un gráfico de barras apiladas en donde se indique el porcentaje de personas por sexo que
están empleados y que no lo están.

17. Crear un árbol binario que contenga todas las personas censadas, ordenándolos de menor mayor
según su edad y mostrarlos en pantalla.

18. Permitir hacer búsquedas:

a. Búsqueda O: Dados los valores de dos o más atributos de una persona, retorne una lista
con las personas con al menos un atributo que coincida.

b. Búsqueda Y: Dados los valores de dos o más atributos de una persona, retorne una lista
con las personas con todos los atributos que coincidan.

Requisitos.

● Utilizar tablas para mostrar listados de información en pantalla.

2
● El programa debe hacerse en Java controlando todos los posibles errores que se puedan presentar
a través de excepciones.

● Utilizar buenas prácticas de programación para escribir un código legible y comprensible. Algunas
de ellas son: Documentar, separar en paquetes, usar convenciones de código, etc.

● El programa debe estar complemente documento con JavaDoc incluyendo los nombres de los
autores (por cada método que no esté documentado se descontará 0.2 a la nota final del proyecto)

● Todo el programa debe ser hecho con un diseño Orientado a Objetos e incluir un diagrama de
clases.

● Crear pruebas unitarias al menos a 7 métodos.

● La interacción debe ser hecha usando un modo gráfico. (Opcionalmente pueden utilizar la libreria
JavaFX en lugar de Swing, si la interfaz gráfica es realizada de esta manera, habrá una
bonificación de una unidad en la nota del proyecto).

● El proyecto debe ser sustentado al profesor. La sustentación es individual y se califica de 0 a 1. El


valor de la nota de la sustentación se multiplica por la nota del programa (nota grupal).

● Máximo grupos de 3 personas.

● El proyecto debe ser entregado en Google Classroom en un archivo .zip el día 23 de mayo de 2018,
la hora máxima es hasta las 23:59. Cualquier trabajo entregado fuera de esta fecha se calificará
sobre 3.5. La sustentación será en horario de clase.

JavaFX: https://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm#JFXST784

Gráficos con JavaFX: https://docs.oracle.com/javafx/2/charts/chart-overview.htm#CJAHHJCB

También podría gustarte