Você está na página 1de 14

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

TEMA 3: Diseo orientado a objetos Ejercicios


1. Gestin de un supermercado
Se desea automatizar el proceso de actualizacin de existencias de un supermercado. El supermercado cuenta con 40 terminales (cajas registradoras) y cada una de ellas registra durante la jornada toda la informacin de las ventas efectuadas desde la misma; por cada venta (artculo que pasa por caja) se registra la informacin: cdigo de artculo, nmero de unidades vendidas Al final del da se utiliza la informacin registrada en las 40 cajas para actualizar las existencias globales del supermercado en funcin de los artculos vendidos. El inventario de existencias guarda por cada artculo a la venta la siguiente informacin: cdigo de artculo, existencias, precio por unidad, stock mnimo

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Elegir una de las MAE e implementar las operaciones que permiten su tratamiento como un
objeto nico. (NO hace falta que implementes las otras operaciones de la MAE).

4. Escribir la interfaz de operaciones para el mdulo que representa los artculos e implementar la
operacin actualizarExistencias que se ejecuta al final del da.

2. Ayuda a la redaccin I
Se quiere construir una herramienta muy "simple" que ayude a un escritor a mejorar la calidad "literaria" de un texto. Para ello se cuenta con una utilidad diccionario que permite conocer los sinnimos y antnimos de una palabra dada. Para cada entrada, el diccionario posee dos conjuntos de palabras (pudiendo stos ser vacos): los sinnimos de la entrada y los antnimos. La mejora del texto se realizar haciendo un recorrido secuencial del mismo, palabra a palabra. Cada una de ellas debe poder sustituirse por un sinnimo o antnimo. Para sustituir la palabra, se debern proveer las operaciones que seleccionan una palabra de un conjunto de palabras y que se utilizarn para obtener un sinnimo o un antnimo devuelto por las operaciones de consulta del diccionario. El texto es susceptible de ser presentado en pantalla y salvado tras realizar las modificaciones deseadas.

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
1

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

SOLAMENTE el nombre de la clase.

3. Elegir una de las MAE e implementar las operaciones que permiten su tratamiento como un
objeto nico. (NO hace falta que implementes las otras operaciones de la MAE).

4. Escribir la interfaz de operaciones para el mdulo que representa el diccionario y la clase que lo
implementa.

3. Ayuda a la redaccin (Ampliacin)


Se quiere ampliar la herramienta descrita en el ejercicio anterior, para que permita al usuario un tratamiento interactivo del texto, seleccionando la palabra que desee cambiar y sustituyndola por un sinnimo o un antnimo recogido en el diccionario. Adems, tambin se desea aadir la posibilidad de enriquecer el diccionario con nuevas entradas aportadas por el usuario quin tendr que proporcionar, en ese caso, la palabra y sus correspondientes sinnimos y antnimos, modificar una entrada del diccionario aadindole o eliminndole sinnimos y antnimos, o incluso borrarla completamente.

Se pide (justificando tus decisiones): 1. Identificar las nuevas operaciones necesarias para conseguir la funcionalidad descrita. 2. Ampliar el diagrama UML para que recoja los cambios realizados.

4. Cadena de montaje
Disear una aplicacin para organizar el Cuaderno de Carga de una mquina de una cadena de montaje durante un periodo semanal (188 horas) (la mquina debe permanecer en funcionamiento 24 horas al da). Para ello se cuenta con la siguiente informacin: A- Una Lista de Tareas a realizar por dicha mquina (ordenada por la fecha de demanda). Para cada tarea se dispone de los siguientes datos: Identificacin de la tarea Fecha de demanda Tiempo que precisa para su ejecucin (en horas) Prioridad: valor del 1 al 5 que representa la prioridad que hay que dar a dicha tarea. El valor 1 corresponde a las tareas de mayor prioridad Materiales que precisa: lista de materiales, donde para cada uno se indica su identificacin y cantidad necesaria. B- Una Lista de Materiales de almacn, donde para cada uno se indica su identificacin, cantidad existente en el almacn y su proveedor. Para obtener el Cuaderno de Carga semanal de la mquina se utilizan los criterios siguientes: las tareas se realizan por orden de prioridad, una tarea no puede estar retenida mas de un mes, slo estarn presentes aquellas tareas cuyos materiales estn en el almacn en cantidad suficiente, y no se superan el nmero de horas semanales.

Se pide (justificando tus decisiones): 3. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

4. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

5. Elegir una de las MAE e implementar las operaciones que permiten su tratamiento como un
2

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

objeto nico. (NO hace falta que implementes las otras operaciones de la MAE).

6. Implementa la clase que representa el cuaderno de carga.

5. Euskal Bizikleta
Se quiere implementar una aplicacin para la gestin de resultados en la Euskal Bizikleta. En la carrera toman parte varios equipos. Un equipo est formado por un conjunto de corredores y se identifica por el nombre, la suma de los tiempos de carrera de todos los corredores y el patrocinador. Un corredor se describe con varios atributos como son: nombre, tiempo de carrera, dorsal y especialidad (velocista, escalador, ...). Por otra parte la carrera est organizada en etapas. Una etapa se caracteriza por su fecha, el origen y destino, el nmero de kilmetros, el tipo (montaa, contrarreloj, etc.) y la lista de registros de tiempo que almacena los resultados obtenidos por los corredores en la etapa. Un registro de tiempo recoge el tiempo empleado por un corredor en una etapa. Se pide:

