Sie sind auf Seite 1von 3

Programacin II

Taller tema: Herencia y Polimorfismo

Lea cuidadosamente hasta entender el enunciado del taller, pueda que no encuentre lgica en
algunos datos, RECUERDE QUE se trata de un ejercicio para formarse en conocimiento, no es
necesario que sea un caso de la vida real.

CLASE BASE: EMPLEADO


Los atributos de la clase EMPLEADO son:
Cdigo: variable de tipo string,
Nombre: variable de tipo string,
Fecha de Nacimiento: es un arreglo int con 3 posiciones (da, mes, ao),
Salario Bsico: variable de tipo double.
Los mtodos de la clase EMPLEADO son:
void PonCedula (string), Este mtodo permite modificar el atributo Cdigo del objeto asociado al
mtodo.
void PonNombre (string), Este mtodo permite modificar el atributo Nombre del objeto asociado
al mtodo.
void PonFechaNacimiento (int *), Este mtodo permite modificar el atributo Fecha de Nacimiento
del objeto asociado al mtodo, recuerde que el parmetro de entrada se debe validar, da (1 31),
mes (1 12) ao (> 1900 && < Hoy) (Hoy debe ser una const definida que pueda ser cambiada en

el cdigo fuente en un solo lugar), existen algoritmos que validan fechas teniendo en cuenta los
diferentes meses y los aos bisiestos, haga uso de esos algoritmos.
void SalarioBasico (double), Este mtodo permite modificar el atributo Salario Bsico del objeto
asociado al mtodo, recuerde que el parmetro de entrada se debe validar, pues el dato a recibir
no puede ser menor que cero.
virtual void imprimir() const, Este mtodo va a ser polimorfo, va a estar en todas las clases, en la
clase EMPLEADO debe imprimir todos los atributos del objeto asociado al mtodo.
virtual double neto() const, Este mtodo va a ser polimorfo, va a estar en todas las clases, las
operaciones a realizar son diferentes para las tres clases. En la clase EMPLEADO este mtodo
retorna el Sueldo Bsico.
CLASE DERIVADA: ACADMICO
ACADMICO hereda de EMPLEADO, sus atributos y sus mtodos, adems va a tener otros dos
atributos que son:
Nivel de Estudio: variable de tipo char, se debe validar que los niveles son,
Bonificacin para tener en cuenta en el clculo del neto
T -> Tcnico o Tecnolgico
5 % del Salario Bsico
P -> Profesional
8 % del Salario Bsico
E -> Especialista
10 % del Salario Bsico
M -> Magster
20 % del Salario Bsico
D -> Doctor
30 % del Salario Bsico
Puntaje Investigacin: variable de tipo int, se debe validar que los puntajes son:

Desde 0 hasta 10 puntos -> No categorizado Investigador


Desde 10 hasta 100 puntos -> Investigador Junior
Desde 101 hasta 500 puntos -> Investigador Asociado
Ms de 501 puntos -> Investigador Senior

Bonificacin
# puntos * (0,01 * Salario Bsico)
# puntos * (0,03 * Salario Bsico)
# puntos * (0,05 * Salario Bsico)
# puntos * (0,08 * Salario Bsico)

Los mtodos de la clase ACADMICO son:


void PonNiveldeEstudio (char), Este mtodo permite modificar el atributo Nivel de Estudio del
objeto asociado al mtodo, recuerde que el parmetro de entrada se debe validar.
void PonPuntajeInvestigacion (char), Este mtodo permite modificar el atributo Puntaje
Investigacin del objeto asociado al mtodo, recuerde que el parmetro de entrada se debe
validar.
virtual void imprimir() const, Este mtodo es polimorfo y permite imprimir objetos de la clase
ACADMICO.
Virtual double neto() const, Este mtodo retorna el sueldo neto a pagar, que se calcula teniendo
en cuenta el Nivel de Estudio y el Tipo de Investigador as:
(Salario Bsico + Bonificacin por Nivel de Estudio + Bonificacin por Puntaje en Investigacin)* 0.89

CLASE DERIVADA: ADMINISTRATIVO


ADMINISTRATIVO hereda de EMPLEADO, sus atributos y sus mtodos, adems va a tener otro
atributo que es:
Cargo: variable de tipo char, se debe validar los cargos son:

D -> Directivo
J -> Jefe
A -> Auxiliar

Bonificacin para tener en cuenta en el clculo del neto


30 % del Salario Bsico
20 % del Salario Bsico
10 % del Salario Bsico

Los mtodos de la clase ADMINISTRATIVO son:


void PonCargo (char), Este mtodo permite modificar el atributo Cargo del objeto asociado al
mtodo, recuerde que el parmetro de entrada se debe validar.
virtual void imprimir() const, Este mtodo es polimorfo y permite imprimir objetos de la clase
ADMINISTRATIVO.
Virtual double neto() const, Este mtodo retorna el sueldo neto a pagar, que se calcula teniendo
en cuenta el Cargo as:
(Salario Bsico + Bonificacin por Cargo)* 0.89

CLASE DERIVADA: SERVICIOS


SERVICIOS hereda de EMPLEADO, sus atributos y sus mtodos, adems va a tener otro atributo
que es:
Horas Extras: variable de tipo float (o double si el compilador se lo exige por qu se va a operar
con el Salario Bsico), se debe validar que no sea negativo.
Los mtodos de la clase SERVICIOS son:
void PonHorasExtras (double), Este mtodo permite modificar el atributo Horas Extras del objeto
asociado al mtodo, recuerde que el parmetro de entrada se debe validar, no puede ser
negativo.
double baseHorasExtras(), Este mtodo retorna el valor base para calcular el monto a pagar por
Horas Extras y se calcula as: (Salario Bsico / 30 / 8)*1.20
virtual void imprimir() const, Este mtodo es polimorfo y permite imprimir objetos de la clase
SERVICIOS.
Virtual double neto() const, Este mtodo retorna el sueldo neto a pagar, que se calcula teniendo
en cuenta las Horas Extras as:
(Salario Bsico + ( Horas Extras * baseHorasExtras() ) ) * 0.89
NOTA: Usted debe hacer ADEMAS DE LOS ARCHIVOS ANTERIORES un archivo nomina.cpp donde realice un
programa que pruebe todas las clases anteriores, generando un programa int main(), que defina objetos
EMPLEADO, ACADMICO, ADMINISTRATIVO Y SERVICIOS que haga uso de los mtodos de la clase
EMPLEADO en todos los objetos, y tambin haga uso de los mtodos de las clases derivadas en los
objetos respectivos de cada clase.

Das könnte Ihnen auch gefallen