ProblemarioProgramaciónOO

4
Universidad Nacional Experimental de Guayana. Coordinación de Ingeniería en Informática. Asignatura: Programación II. Profesor: Ing. Ronald Pérez. Ejercicios de Analisis, Diseño y Programación 1. Diseñe las clases necesarias para modelar una Valida del 5 y 6, donde la valida está compuesta por cierto números de carreras y en cada carrera participan 6 caballos. Deberá contemplar la creación de cada carrera con sus correspondientes caballos, además de dar la salida de los caballos, donde el caballo ganador será el que se genere en forma aleatoria. 2. Diseñe las clases necesarias para modelar una biblioteca, donde existan libros de distintos tipos. Se podrá retirar un libro en calidad de préstamo, comprar libros, incorporar nuevos libros y desincorporar libros de la biblioteca. 3. Diseñe las clases necesarias para modelar un estacionamiento de vehículos, donde los vehículos pueden entrar y salir las 24 horas del durante todo el año. Asuma que el estacionamiento tiene un máximo de 50 puestos. 4. Responda las siguientes preguntas en forma escrita. a) ¿Qué es herencia? b) Explique cuál es la razón por la cual los atributos de una clase deben declararse private y los métodos public. c) ¿Qué diferencia hay entre atributos private y atributos protected? d) ¿Cuál es la diferencia entre clase y objeto? e) ¿Cuál es la diferencia entre agregación y generalización f) ¿Cuál es la utilidad de crear un método SET en una clase? g) ¿Cuál es la utilidad de la sobrecarga de métodos? Escriba un ejemplo. h) ¿Qué es agregación? i) ¿Qué es generalización? 5. Se desea crear una aplicación para representar la fauna de un país. Se representaran los mamíferos, peces y aves. De los mamíferos se consideraran si viven en el agua o en la tierra. Además de proveer la flexibilidad de poder expandir dicha lista de animales para mejoras de la aplicación a futuro. Además el sistema deberá guardar un historial de los primeros 100 animales clasificados. Realizar el diagrama de clases con las relaciones necesarias para poder crear dicha aplicación. Deberá especificar el tipo de relación entre las clases.

Transcript of ProblemarioProgramaciónOO

Page 1: ProblemarioProgramaciónOO

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

Ejercicios de Analisis, Diseño y Programación

1. Diseñe las clases necesarias para modelar una Valida del 5 y 6, donde la valida está

compuesta por cierto números de carreras y en cada carrera participan 6 caballos. Deberá

contemplar la creación de cada carrera con sus correspondientes caballos, además de dar la

salida de los caballos, donde el caballo ganador será el que se genere en forma aleatoria.

2. Diseñe las clases necesarias para modelar una biblioteca, donde existan libros de distintos

tipos. Se podrá retirar un libro en calidad de préstamo, comprar libros, incorporar nuevos

libros y desincorporar libros de la biblioteca.

3. Diseñe las clases necesarias para modelar un estacionamiento de vehículos, donde los

vehículos pueden entrar y salir las 24 horas del durante todo el año. Asuma que el

estacionamiento tiene un máximo de 50 puestos.

4. Responda las siguientes preguntas en forma escrita.

a) ¿Qué es herencia?

b) Explique cuál es la razón por la cual los atributos de una clase deben

declararse private y los métodos public.

c) ¿Qué diferencia hay entre atributos private y atributos protected?

d) ¿Cuál es la diferencia entre clase y objeto?

e) ¿Cuál es la diferencia entre agregación y generalización

f) ¿Cuál es la utilidad de crear un método SET en una clase?

g) ¿Cuál es la utilidad de la sobrecarga de métodos? Escriba un ejemplo.

h) ¿Qué es agregación?

i) ¿Qué es generalización?

5. Se desea crear una aplicación para representar la fauna de un país. Se representaran los

mamíferos, peces y aves. De los mamíferos se consideraran si viven en el agua o en la tierra.

Además de proveer la flexibilidad de poder expandir dicha lista de animales para mejoras de

la aplicación a futuro. Además el sistema deberá guardar un historial de los primeros 100

animales clasificados. Realizar el diagrama de clases con las relaciones necesarias para poder

crear dicha aplicación. Deberá especificar el tipo de relación entre las clases.

Page 2: ProblemarioProgramaciónOO

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

6. Se desea crear una aplicación para representar el funcionamiento de una Biblioteca. La

biblioteca manejara libros, medios audiovisuales y publicaciones periódicas. Entre los

medios audiovisuales se tiene videos y música. Además de proveer la flexibilidad de poder

expandir dicha lista de elementos de la biblioteca para mejoras de la aplicación a futuro.

Además el sistema deberá guardar un historial de los elementos almacenados en la Biblioteca

(asuma un máximo de 100). Realizar el diagrama de clases con las relaciones necesarias para

poder crear dicha aplicación. Deberá especificar el tipo de relación entre las clases.

7. Se desea crear una aplicación para dibujar figuras geométricas. Con la aplicación se podrá

dibujar: cuadriláteros, círculos y triángulos. Entre los cuadriláteros deberá representar

cuadrados y rectángulos. Además de proveer la flexibilidad de poder expandir dicha lista de

figuras geométricas para mejoras de la aplicación a futuro. El sistema deberá guardar un

historial de las primeras 50 figuras creadas .Realizar el diagrama de clases con las relaciones

