BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN CURSO DE PROGRAMACIÓN II – OTOÑO 2015
TAREA 2: Semana del 21 al 25 de septiembre de 2015
Propone: Dr. Mario Rossainz López
Para cada uno de los siguientes problemas realice lo siguiente:
1. La especificación lógica del TDA (cabecera, definición y operaciones).
2. El diagrama de clases (a detalle) correspondiente en UML
3. La implementación correspondiente en JAVA junto con el programa principal que
muestre el uso del TDA
PROBLEMA 1: Escriba una clase padre llamada Obrero y dos clases hijas: ObreroPorHora y
ObreroAsalariado. Cualquier obrero tiene un nombre y un sueldo. Escriba un método
calculaPago(int hrs) que calcule el pago semanal de cualquier obrero. Un ObreroPorHora
le pagan por hora/trabajo de forma que el cálculo de su salario es el producto del número
de horas que trabajó en una semana por el sueldo hora/trabajo si el número de horas no
es mayor que 40, pero si el número de horas es mayor que 40, las horas extras de trabajo
se le pagan al doble. El sueldo semanal del ObreroAsalariado se calcula de igual forma
que en el caso del ObreroPorHora, sólo que las horas extras se le pagan (aquellas que
excedan a 40) igual que una hora normal de trabajo. Proteja las variables de cada clase de
forma que sólo puedan ser accesadas por funciones públicas y utilice el constructor de la
clase padre en los constructores de las clases hijas para reutilizar código. Implemente el
programa principal y pruebe la aplicación.
PROBLEMA 2: Un reloj digital consta de dos paneles digitales (pantallas), uno para horas y
otro para minutos. Cada panel digital contiene un valor entre cero y el límite superior (23
y 59). El usuario del programa debe poder incrementar el reloj, incrementando el panel de
minutos y cuando sea necesario el panel de horas. El usuario también ha de poder poner
en hora el reloj a un valor dado. Por último, el usuario puede pedir al reloj que muestre su
valor mostrando el valor de cada panel; es decir, debe tener la posibilidad de acceder a
visualizar hora. Use dicho reloj digital para implementar un cronómetro donde además
pueda cronometrar el tiempo de alguna actividad iniciando, parando y volviendo a
reiniciar el cronómetro. Finalmente utilice dicho cronómetro para cronometrar el tiempo
que tarda una persona en realizar un cuestionario de 10 preguntas de opción múltiple
relativo al tema de “Programación Orientada a Objetos”. Una vez que el usuario termina
el cuestionario el sistema deberá informar de su calificación y cuanto tiempo tardó en
responderlo.
PROBLEMA 3: Una caja fuerte se utiliza para guardar cosas de valor. Los valores que un
usuario puede guardar son: dinero (en denominaciones de 20, 50 y 100 dolares) y joyas
que pueden ser relojes y collares. Para abrir o cerrar la caja fuerte se utiliza un cerrojo con
combinación que tiene las siguientes propiedades básicas: la combinación (una secuencia
de tres números) está oculta; el cerrojo se puede abrir proporcionando la combinación; y
esta se puede cambiar, pero solamente por alguien que conoce la combinación actual.
FECHA DE ENTREGA
Martes 29 de septiembre de 2015
FORMA DE ENTREGA
En forma digital enviado por correo electrónico en un archivo .ZIP. Cada ejercicio deberá
estar bien organizado dentro de su carpeta correspondiente la cual deberá tener como
contenido: El documento de la especificación lógica, el diagrama de clases en formato PDF
o como imagen y el o los programas correspondientes (tanto código fuente como código
compilado).
NOTA:
Esta tarea podrá ser realizada en equipos máximo de 5 personas y deberá enviarse un
correo por equipo con la lista de nombres y matrículas que lo integran.