PROGRAMACION ORIENTADA A OBJETOS

Curso: 2012/13

Examen Septiembre 2013

11/9/2013

Se quiere realizar un sistema de gestión de grupos creados dentro de una Red Social. Para ello suponga implementado previamente los siguientes tipos: Tipos

public interface Persona Comparable{ String getDNI(); String getNombre(); String getApellidos(); }

extends

public interface Usuario extends Persona{ String getEmail(); String getAlias(); List mensajes(); Integer getAñoAlta(); }

El tipo Usuario representa a los usuarios o miembros de los grupos de la Red Social. El tipo Usuario es subtipo de Persona y tiene como propiedades: el email, alias y la lista de mensajes que ha escrito en el grupo. El criterio de igualdad y el orden natural son los mismos que los del tipo Persona. Información del Tipo GrupoRedSocial Propiedades:  nombre, de tipo cadena, consultable.  tipo del grupo, enumerado, consultable. Podrá tomar uno de los siguientes dos valores: PUBLICO, PRIVADO.  añoCreacion, de tipo entero, consultable. Representación como cadena: nombre, tipo y año de creación. Ejemplo: “AlumnosPOO, PUBLICO, 2003” Criterio de igualdad: La igualdad entre dos grupos viene dada por sus nombre, tipo y año de creación. Orden natural: Por orden alfabético del nombre, en caso de igualdad por tipo y en caso de igualdad por año de creación. Constructores: Se dispondrá ya implementado de un constructor que reciba tantos parámetros como propiedades haya.

Tipo RedSocial La interfaz RedSocial es implementada por la clase RedSocialImpl con los siguientes atributos: private Set grupos; private Map> mapGU; El atributo grupos representa todos los grupos creados en la Red Social. El atributo mapGU relaciona cada grupo con su conjunto de participantes o usuarios de la Red Social. Ejercicios Realice los siguientes ejercicios: 1.

Implemente de la clase GrupoRedSocialImpl tan solo lo siguiente: a. La cabecera de la clase y sus atributos. b. El constructor que recibe una cadena con el siguiente formato como ejemplo “AlumnosPOO, PUBLICO, 2012”.

2.

Una clase excepción de nombre GrupoNoExistenteException. Esta clase es subtipo de Exception.

3.

Implemente de la clase RedSocialImpl los siguientes métodos: a.

El constructor por defecto (sin parámetros).

b.

El método cargaFicheroGrupos que recibe el nombre de un fichero de texto que contiene la información de un grupo por cada línea y carga la información contenida en el fichero en el atributo grupos. El formato del fichero es similar al especificado anteriormente en el tipo GrupoRedSocial.: AlumnosPOO, PUBLICO, 2012 ProfesoresETSII, PRIVADO, 20023 AntiguaPromocionETSII, PUBLICO, 2008

c.

El método añadeUsuario, recibe como parámetro un objeto de tipo Usuario y otro de tipo GrupoRedSocial y actualiza el Map mapGU. El método añadeUsuario lanzará la excepción de nombre GrupoNoExistenteException si el grupo no existe previamente en el atributo grupos.

d.

El método cuentaUsuarioEnRedSocial, que dado un usuario como argumento de entrada devuelva la frecuencia de dicho usuario en la red, es decir, el número de veces que aparece en los grupos de la red social.

e.

El método existeGrupoConUsuario, que dado un grupo y un usuario devuelve verdadero o falso si dicho usuario se encuentra en el conjunto de usuarios asociados al grupo. Nota: no resuelva este ejercicio utilizando sentencias iterativas (for o while) sino use los métodos utilidad de colecciones.

f.

El método usuariosMasAntiguo, que dado un grupo devuelve el usuario más antiguo (con año de alta más bajo). En caso de existir varios usuarios con el mismo año de alta se devolverá el menor según el orden natural de usuario.

g.

El método convierteMap, que devuelve un map ordenado resultado de convertir el atributo magGU en un map ordenado cuya clave representa el nombre de un grupo y cuyo valor representa el número de usuarios en dicho grupo.

h.

El método nombreGruposConUsuarios, que dados dos argumentos enteros min y max devuelve una Collection con los nombres de los grupos que tienen entre min y max usuarios. Nota: use el método anterior.

i.

El método guardaGruposDeTipo, que dado el nombre de un fichero y un objeto tg de tipo TipoGrupo como argumentos de entrada, escriba en dicho fichero aquellos grupos que son del tipo tg.

POO-septiembre-2013.pdf

There was a problem loading more pages. Retrying... Whoops! There was a problem previewing this document. Retrying... Download. Connect more apps.

140KB Sizes 3 Downloads 164 Views

Recommend Documents

No documents