1. Identificad los objetos (MAE y TAD) de la aplicacin. Representad por separado cada clase con
el formalismo UML indicando cules son sus atributos (con su tipo) y las operaciones esenciales para la resolucin de este ejercicio (ver punto 4).

2. Dibujar el diagrama UML con todas las clases e interfaces reflejando las relaciones entre ellas. Aqu poned en las clases/interfaces SOLAMENTE su nombre. 3. Elegid una de las MAE e implementad las operaciones que permiten su tratamiento como un
objeto nico. (NO hace falta que implementes las otras operaciones de la MAE). Escribe de qu forma se utiliza esa MAE desde otra clase.

4. Implementar en Java los mtodos para actualizar los tiempos de carrera de todos los
corredores y de sus equipos con los datos de una nueva etapa, asegurndose de que estn declaradas todas las operaciones necesarias.

6. Gestin de alquileres para estudiantes


Un departamento de la UPV quiere poner en marcha una aplicacin informtica para agilizar los trmites de alquiler de piso a los estudiantes durante el curso acadmico. Para ello, cada curso pone en marcha diversas campaas publicitarias para que los propietarios interesados hagan sus ofertas, de modo que al final de cada curso acadmico se cuenta con una bolsa de pisos para alquilar el curso siguiente. Los propietarios que quieran alquilar pisos deben inscribirse primeramente en el registro de propietarios, aportando sus datos de contacto: cdigo CIF, nombre, telfono y direccin. Para incluir un piso en la bolsa de pisos, el propietario debe rellenar una ficha con los siguientes apartados: cdigo de propietario, metros cuadrados, nmero de plazas, interior/exterior, zona y precio total. Al insertar un piso en la bolsa se le asigna adems un cdigo de identificacin nico. El estudiante interesado en obtener una residencia para el curso debe rellenar una ficha de solicitud indicando en ella sus datos de contacto (cdigo CIF, nombre, telfono y direccin), fecha y las restricciones sobre el piso que desea: nmero de personas, zona, precio mximo, interior o exterior. Las solicitudes de los estudiantes se procesan por orden de fecha, contrastando cada da la lista de solicitudes con la bolsa de pisos ofertados e introduciendo en las solicitudes satisfechas la fecha de pre-asignacin y los cdigos de piso asociados (una misma solicitud puede tener varios pisos preasignados). Adems, se crea un documento impreso con las solicitudes pre-asignadas, incluyendo para cada cdigo de solicitud, la informacin del alumno, el cdigo del piso pre-asignado y la informacin de su propietario; habr una lnea para cada piso asociado a una solicitud. El listado sirve al departamento de la UPV que se encarga de estas gestiones para poner en contacto al estudiante responsable de la solicitud y al propietario. Se da una semana de plazo a fin de comunicar el acuerdo a la UPV y as eliminar las entradas correspondientes de la lista de solicitudes y de la bolsa de pisos. Si en ese plazo no hay ninguna comunicacin se elimina la pre-asignacin de la solicitud (eliminar fecha
3

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

de pre-asignacin y lista de cdigos de pisos) y se actualiza la fecha de solicitud al da en curso (para dar las mismas oportunidades a todos los alumnos solicitantes). Se pide:

1. Identificad los objetos (MAE y TAD) de la aplicacin. Representad por separado cada interfaz y
clase con el formalismo UML indicando cules son sus atributos (con su tipo) y las operaciones esenciales para la resolucin de este ejercicio (ver punto 4).

2. Dibujar el diagrama UML con todas las clases e interfaces reflejando las relaciones entre ellas.
Aqu poned en las clases/interfaces SOLAMENTE su nombre.

3. Elegid una de las MAE e implementad las operaciones que permiten su tratamiento como un
objeto nico. (NO hace falta que implementes las otras operaciones de la MAE). Escribe de qu forma se utiliza esa MAE desde otra clase.

4. Al final del da se pone en marcha la aplicacin que realiza los siguientes procesos: pre-asignar
los pisos a las solicitudes, borrar los pisos que ya se han asignado definitivamente, modificar las fechas de los pisos que llevan pre-asignados sin xito una semana, incluir las nuevas ofertas de pisos y nuevas solicitudes. Se pide, implementar en Java el subprograma para pre-asignar los pisos a las solicitudes, asegurndose de que estn declaradas todas las operaciones necesarias.

