Em Plea Do
Em Plea Do
Em Plea Do
public abstract class Empleado { private String Nombre; private String apellidoPaterno; private String numeroSeguroSocial; // constructor public Empleado( String nombre,String ssn ) { Nombre = nombre; numeroSeguroSocial = ssn; } // establecer el nombre public void establecerNombre( String nombre ) { Nombre = nombre; } // devolver el nombre public String obtenerNombre() { return Nombre; } // establecer el nmero de seguro social public void establecerNumeroSeguroSocial( String numero ) { numeroSeguroSocial = numero; // debera validarse si no fuera String } // devolver el nmero de seguro social public String obtenerNumeroSeguroSocial() { return numeroSeguroSocial; } // devolver representacin String del objeto Empleado @Override public String toString() { return obtenerNombre() + "\nnmero de seguro social: " + obtenerNumeroSeguro Social(); } // mtodo abstracto sobrescrito por las subclases public abstract double ingresos(); } // fin de la clase abstracta Empleado // EmpleadoAsalariado.java class EmpleadoAsalariado extends Empleado { private double salarioSemanal;
// constructor public EmpleadoAsalariado( String nombre,String numeroSeguroSocial, double sa lario ) { super( nombre, numeroSeguroSocial ); establecerSalarioSemanal( salario ); } // establecer el salario del empleado asalariado public void establecerSalarioSemanal( double salario ) { salarioSemanal = salario < 0.0 ? 0.0 : salario; } // devolver el salario del empleado asalariado public double obtenerSalarioSemanal() { return salarioSemanal; } // calcular el pago del empleado asalariado; // sobrescribir el mtodo abstracto ingresos en Empleado public double ingresos() { return obtenerSalarioSemanal(); } // devolver la representacin String del objeto EmpleadoAsalariado public String toString() { return "\nempleado asalariado: " + super.toString(); } } // fin de la clase EmpleadoAsalariado // EmpleadoPorHoras.java // La clase EmpleadoPorHoras que extiende a Empleado. class EmpleadoPorHoras extends Empleado { private double sueldo; // sueldo por hora private double horas; // horas trabajadas en la semana // constructor public EmpleadoPorHoras(String nombre,String numeroSeguroSocial,double sueldo PorHora,double horasTrabajadas) { super( nombre,numeroSeguroSocial ); establecerValores( sueldoPorHora, horasTrabajadas); } // establecer sueldo de empleado por horas public void establecerValores( double cantidadSueldo,double horasTrabajadas ) { sueldo = cantidadSueldo < 0.0 ? 0.0 : cantidadSueldo; horas = ( horasTrabajadas >= 0.0) ?horasTrabajadas : 0.0; } // devolver sueldo public double obtenerSueldo() { return sueldo; }
// devolver horas trabajadas public double obtenerHoras() { return horas; } // calcular pago del empleado por horas; // sobrescribir el mtodo abstracto ingresos en Empleado public double ingresos() { if ( horas <= 40 ) // sin tiempo extra return sueldo * horas; else return 40 * sueldo + ( horas - 40 ) * sueldo * 1.5; } // devolver la representacin String del objeto EmpleadoPorHoras public String toString() { return "\nempleado por horas: " + super.toString(); } } // fin de la clase EmpleadoPorHoras // EmpleadoPorComision.java class EmpleadoPorComision extends Empleado { private double ventasTotales; // ventas totales por semana private double tasaComision; // porcentaje de comisin // constructor public EmpleadoPorComision(String nombre,String numeroSeguroSocial,double ven tasTotalesSemana,double porcentaje) { super( nombre, numeroSeguroSocial ); establecerValores( ventasTotalesSemana,porcentaje ); } // Validar la tasa de comisin del empleado y el valor de las ventas public void establecerValores(double ventas, double tasa) { ventasTotales = ventas < 0.0 ? 0.0 : ventas; tasaComision = ( tasa > 0.0 && tasa < 1.0 ) ? tasa : 0.0; } // devolver la tasa de comisin del empleado public double obtenerTasaComision() { return tasaComision; } // devolver cantidad de ventas totales del empleado por comisin public double obtenerVentasTotales() { return ventasTotales; } // calcular pago del empleado por comisin; // sobrescribir el mtodo abstracto ingresos en Empleado public double ingresos()
{ return obtenerTasaComision() * obtenerVentasTotales(); } // devolver la representacin String del objeto EmpleadoPorComision public String toString() { return "\nempleado por comisin: " + super.toString(); } } // fin de la clase EmpleadoPorComision // EmpleadoBaseMasComision.java // La clase EmpleadoBaseMasComision que extiende a EmpleadoPorComision. class EmpleadoBaseMasComision extends EmpleadoPorComision { private double salarioBase; // salario base por semana // constructor public EmpleadoBaseMasComision( String nombre,String numeroSeguroSocial, double cantidadVentasTotales, double tasa, double cantidadSalarioBase ) { super( nombre, numeroSeguroSocial, cantidadVentasTotales, tasa ); establecerSalarioBase( cantidadSalarioBase ); } // establecer el salario base del empleado con salario base ms comisin public void establecerSalarioBase( double salario ) { salarioBase = salario < 0.0 ? 0.0 : salario; } // devolver el salario base del empleado con salario base ms comisin public double obtenerSalarioBase() { return salarioBase; } // calcular los ingresos del empleado con salario base ms comisin; // sobrescribir el mtodo ingresos en EmpleadoPorComision public double ingresos() { return obtenerSalarioBase()*1.1 + super.ingresos(); } // devolver la representacin String de EmpleadoBaseMasComision public String toString() { return "\nempleado con salario base ms comisin: " + super.obtenerNombre() +"\nnmero de seguro social: " + super.obtenerNumer oSeguroSocial(); } } // PruebaSistemaNomina.java // Programa de prueba de la jerarqua Empleado. class PruebaSistemaNomina { public static void main( String[] args ) { DecimalFormat dosDigitos = new DecimalFormat( "0.00" ); int opcion,seguir=1;
String menu,nombre,seguro,horaT,valorH,comision,salario,ventas; double horaTD,valorHD,comisionD,salarioD,ventasD; while(seguir == 1){ menu = JOptionPane.showInputDialog("1. Empleado Asalariado\n2. Emp leado por comision\n3. Empleado Base mas comisin\n4. Empleado por horas\n5. Salir " ); opcion = Integer.parseInt(menu); switch(opcion) { case 1: nombre = JOptionPane.showInputDialog("Digite su nombre") ; seguro = JOptionPane.showInputDialog("Digite su seguro social"); salario = JOptionPane.showInputDialog("Digite su salario"); salarioD = Double.parseDouble(salario); EmpleadoAsalariado MiEmpleadoAsalariado = new Em pleadoAsalariado(nombre,seguro,salarioD); JOptionPane.showMessageDialog(null,MiEmpleadoAsa lariado.toString() + "\nSu pago es: " + MiEmpleadoAsalariado.ingresos()); break; case 2: nombre = JOptionPane.showInputDialog("Digite su nombre") ; seguro = JOptionPane.showInputDialog("Digite su seguro social"); ventas = JOptionPane.showInputDialog("Digite el valor de sus ventas"); ventasD = Double.parseDouble(ventas); comision = JOptionPane.showInputDialog("Digite l a tasa de comisin entre cero y uno (ejem: 0.6)"); comisionD = Double.parseDouble(comision); EmpleadoPorComision MiEmpleadoPorComision = new EmpleadoPorComision(nombre,seguro,ventasD,comisionD); JOptionPane.showMessageDialog(null,MiEmpleadoPor Comision.toString() + "\nSu pago es: " + MiEmpleadoPorComision.ingresos()); break; case 3: nombre = JOptionPane.showInputDialog("Digite su nombre") ; seguro = JOptionPane.showInputDialog("Digite su seguro social"); ventas = JOptionPane.showInputDialog("Digite el valor de sus ventas"); ventasD = Double.parseDouble(ventas); comision = JOptionPane.showInputDialog("Digite l a tasa de comisin entre cero y uno (ejem: 0.6)"); comisionD = Double.parseDouble(comision); salario = JOptionPane.showInputDialog("Digite su salario"); salarioD = Double.parseDouble(salario); EmpleadoBaseMasComision MiEmpleadoBaseMasComisio n = new EmpleadoBaseMasComision(nombre,seguro,ventasD,comisionD,salarioD); JOptionPane.showMessageDialog(null,MiEmpleadoBas eMasComision.toString() + "\nSu pago es: " + MiEmpleadoBaseMasComision.ingresos() + " (Inc luido un 10% sobre su salario base)"); break; case 4: nombre = JOptionPane.showInputDialog("Digite su nombre") ; seguro = JOptionPane.showInputDialog("Digite su
seguro social"); valorH = JOptionPane.showInputDialog("Digite el valor de una hora de trabajo"); valorHD = Double.parseDouble(valorH); horaT = JOptionPane.showInputDialog("Digite el nm ero de horas trabajadas"); horaTD = Double.parseDouble(horaT); EmpleadoPorHoras MiEmpleadoPorHoras = new Emplea doPorHoras(nombre,seguro,valorHD,horaTD); JOptionPane.showMessageDialog(null,MiEmpleadoPor Horas.toString() + "\nSu pago es: " + MiEmpleadoPorHoras.ingresos()); break; case 5: seguir = 0; break; default:JOptionPane.showMessageDialog(null,"Seleccione una opcin vlida"); }//fin del switch }//fin del while } // fin de main } // fin de la clase PruebaSistemaNomina