Está en la página 1de 19

Coordinacin del rea de Computacin

Propiedad que permite compartir informacin entre dos clases, su objetivo es evitar la redundancia. Surge, ya que con frecuencia en el comportamiento de los objetos existen atributos y mtodos que son comunes a diferentes objetos. Ejemplo: Lavadoras, Pulidoras, Neveras, Microondas, Tostadoras, Planchas, etc. son todos ELECTRODOMESTICOS. Ellos comparten algunas caractersticas comunes.

Segn lo anterior, deberamos crear una clase base llamada Electrodomestico.h, y su correspondiente Electrodomestico.cpp

Coordinacin del rea de Computacin

Suponga ahora que haremos un proyecto que trata de lavadoras... Qu hacemos? Creamos la carpeta para el proyecto y copiamos all Electrodomestico.h y Electrodomestico.cpp Si hacemos otro proyecto que trata de microondas... Qu hacemos? Creamos otra carpeta para ese proyecto y copiamos all Electrodomestico.h y Electrodomestico.cpp As lo habamos hecho hasta ahora... Pero no estbamos usando la misma copia de la clase Electrodomestico... La estbamos duplicando... Esto trae al menos un inconveniente mayor...

INCONVENIENTE: si modificamos una copia Electrodomestico, las otras no se estn modificando!!!

de

Coordinacin del rea de Computacin

SOLUCIN: colocar las clases genricas (libreras con una clase base) en una carpeta comn a todos los proyectos... Cada proyecto (todos los que hagan referencia a la clase base), apuntarn a la misma carpeta de libreras, permitiendo hacer modificaciones centralizadas...

Cuando modifique alguna librera centralizada, todos los proyectos que las usan podrn acceder a tales cambios, pero se har cada cambio SLO 1 VEZ !

Coordinacin del rea de Computacin

Su Pendrive
Carpeta X Carpeta Y 1- El pendrive es un dispositivo de trasbordo de datos... NO DEBE PROGRAMAR AC!!!

Mis Documentos o C:\


Carpeta A Carpeta B

:::::::::::
20456987

2- Esta es la carpeta de Programacin en su pendrive.


Pngale su cdula (slo nmeros, sin puntos ni letras)

:::::::::::
20456987

_LibsGenericas Proyecto-XYZ Proyecto-ABC Proyecto-123

3- La copia al computador del laboratorio o a su equipo personal CADA VEZ QUE


CAMBIE DE LUGAR DE TRABAJO

_LibsGenericas Proyecto-XYZ Proyecto-ABC

:::::::::::
Proyecto-OTRO

4- Cuando termine de trabajar, debe volver a copiar la carpeta a su pendrive

Proyecto-123

:::::::::::
Proyecto-OTRO

Coordinacin del rea de Computacin

Gracias a la POO y la herencia: Cada nuevo cambio a una librera no afecta a los proyectos anteriores que las usan. Si quiere actualizar los proyectos anteriores con los nuevos cambios, slo debe recompilar cada proyecto que use la librera.

Cuando recompila, cada proyecto ya tiene acceso a los cambios incorporados a la clase base.
En situaciones complejas, es posible que algn cambio en una librera pueda afectar a los proyectos preexistentes, pero incluso frente a esto existen mecanismos que facilitan la generalizacin, como por ejemplo la sobrecarga de mtodos.

Coordinacin del rea de Computacin

En DevC++, siendo ste un entorno de desarrollo (IDE), as como en cualquier otro, es posible configurarlo de manera que entienda la situacin anterior. Es decir, colocaremos en una carpeta central todas las clases base y cada nuevo proyecto las encontrar gracias a que el IDE (DevC++, u otro) se configur para que las busque all.
La carpeta 20456987 la ubiqu en C:\ (el directorio raz del disco duro)... Tambin podra ser en Mis Documentos... Observe que la carpeta _LibsGenericas es comn a todos los proyectos

Coordinacin del rea de Computacin

La opcin Herramientas / Opciones del compilador / Directorios / Cabeceras C++ permite indicar la carpeta donde estarn todas mis libreras

Cada vez que Ud. compile sus programas, DevC++ buscar cualquier clase desconocida en sta, su propia carpeta de libreras

Coordinacin del rea de Computacin

La herencia es una propiedad MUY PODEROSA de la programacin orientada a objetos. Quiz en principio parezca complejo todo esto de la generalizacin, y todo lo que hay que hacer para implementarlo, pero una vez asimilado, podrn Uds. Aplicar reusabilidad intensivamente, y reducir el tiempo de desarrollo de proyectos. Es imprescindible tener bien claro todo lo referente a manejo de carpetas y archivos, ya que si no tiene cuidado, crear los archivos del proyecto en carpetas dispersas y luego perder su trabajo.

Como recomendacin preliminar, cada vez que cree un nuevo archivo para el proyecto, asegrese de grabarlo de inmediato y en la carpeta correspondiente.

Coordinacin del rea de Computacin

Como poltica de ayuda a los empleados de la empresa "Inversiones Las Maras, C.A.", se les ofrecen prstamos bajo las siguientes condiciones: El lapso para cancelar el prstamo es 3 aos para las mujeres, mientras que para los hombres es de 2 aos; A las mujeres menores de 60 aos, se les retiene un 15% del monto del prstamo y un 10% para las que tienen 60 aos o ms; A los hombres menores de 65 aos, se les retiene un 20% y un 15% de 65 aos en adelante. Realice un programa que muestre: La cdula, el nombre y el monto a cancelar mensual de cada uno de los empleados, El monto total en prstamos que la empresa ha ofrecido a sus trabajadores y La cdula del empleado que cancela el mayor monto mensual