7. Parking automtico
Para hacer frente a los problemas de aparcamiento en la ciudad, el ayuntamiento de Bilbao est construyendo un moderno parking automtico. Adems de la planta de entrada desde la que se controla todo el parking, dispondr de 3 plantas con un elevado nmero de plazas de aparcamiento. Una planta se identifica por un nmero, tiene una capacidad mxima y una lista ordenada de plazas que pueden estar libres o tener un coche aparcado. Cada plaza, por tanto, se identifica por nmero de planta y de plaza y puede tener dos estados (ocupada por un coche o libre). Adems, el parking cuenta con una serie de ascensores numerados cuyo suelo es una rampa mvil que se encarga de desplazar los vehculos para aparcarlos y desaparcarlos de la plaza correspondiente. Cada ascensor contiene informacin sobre su estado (ocupado o disponible) y la planta en la que se encuentra (un nmero de 0 a 3). Una aplicacin informtica controlar el estacionamiento y recogida automticos de los vehculos. Un coche se identifica por su matrcula. Cuando un usuario llega con intencin de estacionar su coche, el sistema comprueba si queda alguna plaza libre en el parking y busca un ascensor disponible desplazndolo hasta la planta de entrada. A continuacin informa al conductor sobre el nmero de ascensor al que debe dirigirse para colocar el coche en su interior. Una vez colocado el coche, el conductor lo abandona y el ascensor se desplaza hasta la planta adecuada. A continuacin su rampa se mueve para aparcar el coche en el hueco previamente localizado. Esta nueva situacin debe reflejarse en la plaza. Tras realizarse el aparcamiento, se genera un ticket con la informacin correspondiente a la matrcula del vehculo, la hora de llegada al parking, la planta y el identificador de la plaza en la que se ha aparcado, entregando una copia al conductor. El conjunto de los tickets emitidos para los coches que se encuentran en el parking permitir localizar los vehculos cuando se deseen desaparcar. De esta forma, cuando un conductor quiere recuperar su vehculo, el sistema utiliza esta informacin contenida en el ticket entregado en el aparcamiento. El sistema busca un ascensor libre, lo desplaza hasta la planta adecuada y mueve la rampa para ir a recoger el coche, introducindolo en el ascensor y llevndolo hasta la planta de entrada. As mismo, se le avisa al usuario del nmero de ascensor al que debe acudir. Como consecuencia borra el ticket de aparcamiento del vehculo recuperado y actualiza adecuadamente la plaza que ocupaba el coche.
4

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

Se pide:

1. Identificad los objetos (MAE y TAD) de la aplicacin. Representad por separado cada interfaz
y clase con el formalismo UML indicando cules son sus atributos (con su tipo) y las operaciones esenciales para la resolucin de este ejercicio (ver punto 4).

2. Dibujar el diagrama UML con todas las clases e interfaces reflejando las relaciones entre ellas.
Aqu poned en las clases/interfaces SOLAMENTE su nombre.

3. Elegid una de las MAE e implementad las operaciones que permiten su tratamiento como un
objeto nico. (NO hace falta que implementes las otras operaciones de la MAE). Escribe de qu forma se utiliza esa MAE desde otra clase.

4. Implementad en Java los mtodos que gestionan el estacionamiento y recogida automticos de


los vehculos, comprobando que estn declaradas todas las operaciones necesarias.

8. La era de las tinieblas


El juego La Era de las Tinieblas trata de las contiendas blicas que surgen entre dos bandos enemigos, los clanes de John Lackland y Richard Lionheart, que quieren hacerse con el poder del Reino de los Hombres. Al iniciar el juego, el usuario elige el bando que le interesa dirigir y el ordenador se ocupa del bando oponente. La lucha por el poder se desarrolla en el Reino de los Hombres que se describe mediante un tablero de celdas en el que se sitan los castillos existentes y los ejrcitos de los bandos. Una celda puede estar vaca, alojar un ejrcito, albergar un castillo o albergar un castillo con ejrcito atacante. Un castillo se caracteriza por su nombre, su propietario (nombre del bando), su posicin en el tablero y su ejrcito defensor. Al inicio del juego todos los castillos del reino se reparten de forma equitativa y aleatoria entre los dos bandos. Cada bando posee un conjunto de castillos, un conjunto de ejrcitos y un grupo de caballeros identificados por su nombre, adems de un nmero de soldados y un nmero de armas sin asignar a ningn ejrcito. Al comienzo del juego cada bando tiene 5.000 soldados, 10.000 armas y 100 caballeros; al principio no existe ningn ejrcito formado. Cada ejrcito tiene su identificacin, su caballero al mando, su posicin en el tablero y un nmero variable de soldados y armas. Algunas reglas del juego: La situacin del juego (distribucin en el tablero de los castillos y ejrcitos) es visible en cada momento por los bandos. El usuario con su bando puede, entre otras, realizar las siguientes acciones: formar un ejrcito con cierto nmero de soldados de la reserva y un caballero inactivo, modificar el objetivo de un ejrcito, etc. Cuando un bando gana una batalla el ejrcito perdedor desaparece, el caballero vencido muere y los soldados y armas pasan al bando ganador. Si el objetivo era un castillo, el vencedor tambin se apropia de l y el ejrcito ganador pasa a defenderlo. Se pide:

1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos y las operaciones
esenciales para la resolucin de este ejercicio (ver punto 4).

2. Dibujar el diagrama UML correspondiente. 3. Elegir una de las MAE e implementar las operaciones que permiten su tratamiento como un
objeto nico.

4. Implementar en Java los mtodos necesarios para invadir una zona y que gestionan las
operaciones que modifican el estado de cada bando y del Reino despus de una batalla. Se deben declarar todas las operaciones que se utilicen, indicando la clase en la que deberan ir.

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

