Universidad de Costa Rica
|
|
Obtenga el archivo que contiene el
padrón nacional en el sitio del
Tribunal Supremo de Elecciones y úselo para generar
los datos para el programa Emparejador.java
que
construyeron los estudiantes del cursos de
Programación I para su
tarea programada número 8. Use como base la solución Java del
programa pero utilice
SQLite para generar los archivos de
datos. Finalmente, incluya en su programa C++ la
exportación de los datos a archivos de texto en formato
CSV.
El archivo de encuestas que usted debe generar a partir de los nombres y apellidos del padrón nacional sirve para determinar cuáles son las personas más compatibles. Cada pregunta en la encuesta tiene 6 posibles respuestas:
Al construir el programa Emparejador.java
hay que
usar la clase pregunta.java
para almacenar en una
lista vector las preguntas del cuestionario, las que están
grabadas en formato
CSV en el archivo "cuestionario.txt
". Las
respuestas al cuestionario están en el archivo
"encuesta.txt
", grabado también en formato
CSV.
La cantidad de respuestas grabadas en el archivo
"encuesta.txt
" es muy grande, más allá
de de varios miles. Para almacenar estos valores, usted debe
utilizar un objeto
contenedor que permita agregar valores eficientemente, como
es el caso de la clase
ArrayList
que tiene su método
add()
para agregar nuevos valores con buen eficiencia.
En la memoria del computador es posible almacenar objetos enormes,
pero es muy difícil manipular una matriz cuadrada que tiene
un millón de renglones. Por eso, en lugar de almacenar la
gran matriz, la clase losMejores.java
se usa para
guardar los índices de aquellas parejas que tengan mayor
compatibilidad. La clase losMejores.java
tiene al
menos los siguientes métodos:
cmptbl
para
guardar aquellas parejas (i,j)
que tienen mayor
compatibilidad.i
de la
pareja (i,j)
que tiene la compatibilidad de en
posicipon n
. La pareja más compatible es
la que está en la posición 0
de
compatibilidad.j
de la
pareja (i,j)
que tiene la compatibilidad de en
posicipon n
.
Para calcular el índice de compatibilidad calcule la suma
de los cuadrados de las diferencias de las repuestas. Si alguna de
las 2 respuesta es la opción [0]
(no sabe o no
responde) use el valor 2
al calcular la
compatibilidad. Por ejemplo, la compatibilidad de estas 2
respuestas al cuestionario es 70:
1, 0, 0, 3, 1, 1, 5, 5, 1, 0, 4, 0 4, 1, 4, 5, 0, 1, 1, 1, 1, 0, 3, 1 --- --- --- --- --- --- --- --- --- --- --- --- -3 2 2 -2 2 0 4 4 0 2 1 2 9 4 4 4 4 0 16 16 0 4 1 4 ==> 66
El programa Emparejador.java
debe procesar todos los
cuestionarios y producir, al final, la lista de las 25 parejas que
tienen mayor compatibilidad.
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|