Coordinacin del rea de Computacin

Como poltica de ayuda a los empleados de la empresa "Inversiones Las Maras, C.A.", se les ofrecen prstamos bajo las siguientes condiciones: El lapso para cancelar el prstamo es 3 aos para las mujeres, mientras que para los hombres es de 2 aos; A las mujeres menores de 60 aos, se les retiene un 15% del monto del prstamo y un 10% para las que tienen 60 aos o ms; A los hombres menores de 65 aos, se les retiene un 20% y un 15% de 65 aos en adelante. Realice un programa que muestre: La cdula, el nombre y el monto de la cuota a cancelar mensualmente de cada uno de los empleados, El monto total en prstamos que la empresa ha ofrecido a sus trabajadores y La cdula del empleado que cancela el mayor monto de cuota mensual

Coordinacin del rea de Computacin

Datos de Entrada por Empleado

Salidas por Empleado

Cdula

Nombre

Sexo

Edad

Monto Prestamo 40.000,00

Cuota

10.311.535

Ana

65

1.222,22

Mayor cuota mensual

20.672.883
26.642.654 16.993.456

Luis
Jos Rosa

M
M F

68
39 20

10.000,00
20.000,00 10.000,00

479,17
1.000,00 319,44

montosprestamos
Salidas por la Empresa:
Monto Total Prestado por la empresa a sus trabajadores: 80.000,00 Cdula del Empleado con mayor cuota mensual : 10.311.535

Coordinacin del rea de Computacin

MPersona -cedula: long -nombre: string -sexo: char -edad: int +MPersona() +SetCedula(ced:long):void +SetNombre(nomb:string):void +SetSexo(sex:char):void +SetEdad(ed:int):void +GetCedula():long +GetNombre():string +GetSexo():char +GetEdad():int

Coordinacin del rea de Computacin

MPersona
-cedula: long -nombre: string -sexo: char -edad: int +MPersona() +SetCedula(ced:long):void +SetNombre(nomb:string):void +SetSexo(sex:char):void +SetEdad(ed:int):void +GetCedula():long +GetNombre():string +GetSexo():char +GetEdad():int

MEmpleado -mont_prest: floatt

+MEmpleado() +SetMontPrest(mon:float):void +GetMontPrest():float +DetCuota():float

Coordinacin del rea de Computacin

MEmpresa

-tot_prest: float -mayor_cuota: float -ced_may: long


+MEmpresa() +GetCedMay():long +GetTotPrest ():float +ProcesarEmpleados(MEmpleado obj_emp):void

Coordinacin del rea de Computacin

MEmpresa -tot_prest: float -mayor_cuota: float -ced_may: long


+MEmpresa() +GetCedMay():long +GetTotPrest ():float +ProcesarEmpleados(MEmpleado obj_emp):void

MEmpleado -mont_prest: floatt

+MEmpleado() +SetMontPrest(mon:float):void +GetMontPrest():float +DetCuota():float

Coordinacin del rea de Computacin

VGeneral

+VGeneral() +Pausa():void +Limpiar():void +SeleccionarRespuesta(msg:string):int +ImprimirEncabezado(msj1:string,msj2:stri ng):void +LeerLong(msg:string):long +LeerString(msg:string):string +LeerFloat(msg:string):float +LeerInt(msg:string):int +LeerChar(msg:string):char +ImprimirFloat(num:float):void

VEmpleado

VEmpresa

+VEmpleado () +ImprimirEmpleado (ced:long,nombre:string, monto_cuota:float):void

+ VEmpresa() +ImprimirEmpresa (tot_prest:float,ced:long):void

Coordinacin del rea de Computacin

Controlador -memp: MEmpleado -mempre:MEmpresa -vemp:VEmpleado -vempre:VEmpresa +Controlador() +ProcesarEmpresa():void

Coordinacin del rea de Computacin


MPersona
-cedula: long -nombre: string -sexo: char -edad: int
+MPersona() +SetCedula(ced:long):void +SetNombre(nomb:string):void +SetSexo(sex:char):void +SetEdad(ed:int):void +GetCedula():long +GetNombre():string +GetSexo():char +GetEdad():int

VGeneral

+VGeneral() +Pausa():void +Limpiar():void +SeleccionarRespuesta(msg:string):int +ImprimirEncabezado(msj1:string,msj2:string):void +LeerLong(msg:string):long +LeerString(msg:string):string +LeerFloat(msg:string):float +LeerInt(msg:string):int +LeerChar(msg:string):char +ImprimirFloat(num:float):void

MEmpleado -mont_prest: floatt +MEmpleado() +SetMontPrest(mon:float):void +GetMontPrest():float +DetCuota():float VEmpleado VEmpresa

+VEmpleado () +ImprimirEmpleado (ced:long,nombre:string, monto_cuota:float):void

+ VEmpresa() +ImprimirEmpresa (tot_prest:float,ced:long):void

MEmpresa -tot_prest: float -mayor_cuota: float -ced_may: long


+MEmpresa() +GetCedMay():long +GetTotPrest ():float +ProcesarEmpleados(MEmpleado obj_emp):void

Controlador -memp: MEmpleado -mempre:MEmpresa -vemp:VEmpleado -vempre:VEmpresa +Controlador() +ProcesarEmpresa():void

Coordinacin del rea de Computacin