9. Control de dietas
Se quiere realizar una aplicacin cuyo objetivo es el control de la dieta de una persona a lo largo de una semana; para ello se cuenta con el perfil de sus necesidades diarias y un registro de lo consumido a lo largo de la semana. El perfil de necesidades diarias es nico y se caracteriza por: el tipo de persona, la actividad que se adecua a dicho perfil y la lista de pares alimento-cantidad que constituyen la dieta diseada para dicha persona. El registro de lo consumido a lo largo de la semana est representado mediante una lista de pares da-plato (ser similar a una agenda en la que se van anotando cada plato consumido y el da en el que se ha consumido). Se cuenta adems con una lista de platos general en la que cada plato se caracterizar por su identificador, nombre, tiempo de preparacin y la lista de pares alimento-cantidad presentes en el plato. La aplicacin obtendr el registro de excesos diarios que ha cometido una persona en su dieta a lo largo de una semana. Un exceso se caracterizar por el da y una lista de pares alimento-cantidad en la que se representan los alimentos consumidos y la cantidad en la que se ha excedido en su consumo (los alimentos cuyo consumo sea menor o igual que el que figura en el perfil de necesidades no aparecern en esta lista). A partir del registro semanal de lo consumido y considerando su perfil de necesidades diarias se calcular el consumo diario total de cada alimento y se comparar con las necesidades diarias indicadas, obtenindose de esta comparacin la lista de aquellos alimentos cuyas cantidades consumidas son superiores a las necesarias.

Se pide: 1. Identificad los objetos (MAE y TAD) de la aplicacin. Representad por separado cada clase con
el formalismo UML indicando cules son sus atributos (con su tipo) y las operaciones esenciales para la resolucin de este ejercicio (ver punto 4).

2. Dibujar el diagrama UML con todas las clases reflejando las relaciones entre ellas. Aqu poned en las clases SOLAMENTE su nombre. 3. Elegid una de las MAE e implementad las operaciones que permiten su tratamiento como un objeto nico. (NO hace falta que implementes las otras operaciones de la MAE). Escribe de qu forma se utiliza esa MAE desde otra clase. 4. Implementar en Java el mtodo calcularExcesosSemanales que se ejecuta una vez a la semana y que crea la lista de excesos de la manera que se ha indicado anteriormente. Asegrate de que estn declaradas todas las operaciones necesarias.

10. Asignacin de prcticas en empresa


Disear una aplicacin para organizar el programa de prcticas en Empresa de la Facultad de Informtica. Esta aplicacin tiene como objetivo asignar a los alumnos que deseen participar en el programa un proyecto de los ofertados a la Facultad de Informtica por las empresas del entorno. Para ello se dispone de la siguiente informacin: Una relacin de las empresas que deseen incorporar alumnos en prcticas en algunos de sus proyectos. Cada empresa ha de proporcionar los siguientes datos: nombre de la empresa, identificacin fiscal, relacin de los proyectos que oferta. Cada proyecto queda descrito mediante un cdigo, ttulo, objetivos, descripcin, horas estimadas de dedicacin al proyecto. Una relacin de los estudiantes que desean realizar prcticas en empresa en algunos de los proyectos ofertados. Para cada estudiante tenemos la siguiente informacin: identificacin, nombre, nota media del expediente y una relacin de los proyectos en los que desea participar ordenada de acuerdo a su inters. La asignacin de los alumnos a las prcticas en empresa se realiza segn el siguiente procedimiento: partiendo de la relacin de alumnos ordenada por su nota media, se van asignando los proyectos de acuerdo a las preferencias que cada uno de los estudiantes ha manifestado. De manera
6

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

que se le asigna al alumno el proyecto por l elegido en primer lugar, si el proyecto no ha sido previamente asignado a otro alumno; si ya ha sido asignado previamente, se le intenta asignar al proyecto elegido por l en segundo lugar, y as sucesivamente hasta tratar toda su lista de preferencias. Se procede de la misma manera con todos los estudiantes.

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Escribir la interfaz de operaciones para el mdulo que implemente la empresa.. 4. Implementar los mtodos para obtener la siguiente informacin:
a. Relacin de las asignaciones de alumnos a proyectos. Cada elemento de esta relacin contendr la referencia al alumno, al proyecto y a la empresa que oferta dicho proyecto. b. Relacin de alumnos que no han sido asignados a ninguna empresa para los casos en los que en el proceso de asignacin se detecte que todos los proyectos sobre los que el alumno mostraba inters han sido previamente asignados.

11. Gestin de la biblioteca


Se quiere construir una aplicacin para gestionar una biblioteca. Dicha aplicacin debe guardar la siguiente informacin: Relacin de todos los socios. Para cada socio se tiene su nombre, el nmero de socio, direccin, y la referencia de los ejemplares que tiene en prstamo. Se pueden tener 3 libros en prstamo como mximo. Fondos de la biblioteca, donde se recopila la informacin de todos los ejemplares de la biblioteca. Por cada libro se guarda su cdigo de identificacin, ttulo, autor, estado (libre, prestado o desaparecido). Hay algunos libros que no se pueden prestar, como las enciclopedias, diccionarios, o libros especialmente raros. Relacin de los ejemplares prestados. Por cada ejemplar prestado se guarda su cdigo, el nmero de socio que lo tiene en prstamo, la fecha del prstamo y la fecha de devolucin. Relacin de morosos, es decir aquellos socios que no han devuelto alguno de los libros que tienen en prstamo (y que debieran haber devuelto) Las operaciones bsicas que debe permitir realizar la aplicacin son: registrar un nuevo socio, borrar un socio, prestar un libro y devolver un libro, adems de las correspondientes a la gestin de las relaciones ya mencionadas de ejemplares prestados y de morosos.

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Implementar en Java la operacin prestarLibro. sta es una de las opciones del men
principal de la aplicacin. Implementar esta operacin implica comprobar que el libro se puede prestar, y que el socio no es moroso ni tiene en prstamo el nmero mximo de libros permitido. Como resultado habr que actualizar consecuentemente la informacin de la biblioteca (actualizar la relacin de ejemplares en prstamo del socio, la relacin de ejemplares prestados de la biblioteca, y el estado del libro en la biblioteca); el tiempo mximo de prstamo son 15
7

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

