Primer parcial

Anuncio
FUNDAMENTOS DE PROGRAMACIÓN
Curso: 2010/11
PRIMER EXAMEN PARCIAL. 27 de enero de 2011
EJERCICIO 1. Valoración: 2,5 puntos
Para crear un sistema de gestión de encuestas para empresas demoscópicas, se define el tipo:
Encuesta. El tipo es Copiable y Comparable
Propiedades:
- Identificador, de tipo entero, consultable.
- Salario, de tipo real, consultable y modificable.
- Edad, de tipo entero, consultable y modificable.
- Género, de tipo carácter, consultable.
- Distrito, de tipo entero, consultable. El valor debe estar entre 1 y 20 incluidos.
- Relevancia, consultable, que se calcula en función del salario del encuestado,
multiplicándolo por un valor, 0.15 en nuestro caso.
Orden natural: por identificador.
Criterio de igualdad: dos encuestas son iguales si tienen el mismo identificador.
Representación como cadena: identificador, edad, género (separados por coma).
Donde:
Una Encuesta tiene identificador y los datos de la persona encuestada: salario, edad,
género, y distrito.
Para el tipo Encuesta responda a los siguientes apartados:
a) Defina la interfaz Encuesta.
b) Implemente una excepción de nombre EncuestaNoValidaException.
c) Implemente la clase EncuestaImpl teniendo en cuenta las siguientes consideraciones
1. Implemente un único constructor que recibe valores para todas las propiedades
necesarias.
2. No es necesario que implemente métodos set y get, salvo para la propiedad
relevancia.
3. Cree una constante llamada FACTOR_RELEVANCIA para almacenar el valor
de 0.15 asociado a dicha propiedad.
4. Lance la excepción EncuestaNoValidaException cuando sea oportuno.
EJERCICIO 2. Valoración: 2,5 puntos
De cara a las elecciones de mayo, se desea crear un subtipo de Encuesta específico para
almacenar intenciones de voto. Para ello se define el siguiente tipo:
EncuestaPolitica. Subtipo de Encuesta
Propiedades Adicionales:
- Afiliado, de tipo lógico, consultable. Guarda si el votante encuestado está afiliado a
algún partido político
- Voto, de tipo cadena de caracteres, consultable. Partido al que tiene intención de
votar.
Propiedades Redefinidas:
- Edad, consultable y modificable, debe ser mayor o igual de18 y menor o igual de
85.
- La relevancia se calcula teniendo en cuenta si el encuestado es afiliado a algún
partido político, en cuyo caso su valor de relevancia será cero, y en caso contrario,
el valor se calcula como en Encuesta.
Representación como cadena: identificador, edad, género, voto.
Responda a los siguientes apartados:
a) Defina la interfaz EncuestaPolitica.
b) Implemente la clase EncuestaPoliticaImpl con las siguientes consideraciones:
1. Proporcione un constructor con parámetros para todas las propiedades.
2. Escriba todos los métodos que estime deben definirse, incluyendo get y set.
FUNDAMENTOS DE PROGRAMACIÓN
Curso: 2010/11
PRIMER EXAMEN PARCIAL. 27 de enero de 2011
EJERCICIO 3. Valoración: 1,5 puntos
Se desea implementar el tipo Cuestionario, que permite agrupar encuestas, pronósticos,
evaluaciones y otro tipo de informes realizados por empresas de demoscopia.
Cuestionario de T
Propiedades:
Identificador, de tipo String, consultable.
Informes, de tipo List<T>, consultable y modificable.
Criterio de igualdad: dos cuestionarios son iguales si tienen el mismo identificador.
Representación como cadena: la lista de informes.
Se pide:
Suponga ya implementada la interfaz del tipo Cuestionario, incluyendo el método añadeInforme
para añadir un informe al cuestionario, recuperaInforme para recuperar un informe de una
posición dada e incorporaInformes, que recibe un cuestionario e incorpora los informes de ese
cuestionario al cuestionario actual. Escriba la clase CuestionarioImpl que implemente la interfaz
Cuestionario. En dicha clase resuelva exclusivamente los siguientes apartados:
Escriba la cabecera de la clase, declare los atributos e incluya un constructor a partir de
un identificador.
b) Implemente los métodos de la interfaz añadeInforme, recuperaInforme e
incorporaInformes, teniendo en cuenta que ya está implementado el método
getInformes.
a)
EJERCICIO 4. Valoración: 3,5 puntos
Suponga definida una clase de utilidad llamada Encuestas. Escriba en ella el código de un
método estático para responder a cada una de las preguntas que se plantean a continuación.
a) Un método votosPartidoMayorEdad que reciba un Cuestionario de EncuestaPolitica,
una cadena de caracteres con el nombre de un partido político y un entero edad, y que
devuelve el número de encuestas del cuestionario con la intención de voto del partido
dado y edad del votante mayor que la dada.
b) Un método salarioMaximoPartido que recibe un Cuestionario de EncuestaPolitica y una
cadena de caracteres con el nombre de un partido político y devuelve el salario máximo
de los votantes de dicho partido.
c) Un método resultadosPartido que recibe un cuestionario de EncuestaPolitica y una
cadena de caracteres con el nombre de un partido político, y devuelve el porcentaje de
votos para ese partido, esto es, el resultado de dividir los votos para ese partido entre el
número total de encuestas.
d) Un método buscaEncuesta que recibe un cuestionario de Encuesta, un entero
representando un distrito y dos edades, edad1 y edad2, y devuelve el primer elemento
de tipo Encuesta encontrado del distrito dado con su edad comprendida entre edad1 y
edad2 (ambas inclusive, suponga edad1<edad2).
e) Un método distritos que recibe un cuestionario de Encuesta y devuelve un conjunto con
los distintos distritos presentes en las encuestas.
Descargar