Universidad de los Andes Ingeniería de Sistemas y Computación Algorítmica y Programación por Objetos 1 Ejercicio Nivel 1 Elecciones Cupi2 Descripción Con el fin de tener estadísticas más detalladas sobre los votantes, se requiere realizar las siguientes extensiones al ejemplo de la aplicación Elecciones Cupi2. 1. La aplicación para votar ahora debe permitir registrar la siguiente información adicional de la persona que vota: a. Género (Masculino o Femenino). b. Rango de edad (18 - 34, 35 - 54 ó 55 en adelante). 2. Mostrar el total de votos de cada género. 3. Mostrar el total de votos de cada rango de edad. 4. Mostrar el total de votos obtenidos en todos los rangos de edad para cada candidato. 5. Mostrar el porcentaje de votos influenciados por publicidad en internet para cada candidato respecto al total de votos influenciados por publicidad internet. Esto es: % 𝑣𝑖𝑝𝑖 𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑜 𝑥 = 𝑣𝑖𝑝𝑖 𝑐𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑜 𝑥 ∗ 100 𝑇𝑜𝑡𝑎𝑙 𝑣𝑖𝑝𝑖 Donde: 𝑣𝑖𝑝𝑖 = Votos influenciados por publicidad en internet. Ventana principal de la aplicación Objetivos del ejercicio En el presente ejercicio usted trabajará en: Completar requerimientos funcionales. Construir expresiones aritméticas. Agregar atributos. Completar métodos. Los siguientes pasos conforman el plan sugerido para desarrollar el ejercicio. Este ejercicio debe ser realizado de manera INDIVIDUAL. Preparación 1. Descargue del sitio del curso el archivo .zip del ejercicio. 2. Descomprima el archivo e importe el proyecto en Eclipse llamado n1_elecciones con el contenido. 3. Lea la descripción del problema original disponible en n1_elecciones/docs/specs/Descripcion.pdf. (Si desea ver el ejercicio original puede encontrarlo en: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-1/elecciones.) 4. Estudie el modelo del mundo diseñado para la extensión de este ejercicio. Este modelo se encuentra en n1_elecciones/docs/specs/ModeloConceptual.jpg. Identifique las clases, relaciones entre clases, atributos y métodos. Parte 1: Documentación 1. Complete el documento de requerimientos funcionales con los nuevos requerimientos definidos al inicio de este documento. El documento que debe modificar lo encuentra en n1_elecciones/docs/specs/RequerimientosFuncionales.docx. Debe completar la documentación de los siguientes requerimientos: R1 – Votar por un candidato Ahora se debe contemplar el rango de edad y género. R7– Mostrar el total de votos de cada género R8– Mostrar el total de votos de cada rango de edad R9– Mostrar el total de votos obtenidos en todos los rangos de edad para cada candidato R10– Mostrar el porcentaje de votos influenciados por publicidad en internet para cada candidato Parte 2: Completar la clase Candidato En esta parte usted debe completar la clase Candidato, siguiendo las siguientes indicaciones: 1. Declare los atributos faltantes: Votos influenciados por internet. Votos género masculino. Votos género femenino. Votos edad joven. Votos edad media. Votos edad mayor. 2. En el método inicializar, asígnele un valor inicial en 0 a los atributos que declaró anteriormente. 3. Complete los métodos: darVotosInfluenciaInternet darVotosGeneroFemenino darVotosGeneroMasculino darVotosEdadJoven darVotosEdadMedia darVotosEdadMayor reiniciarConteoVotos agregarVotoInternet agregarVotoGeneroFemenino agregarVotoGeneroMasculino agregarVotoEdadJoven agregarVotoEdadMedia agregarVotoEdadMayor reiniciarConteoVotos Parte 3: Completar la clase Urna En esta parte usted debe completar la clase Urna, siguiendo las siguientes indicaciones: 1. Declarar los atributos: Candidato2 Candidato3 2. Completar el método inicializar para inicializar los candidatos con los siguientes valores: Candidato2: nombre: Susanita, apellido: Chirusi, partido político: Revolucionario, edad: 26. Candiato3: nombre: Manolito, apellido: Goreiro, partido político: Tradicional, edad: 26. 3. Completar los siguientes métodos. registrarVotoGeneroFemeninoCandidato2 registrarVotoGeneroMasculinoCandidato2 registrarVotoEdadJovenCandidato2 registrarVotoEdadMediaCandidato2 registrarVotoEdadMayorCandidato2 registrarVotoGeneroFemeninoCandidato3 registrarVotoGeneroMasculinoCandidato3 registrarVotoEdadJovenCandidato3 registrarVotoEdadMediaCandidato3 registrarVotoEdadMayorCandidato3 calcularTotalVotosGeneroFemenino calcularTotalVotosGeneroMasculino calcularTotalVotosEdadJoven calcularTotalVotosEdadMedia calcularTotalVotosEdadMayor calcularPorcentajeVotosPorInternetCandidato1 calcularPorcentajeVotosPorInternetCandidato2 calcularPorcentajeVotosPorInternetCandidato3 Parte 4: Javadoc Cuando haya verificado que todas las pruebas de la aplicación sean exitosas, genere el Javadoc del proyecto. Para esto es necesario hacer doble clic sobre el archivo doc.bat (ubicado en n1_elecciones/bin/win para Windows) o doc.sh (ubicado en n4_elecciones/bin/mac para Mac) por fuera de eclipse. La documentación se genera en el subdirectorio n1_elecciones/docs/api. En caso de no aparecer el directorio api, modifique las variables de ambiente siguiendo las instrucciones proporcionadas en el siguiente enlace a partir del punto 8: http://cupi2.uniandes.edu.co/sitio/images/recursos/herramientas/InstalacionJDK.pdf Una vez generada la documentación empiece por leer el archivo: n1_ elecciones/docs/api/index.html Revise la documentación html de las clases del mundo y verifique las responsabilidades de los métodos, constantes y atributos. Validación Para comprobar el funcionamiento de su ejercicio usted puede: 1. Ejecutar las pruebas disponibles en el ejercicio. Para esto, ejecute el programa build.bat y luego buildTest.bat que se encuentran en n1_elecciones/bin/win/ y enseguida ejecute el programa runTest.bat, haciendo doble click en estos archivos desde el Explorador de Windows (por fuera de Eclipse). Estas pruebas automáticas le permitirán verificar la implementación de sus nuevos métodos. En un nivel posterior se estudiarán estas pruebas. Por el momento, con saber ejecutar las pruebas con el respectivo archivo .bat es suficiente. Como alternativa, para ejecutar las pruebas, en el entorno de Eclipse presione click derecho sobre el paquete “uniandes.cupi2.asociacionTenistas.test” (o alguna de sus clases internas), seleccione la opción Run as y posteriormente la opción JUnit Test. 2. Ejecutar el programa e interactuar con todas las opciones disponibles en la interfaz. Recuerde que puede ejecutar su programa directamente desde eclipse o por fuera de la herramienta. Para ejecutar el programa fuera de eclipse, siga los siguientes pasos: 1) Ejecute el archivo build.bat que se encuentra en n1_elecciones/bin/win/ y enseguida ejecute el programa run.bat. Entrega Este ejercicio debe ser realizado de manera INDIVIDUAL. 1. Construya el archivo entregable con el ejercicio completo, incluyendo el documento de requerimientos modificado como se solicita. No olvide revisar que su entrega cumple con lo especificado en las normas del curso referentes a entregas de ejercicios. Consultar http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/normas-administrativas 2. Entregue el archivo del ejercicio vía SicuaPlus, de acuerdo con las normas, fecha y hora de entrega definidas en sus sección.