necesarias para poder crear dicha aplicación. Deberá especificar el tipo de relación entre las

clases.

8. Diseñe un diagrama de objetos para llevar control de las solicitudes de las canciones de su

preferencia, hechas por los oyentes a las estaciones de radio. Se debe contemplar en el

diseño, un registro de los usuarios de la estación de radio, histórico de solicitudes hechas por

ellos, registro de canciones de la estación, locutores de la estación y programación de la

misma.

9. La Universidad Metropolitana desea elaborar un sistema de reservaciones de espacio físico.

La universidad está formada por Aulas, Laboratorios, y Auditorios. Por otra parte las Aulas

pueden ser Aulas Sencillas o Aulas Multimedios. El sistema debe contener información

sobre: identificación, capacidad y ubicación de cada espacio físico Igualmente se deberá

tener información acerca de las reservaciones de las cuales se conocerá: fecha y hora de

reservación, identificación del espacio reservado y nombre de la persona que reserva. Se

quiere además mantener un registro con cada una de las reservaciones realizadas. Elabore el

diagrama de clases para representar el nuevo sistema.

10. La compañía Simco ha diseñado un nuevo disco duro con capacidad superior a los vistos

hasta ahora. La programación para manipular el disco duro, ha sido diseñada en forma

orientada a objetos, es decir, visualizando el disco duro como un objeto. El disco estará

constituido por directorios, donde cada directorio contiene una serie de objetos archivos.

Adicionalmente se está diseñando el sistema operativo que manejará el disco, la

permisología del disco, se controla por usuario, los cuales se definen por grupos donde cada

grupo tiene accesos a diferentes directorios. Como parte del sistema operativo, se desea

mantener una historia (log) de todos los accesos realizados al disco, los directorios y los

archivos. Elabore el diagrama de clase que permita representar el nuevo disco, junto con el

sistema operativo que la compañía Simco desea implementar.

Page 3: ProblemarioProgramaciónOO

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

11. Definir una clase Persona que contenga información de propósito general común a todas las

personas (nombre, dirección, fecha de nacimiento, sexo, etc.) diseñar una jerarquía de clases

que contemple las siguientes clases: estudiante, empleado, empleado_estudiante.

12. Implementar una jerarquía Librería que tenga al menos una docena de clases. Considérese

una librería que tenga colecciones de libros de literatura, humanidades, tecnología, etc.

13. Implementar la clase Automóvil dentro de una jerarquía de herencia múltiple. Considere que,

además de ser un vehículo, un automóvil es también una comodidad, un símbolo de estado

social, un modo de transporte, etc. Automóvil debe tener al menos tres clase base y al menos

tres clases derivadas.

14. Crear una clase llamada hora que tenga miembros de datos separados de tipo int para horas,

minutos y segundos. Un constructor inicializará este dato a 0, y otro inicializará a valores

fijos. Una función miembro deberá visualizar la hora en formato 11:59:59. Otra función

miembro sumará dos objetos de tipo hora pasados como argumentos. Una función principal

main() crea dos objetos inicializados y uno que no está inicializado. Sumar los dos valores

inicializados y dejar el resultado en el objeto no inicializado. Por último visualizar el valor

resultante.

15. Crear una clase llamada empleado que contenga como miembro dato el nombre y el número

de empleado, y como funciones miembro leerdatos() y verdatos() que lean los valores del

teclado y los visualice en pantalla, respectivamente. Escribir un programa que utilice la clase,

creando un array de tipo empleado y luego llenándolo con datos correspondiente a 50

empleados. Una vez rellenado el arrays, visualizar los datos de todos los empleados.

16. Realizar un programa que calcule la distancia media correspondiente a 100 distancias entre

ciudades dadas cada una en kilómetros y metros.

17. Definir una clase Racional que represente a números racionales. Los miembros privados

serán el numerador y el denominador de la fracción, y en la parte pública se debe disponer al

menos de las siguientes funciones miembros: asignar, convertir, invertir, imprimir, que

realizarán las funciones de: asignar los valores de los parámetros y numerador y

denominador respectivamente (por ejemplo, 22/7); convertir a decimal el decimal el número

racional (por ejemplo, 3.14286); calcular el inverso de la fracción (por ejemplo, 77/22) y por

último, visualizar la fracción (por ejemplo, ha de ver 22/7, 6/15, etc.)

18. Implementar la clase Punto que represente a puntos de tres dimensiones (x, y, z). Incluir un

constructor por defecto, un constructor de copia, función negar que transforme el punto en su

opuesto, una función norma que devuelva la distancia al punto desde el origen (0, 0, 0) y una

función visualizar.

Page 4: ProblemarioProgramaciónOO

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

19. Implementar la clase Hora. Cada objeto de esta clase representa una hora específica de un

día, almacenado en horas, minutos y segundos como entero. Incluir un constructor, funciones

de acceso, una función avanzar() para avanzar(adelantar)la hora actual de un objeto

existente, una función poner_a_cero para poner a cero la hora actual de un objeto existente y

una función visualizar.

20. Implementar la clase Cadena. Cada objeto de la clase representa una cadena de caracteres.

Los miembros datos son la longitud de la cadena y la cadena de caracteres actual. Además,

se debe añadir constructores, destructor, funciones de acceso y función de visualizar, así

como incluir una función carácter que devuelva el carácter de la cadena representado por el

parámetro i que representa el índice o lugar del carácter en la cadena.