das.

12. Reserva de vuelos


Se quiere construir una herramienta que ayude en la reserva de vuelos en lneas areas comerciales. El programa ha de ser capaz de proporcionar informacin sobre los vuelos con plazas disponibles y hacer las reservas correspondientes de los distintos clientes. Un vuelo se caracteriza por su nmero de vuelo, compaa area, las ciudades de origen y destino, fecha, las horas de partida y llegada previstas, el precio regular de una plaza y el nmero mximo de plazas que admite; adems de la informacin citada, un vuelo lleva asociado la lista de reservas efectuadas. La reserva de un cliente incluye como informacin, adems de la identificacin del cliente, la del vuelo correspondiente. Como resultado de la gestin de dicha reserva se proceder a su inclusin en la lista de reservas de vuelo, en el caso de que exista un vuelo adecuado con plazas disponibles. Si no hubiera vuelo acorde con la necesidad del cliente se generar el mensaje adecuado. Por otro lado un cliente tambin puede anular una reserva, en cuyo caso se eliminar de la lista de reservas correspondiente.

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Escribir la interfaz de operaciones para el mdulo que implemente el objeto vuelo. 4. Implementar el mtodo que permite hacer las reservas de pasajeros de los distintos vuelos.

13. Pgina de anuncios


Se quiere informatizar el proceso de composicin de la pgina de anuncios de un peridico de manera que se pueda controlar automticamente. El programa construido debe procesar la secuencia de anuncios que se desea publicar y obtener como salida la pgina de anuncios del peridico que finalmente se imprimir. La pgina debe incluir todos los anuncios organizados por secciones. Esta pgina tiene definidas todas las secciones en las que se agruparn todos los posibles anuncios y el orden en el que aparecern en la pgina; cualquier anuncio se incluir en alguna de ellas. Cada seccin contiene su identificacin, la secuencia de anuncios que incluye, su lnea de comienzo en la pgina y su lnea de finalizacin. Tened en cuenta que la lnea de comienzo de una seccin es la lnea de terminacin de la anterior ms uno. El nmero de lneas totales de la pgina es fijo, por lo que no siempre caben todos los anuncios que se desea publicar. En cada momento se puede conocer el nmero de la ltima lnea ocupada. Adems se conoce el nmero de caracteres que puede contener cada lnea. Para componer la pgina de cada da se debe procesar la secuencia de anuncios que se desea publicar, para lo que se tiene en cuenta como criterio su orden temporal de llegada (es ms probable que se publique un anuncio que llega ms pronto que uno que llega ms tarde). Un anuncio tiene un identificador del cliente, la identificacin de la seccin en la que se quiere insertar el anuncio y su texto. Cuando un anuncio no pueda ser incluido en la pgina del da actual por falta de espacio, se incluir en una secuencia de anuncios pendientes y al da siguiente pasarn a formar parte, en primer lugar, de los anuncios a publicar.

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Escribir la interfaz de operaciones para el mdulo que implemente el objeto Pagina.


Implementar la operacin insertarAnuncio que dado un anuncio lo inserte en la pgina; es decir, lo incluya en la seccin correspondiente y modifique los nmeros de lnea de comienzo y final de las secciones pertinentes.

4. Implementar el mtodo componerPaginaAnuncios que se ejecuta a las 00:00 horas de


cada da, y que realiza bsicamente dos funciones: componer la pgina incluyendo en ella todos los anuncios a publicar que quepan en ella, y crear la cola de anuncios pendientes. Se deben declarar todas las operaciones que se utilicen, indicando el mdulo en que deberan ir esas declaraciones.

14. Centro de informacin meteorolgica


Un centro de informacin meteorolgica recibe lecturas de sensores distribuidos en diferentes puntos. Son atributos comunes de todas las lecturas el identificador de lectura (que indica el sensor donde se ha obtenido), la hora en la que se ha tomado y su valor (representado por un nmero real). En el centro existe un registro del da actual que almacena un juego de valores que se compone de la secuencia de lecturas recibidas durante el da de hoy (interesa tener siempre disponible el valor ms reciente) y los valores mximo y mnimo recibidos hasta ese instante. Esta unidad de registro se inicializa diariamente a las 00:00 horas. Todos los das a las 00:00 horas, y antes de la inicializacin del registro del da actual, se transfieren sus datos a un registro histrico. El registro histrico almacena, por cada da, la fecha y el juego de valores del da (la secuencia de lecturas recibidas, y los valores mximo y mnimo que figuran en el registro del da actual en ese momento).

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Escribir la interfaz de operaciones para el mdulo que implemente el objeto RegistroHoy y


la implementacin de la operacin obtenerJuegoValores que devuelve el conjunto de valores almacenado en el registro.

4. Implementar el mtodo ActualizarHistrico que se ejecuta a las 00:00 horas de cada


