Más ejercicios POO

De WikiEducator
Saltar a: navegación, buscar


Crea una clase Hora con atributos para las horas, los minutos y los segundos de la hora

Incluye, al menos, los siguientes métodos:

  • Constructor predeterminado con el 00:00:00 como hora por defecto. En el constructor se podrán indicar horas, minutos y segundos.
  • leer(): pedirá al usuario las horas, los minutos y los segundos.
  • valida(): comprobará si la hora es correcta; si no lo es la ajustará. Será un método auxiliar (privado) que se llamará en el constructor parametrizado y en leer().
  • a_segundos(): devolverá el número de segundos transcurridos desde la medianoche.
  • de_segundos(int): hará que la hora sea la correspondiente a haber transcurrido desde la medianoche los segundos que se indiquen.
  • segundos_desde(Hora): devolverá el número de segundos entre la hora y la proporcionada.
  • siguiente(): pasará al segundo siguiente.
  • anterior(): pasará al segundo anterior.
  • copia(): devolverá un clon de la hora.

Además (métodos especiales):

  • print: mostrará la hora (07:03:21).
  • igual_que(Hora): indica si la hora es la misma que la proporcionada.
  • menor_que(Hora): indica si la hora es anterior a la proporcionada.
  • mayor_que(Hora): indica si la hora es posterior a la proporcionada.

Haz un dibujo (UML) de la clase con dia.

  • Crea los tests correspondientes para demostrar que el programa funciona bien.


Clase Empleado

Crea una clase Empleado que modele la información que una empresa mantiene sobre cada empleado: NIF, sueldo base, pago por hora extra, horas extra realizadas en el mes, tipo (porcentaje) de IRPF, casado o no y número de hijos.

Al crear un empleado se podrá proporcionar, si se quiere, el número de DNI.

Además los objetos deberán:

  • devolver el complemento correspondiente a las horas extra realizadas.
  • devolver el sueldo bruto.
  • devolver las retenciones (IRPF) a partir del tipo, teniendo en cuenta que el porcentaje de retención que hay que aplicar es el tipo menos 2 puntos si el empleado está casado y menos 1 punto por cada hijo que tenga; el porcentaje se aplica sobre todo el sueldo bruto.
  • print visualiza la información básica del empleado (sueldo base, complemento por horas extra, sueldo bruto, retención de IRPF y sueldo neto).
  • un método especial imprime_todo() muestra toda la información del empleado.
  • copia(): clona el objeto.