You are on page 1of 4

UNIVERSIDAD TECNOLOGICA DE PANAMA

FACULTAD DE INGENIERIA DE SISTEMAS COMPUTACIONALES


GUIA DEL ESTUDIANTE

Nombre de la Asignatura: Herramientas de Programacin


Captulo: VI. Herencia
Ttulo de la Gua: Trabajo Grupal
Nmero de Gua: 1.1
Docente responsable: Ludia B. Gmez. De Melndez
Fecha: Primer Semestre de 2017

OBJETIVOS:

Aplicar los conceptos de herencia y polimorfismo en la solucin del problema.


Desarrollar una aplicacin por consola que maneje los conceptos de Herencia y
polimorfismo con un 100% de efectividad.
Utilizar JOptionPane para desplegar sus entradas y salidas.
Manejar excepciones, para validar los datos de entrada
FECHA DE ENTREGA: 19 DE JUNIO DE 2017.

METODOLOGIA.
1. Formen grupos de 3.
2. Debe ser entregado en la fecha asignada.

ENUNCIADO.

Desarrolle una aplicacin por consola para administrar la nmina de la Empresa Qumicos
S.A. (clculo de sueldos y el clculo del pago total de la nmina (suma de todos los
sueldos)). La aplicacin deber realizar lo siguiente:

Capturar la informacin de varios empleados de la empresa dependiendo del tipo de


empleado. Todos los empleados tienen en comn la informacin siguiente: Nombre
completo, direccin, telfono y nombre del puesto.

La empresa maneja varios tipos de empleados y dependiendo del mismo se calcula su


sueldo:

Los empleados de planta, adicional a los datos del empleado se guardan su antigedad. Su
sueldo es fijo mensual por 40 horas de trabajo.

Se maneja dos tipos de empleado de planta: administrativo y operativo. El empleado de


planta administrativo, recibe un bono adicional mensual correspondiente a un porcentaje
en las ganancias de la empresa.
El empleado de planta Operativo dado el riesgo de su trabajo, si trabaja mas de 40 horas,
las horas adicionales se le pagan como horas extras al doble que las horas normales.

Al pago total mensual de los empleados de planta se de debe restar el 5% de impuesto.

Existen otros tipos de empleados contratados por la empresa los empleados por destajo: su
sueldo se calcula en base al nmero de productos elaborados ese mes, cada producto
tiene el mismo costo. No paga impuestos adicionales y para el empleado por hora: su sueldo
se calcula en base a las horas trabajadas ese mes y cada hora se paga a una tarifa fija que
puede variar de mes en mes. No paga impuestos adicionales.

Se aplicacin deber poder visualizar los datos de los empleados, calcular su sueldo hasta
ese da y el clculo total de la nmina que debe pagar la empresa. Para el listado de la
nmina imprima nombre cedula puesto y salario. Al final imprima el total a pagar de la
empresa en nmina.

Ahora considerando el enunciado anterior, se le adjunta a esta asignacin el cdigo fuente


de parte de la aplicacin desarrollada. A la misma se le debe analizar primeramente y correr
para observar lo que la misma hace.

Luego de eso responda las siguientes preguntas

1. Elabore el diagrama de clase del problema


2. Se aplic correctamente la sobrecarga y la sobrescritura en el problema SI/NO y Por
qu.
3. Si su respuesta anterior fue NO, indique dnde y cmo.
4. Termine la implementacin y realice todas las validaciones pertinentes.
5. Elabore un cuadro como el siguiente, que describa como queda su aplicacin una vez
terminada, con respecto a los mecanismos manejados en la herencia y el
polimorfismo, sobre los atributos y mtodos manejados.

Cdigo Fuente del problema

import javax.swing.JOptionPane; class


Empleado {
protected String nombre;
protected String direc; protected
String telefono, nompuesto;
void asignar (String n,String d,String t , String no ){

2
nombre = n; direc = d; telefono = t; nompuesto =no ;
}}
class EmpleadoPlanta extends Empleado {

protected int anant; protected


int horast;
protected double tarifa;

void asignar (String n,String d,String t , String no ,int a ,int ho , double ta ){


asignar ( n, d, t , no); anant = a; horast = ho;
tarifa = ta;
}

public double calcularsalario(){


double salario ; salario = horast *
tarifa; salario = salario - salario *
0.05; return salario; } }

class Administrativo extends EmpleadoPlanta { protected


double bono;

void asignar (String n,String d,String t , String no ,int bo ){


asignar ( n, d, t , no);
bono = bo;}

public double calcularsalario(){ double


salario; salario = super.calcularsalario()+
bono;
return salario; } }

class Operativo extends EmpleadoPlanta {

void asignar (String n,String d,String t , String no ,int a ,int ho ,double ta ){


super.asignar ( n, d, t, no, a , ho , ta ) ; }

public double calcularsalario(){


double salario ;
if (horast> 40)
salario = super.calcularsalario() + horast-40 * 2*tarifa;
else
salario = super.calcularsalario();
return salario; } }

class EmpleadoporHora extends Empleado{


private int horasmes; private
double tarifafija;
void asignar (String n,String d,String t , String no ,int ho , int ta ){
asignar ( n, d, t , no); horasmes =
ho;
tarifafija = ta; } public double
calcularsalario(){
double salario; salario = horasmes *
tarifafija; return salario; } }

class EmpleadoporDestajo extends Empleado { private int numeroprod;


private double costo; void asignar (String n,String d,String t , String no ,int
num, int co ){
asignar ( n, d, t , no); numeroprod = num;
costo = co; }
public double calcularsalario(){
double salario; salario =
numeroprod * costo;
return salario; }
}

public class Nomina { public static void main(String[] args) {


String nom, direc; String telef,nomp; int
tipoemp, anti, hf, ht; String input=null;
double bono, tf, th ;
nomp = JOptionPane.showInputDialog("INGRESE Nombre del Empleado "); telef
=JOptionPane.showInputDialog("INGRESE el Telefono del Empleado "); direc =
JOptionPane.showInputDialog("INGRESE la direccion del Empleado ");
nomp = JOptionPane.showInputDialog("INGRESE Nombre del Puesto del Empleado ");
input = JOptionPane.showInputDialog("Escoja el tipo de Empleado a Procesar \n1.
EMPLEADODEPLANTA \n 2. EMPLEADO PORHORA \n3. EMPLEADO POR DESTEJO \n 4.
EMPLEADO ADMINISTRATIVO \n5. EMPLEADO OPERATIVO "); tipoemp =
Integer.parseInt(input) ;
if (tipoemp
== 5) {

input = JOptionPane.showInputDialog("INGRESE Aos de Antiguedad ");


anti = Integer.parseInt(input); input =
JOptionPane.showInputDialog("INGRESE HORAS TRABAJADAS ");
hf=Integer.parseInt (input);
input =
JOptionPane.showInputDialog("INGRESE TARIFAS POR HORAS"); tf =
Double.parseDouble(input); Operativo empe = new Operativo();
empe.asignar(nomp, direc, telef, nomp, anti, hf, tf); System.out.println ("
SALARIO="+empe.calcularsalario());} else
System.out.println ("FALTAN POR HACER"); } }

You might also like