da, y que realiza bsicamente dos funciones: actualizar el registro histrico con la informacin almacenada en el del da, e inicializar este ltimo. Se supone que el registro histrico se carga desde algn dispositivo de almacenamiento permanente, se actualiza (se puede suponer el registro del da activo y actualizado), y se vuelve a guardar en el mismo dispositivo. Se deben declarar todas las operaciones que se utilicen, indicando el mdulo en que deberan ir esas declaraciones.

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

15. Tarjetero en centro universitario


Aprovechando la puesta en marcha del nuevo tarjetero de la Facultad de Informtica se desea construir una aplicacin para gestionar el acceso, entradas y salidas, de los alumnos al centro durante los fines de semana. Durante estos periodos la Facultad pone a disposicin de los alumnos dos tipos de salas: salas generales y salas de proyectos; stas se diferencian entre s por el tipo de equipamiento, aunque el nmero de ellas depende en cada momento del material disponible. Todos los alumnos del centro tienen derecho de acceso durante los fines de semana, pero sus privilegios sern unos u otros dependiendo del curso en el que se encuentren. As, un alumno matriculado en el Proyecto Fin de Carrera puede acceder a cualquier sala mientras que un alumno de cursos inferiores tiene vetado su acceso a las salas de proyectos. El programa que se quiere construir debe controlar los tarjeteros de entrada y salida, realizando el siguiente proceso. En el centro se dispone de dos tarjeteros: uno en la parte exterior de la puerta de entrada y otra en la interior. Cuando un usuario llega a uno de estos tarjeteros y aprieta el botn de acceso, el programa se pone en marcha y le pide su identificacin. Dependiendo de que el tarjetero sobre el que se ha pulsado el botn sea el exterior o el interior, el tipo de acceso al edificio ser de entrada o de salida respectivamente. Si el tipo de acceso es ENTRADA, el sistema comprueba que corresponde a un alumno efectivo del centro y obtiene su tipo de matriculacin: PFC (Proyecto Fin de Carrera) u OTROS (cualquier otro curso). A continuacin comprueba si hay alguna sala incompleta a la que pueda acceder el alumno; si existe un puesto libre en alguna de ellas, le permite el paso indicndole adems la sala a la que debe dirigirse. En ese momento se inscribe al alumno en la sala correspondiente y se crea un registro de entrada/salida que incluye la identificacin del alumno, el da y la hora de acceso y el tipo de acceso requerido (ENTRADA). En el caso de que no exista ningn puesto libre en ninguna sala de acceso permitido, se le niega el paso. Si el tipo de acceso es SALIDA, se borra al alumno de la sala en la que estaba inscrito y se crea el registro de entrada/salida correspondiente, (con su identificacin, el da y la hora de salida y el tipo de acceso SALIDA). De este modo, al terminar el fin de semana se obtiene un Registro Histrico con todas las entradas y salidas del centro que permitir un estudio estadstico posterior. Para realizar este proceso la aplicacin utilizar la Lista General de Alumnos que incluye a todos los alumnos activos del centro con su identificacin, nombre y tipo de matrcula (PFC, OTROS). Tambin usar la ListaSalas que recoge todas las salas accesibles durante cada fin de semana. De cada sala se guarda la siguiente informacin: identificacin de la sala, tipo (General, Proyectos), capacidad, nmero de puestos libres, y lista de los alumnos que la ocupan actualmente.

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Escribir la interfaz de operaciones para el mdulo que implemente el objeto ListaSalas. 4. Implementar el mtodo gestionarEntradasSalidas que gestiona la peticin de un
alumno de entrar o salir del centro (proceso descrito en los prrafos anteriores). Se deben declarar todas las operaciones que se utilicen, indicando el mdulo en que deberan ir esas declaraciones.

16. Agencia de subastas


La agencia de subastas por Internet SubItA quiere crear una aplicacin sencilla para gestionar la
10

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

venta de sus productos. Para este proceso cuenta con: la lista de todos los artculos a subastar ordenada de forma creciente por fecha lmite, el registro de clientes, y la lista de las pujas efectuadas en el ltimo ao ordenada de forma decreciente por fecha y por cdigo de artculo. Para efectuar cualquier gestin es necesario registrarse como cliente suministrando los siguientes datos: e-mail, nombre y direccin fiscal.

SubItA funciona de la siguiente manera: el posible vendedor enva informacin del artculo que quiere subastar, indicando: su e-mail de contacto, un precio de salida mnimo, la descripcin del artculo y la fecha lmite hasta la que est dispuesto a esperar. La agencia, por su parte, publica en Internet el artculo y procede a la subasta; para ello aade a las propiedades del artculo citadas lo siguiente: un cdigo, la direccin web de la pgina que lo muestra en Internet, el nmero de ofertas recibidas (al principio ser 0), el valor de la puja ms alta hasta el momento (inicialmente 0.0) y el email de los tres ltimos pujadores.
Para pujar por un artculo hay que indicar: el cdigo del artculo, direccin e-mail, oferta econmica y nmero de tarjeta de crdito; la agencia completa esta informacin con la fecha actual. Slo se consideran las pujas que hacen, en cada momento, ofertas econmicas superiores a la de la puja ms alta almacenada en el artculo. En este caso se realiza el siguiente proceso: insercin de la puja en la lista de pujas anuales, actualizacin de la terna de pujadores del artculo incluyendo el email del nuevo pujador y eliminando el e-mail del ms antiguo, actualizacin de la puja ms alta del artculo e incremento del nmero de pujas. Adems, y como cortesa a sus clientes, se enva un correo electrnico al cliente que ha efectuado la puja indicndole que hasta ese momento es la puja ms alta recibida, y se enva otro mensaje al pujador anterior indicndole que su oferta ha sido superada. A las 24h de cada da se procede a efectuar el cierre de subasta de todos los artculos que han alcanzado su fecha lmite. Para cada uno de estos artculos el proceso consiste en lo siguiente: 1) Si el artculo ha tenido ofertas, se enva al ltimo pujador el mensaje de compra efectuada. En este mensaje se describir el artculo comprado, la cantidad ofertada y la tarjeta de crdito indicada por el pujador. 2) Si el artculo no recibi ninguna puja en el plazo lmite establecido, se enviar al vendedor un mensaje indicando la venta fallida del artculo descrito y su retirada de la subasta. 3) Se elimina el producto de la lista de artculos a subastar. Se pide: 1. Identificar los objetos (MAE y TAD) de la aplicacin. Representar por separado cada clase con el formalismo UML indicando cules son sus atributos (con su tipo) y las operaciones esenciales para conseguir el funcionamiento previamente descrito y resolver el punto 3 de este ejercicio. 2. Dibujad el diagrama UML con todas las clases reflejando las relaciones entre ellas. Aqu poned en las clases SOLAMENTE su nombre. 3. Implementad en JAVA el mtodo proceso24H, que actualiza la lista de objetos a subastar segn la descripcin indicada en el ltimo prrafo.

17. Asignacin de proyectos informticos


Una empresa de desarrollo de software quiere crear una aplicacin que le ayude a organizar los proyectos informticos que demandan los clientes. Cuando un proyecto es aceptado queda definido por su cdigo de proyecto, empresa demandante, nmero de programadores necesario y fechas de comienzo y fin. La empresa slo tiene programadores y jefes de proyecto. La asignacin de personas cada proyecto se realiza a partir de los empleados activos de la empresa registrados en la Lista de Personal. Cada empleado se describe por su identificacin, nombre, categora, los cdigos de los proyectos en los que trabaja y la fecha hasta la que est ocupado.

11

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

La Lista de Proyectos Pendientes de Asignacin incluye los nuevos proyectos que todava no tienen grupo de desarrollo definido. Definir un grupo para un proyecto consiste en encontrar los empleados de la empresa adecuados segn su ocupacin, categora y el nmero necesario definidos en el proyecto. Una persona se puede asignar a un proyecto cuando corresponda con la categora requerida y no est ocupada en la fecha de comienzo del proyecto. La empresa tambin cuenta con la Lista de Grupos de Proyecto que registra todos los grupos asociados a los distintos proyectos en desarrollo; cada grupo de proyecto se describe con el cdigo del proyecto que desarrolla, su jefe de proyecto y equipo (lista de identificaciones de programadores). Como resultado del proceso de asignacin se eliminan de la Lista de Proyectos Pendientes de Asignacin aquellos que ya han conseguido grupo, y se dejan en ella los dems. Los empleados que sean asignados a algn proyecto vern su ocupacin modificada por lo que habr que actualizar la Lista de Personal; tambin habr que actualizar la Lista de Grupos de Proyecto con los nuevos proyectos asignados.

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Escribir la interfaz de operaciones para el mdulo que implemente el objeto


ListaGruposProyecto.

4. Implementar el mtodo asignarProyectos que gestiona la asignacin de grupo a los


nuevos proyectos aceptados por la empresa (proceso descrito en los prrafos anteriores). Se deben declarar todas las operaciones que se utilicen, indicando el mdulo en que deberan ir esas declaraciones.

18. Asignacin ordenadores del CC


Se va a desarrollar una aplicacin que gestionar los accesos a los ordenadores de un centro de clculo. En el centro de clculo existe un conjunto de ordenadores. Cada ordenador del centro de clculo se caracteriza por su identificador, modelo, sistema operativo, la lista de usuarios autorizados y una lista con los accesos diarios. La aplicacin dispondr de un censo de usuarios en el que estn todos los usuarios de todos los ordenadores. La informacin de un usuario es su nombre de cuenta, palabra clave, prioridad (1, 2 3) y nmero de horas de utilizacin acumuladas. La aplicacin mantiene un Registro General de Accesos que contiene los datos relativos a todos accesos de los usuarios a los ordenadores. Un acceso se describe con los siguientes datos: usuario, ordenador, hora de comienzo y hora de finalizacin. Adems la aplicacin llevar la cuenta de las horas que los usuarios utilizan el ordenador. Se pide: 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las operaciones esenciales para la resolucin de este ejercicio (ver punto 4). Representar cada clase utilizando el formalismo UML. 2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las clases SOLAMENTE su nombre. 3. Elegir una de las MAE e implementar las operaciones que permiten su tratamiento como un objeto nico. (NO hace falta que implementes las otras operaciones de la MAE). 4. Implementar el mtodo actualizacinDiaria asociado al objeto ordenador que se ejecutar al final de cada da actualizando el Registro General de Accesos con los
12

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

accesos diarios del ordenador y actualizando donde corresponda el nmero de horas de utilizacin acumuladas de cada usuario.

19. Gestin de la agenda


Una empresa quiere proporcionar algn tipo de ayuda para la gestin de la agenda de sus empleados. Para ello, dispone de una relacin de todos los empleados de la empresa, cada uno de los cuales se caracteriza por su DNI, su nombre y su agenda anual. La agenda contiene la informacin sobre la ocupacin diaria correspondiente a todo el ao. Para cada da de la agenda se indica: la fecha, da de la semana y la lista de actividades a realizar. Una actividad incluye la siguiente informacin: hora de comienzo, hora de finalizacin, descripcin y la lista de otras personas de la empresa implicadas en la actividad. A partir de esta informacin, se desea realizar una aplicacin para obtener lo que vamos a denominar el panel de ocupacin de un grupo de empleados (lista de DNIs de empleados) Este panel resume sus agendas, representando la lista de intervalos ocupados y libres del grupo entre dos fechas. Un intervalo representa una hora de una jornada laboral (entre las 8:00 y las 16:00h) con su correspondiente indicacin de ocupado o libre, considerndose que un intervalo est libre cuando ningn empleado del grupo tiene una actividad asociada en l. Se pide: 1. Identificar los objetos (MAE y TAD) de la aplicacin. Representar por separado cada clase con el formalismo UML indicando cules son sus atributos (con su tipo) y las operaciones esenciales para la resolucin de este ejercicio (ver punto 3). 2. Dibujar el diagrama UML con todas las clases reflejando las relaciones entre ellas. Aqu poner en las clases SOLAMENTE su nombre. 3. Implementar en JAVA el mtodo que construye el panel de ocupacin de un grupo de empleados entre dos fechas.

20. Ayuda a la matrcula


Se quiere crear un sistema de apoyo a la eleccin de asignaturas para la matriculacin de alumnos en el plan nuevo de la Ingeniera de Informtica. Segn ya conoces, el plan nuevo elimina la idea clsica de curso y permite al alumno componer su curriculum de acuerdo a sus preferencias o necesidades. Sin embargo, la libertad que se dispone para elegir asignaturas viene restringida, entre otras cosas, por los prer-requisitos definidos en cada asignatura: el alumno slo se podr matricular de una asignatura concreta cuando haya aprobado todas sus asignaturas pre-requisito. Por otro lado, el plan de estudios est organizado alrededor de una serie de perfiles formativos. Cada perfil est formado por un conjunto de asignaturas relacionadas las cuales definen una determinada especialidad de estudios, de modo que al finalizar sus estudios, el alumno mostrar la especialidad de su perfil en su expediente (si es que existe tal especializacin). La Facultad dispone de la siguiente informacin: Archivo de los expedientes de todos lo alumnos. Cada expediente incluye, adems de otra informacin no relevante, la identificacin del alumno (DNI), su perfil (en el caso de que est definido), y las asignaturas de las que se matricul alguna vez con su ltima nota y nmero de convocatorias consumidas: DN 1234567890 Perfil PF2 Cdigo asignatura PB ED
13

Nmero Conv 1 3

Nota conv 6.5 4.0

PROGRAMACIN MODULAR

Diseo Orientado a Objetos Ejercicios DOO - 1

...... 3456782344

.....

...... 2345678900 ......

PF1 .....

...... PB ED ED ..... ..... ......

1 1 1 ...... ......

6.5 7.0 7.0

Informacin de las asignaturas del plan nuevo y sus pre-requisitos. Para cada asignatura del plan se incluye su cdigo y nombre, y la relacin de todas sus asignaturas pre-requisito: Cod-Asig. ...... PB ED PM .......... SBC ..... TAIA Asignatura Programacin Bsica Estructuras de Datos Programacin Modular Sistemas Basados en el Conocimiento Tcnicas Avanzadas de IA Pre-requisitos

PB PB, ED IA1 IA1, PF

Informacin de los perfiles formativos. Cada perfil incluye: el nombre de la especialidad, su cdigo y el conjunto de asignaturas que lo forman. Perfil Formativo Cod Asignaturas ...... Inteligencia Artificial PF3 IA1, SBC, TAIA Ingeniera del Software PF2 PB, ED, PM, IS Arquitectura de Computadores PF4 ................ ............. Con esta informacin tenis que construir un programa AyudaMatrcula que utilizarn los alumnos para facilitar la eleccin de asignaturas durante el proceso de matrcula. El programa tendr las siguientes funciones. Por una parte, a partir del DNI del alumno: mostrar su expediente (asignaturas de las que se ha matriculado alguna vez con sus notas y convocatorias consumidas). Adems, aconsejar para su matriculacin: en primer lugar las asignaturas que consten como suspendidas en el expediente; en segundo lugar las asignaturas correspondientes a su perfil de las que no se haya matriculado nunca y que tengan cumplidos sus pre-requisitos. Si no tiene perfil definido, mostrar todas aquellas asignaturas cuyos pre-requisitos se cumplen segn el expediente.

Se pide (justificando tus decisiones): 1. Identificar los objetos (MAE y TAD), indicando cules son sus atributos (con su tipo) y las
operaciones esenciales para la resolucin de este ejercicio. Representar cada clase utilizando el formalismo UML.

2. Dibujar el diagrama UML reflejando las dependencias entre las clases. Aqu poned en las cajas
SOLAMENTE el nombre de la clase.

3. Elegir una de las MAE e implementar las operaciones que permiten su tratamiento como un
objeto nico. (NO hace falta que implementes las otras operaciones de la MAE).

4. Implementar la operacin ayudaMatrcula.

14

Você também pode gostar