Utilizaremos la clase Empleado para representar el concepto general de un empleado. Una compañía paga a sus empleados por semana. Los empleados son de cuatro tipos: empleados asalariados que reciben un salario semanal fijo, sin importar el número de horas trabajadas; empleados por horas, que reciben un sueldo por hora y pago por tiempo extra, por todas las horas trabajadas que excedan a 40 horas; empleados por comisión, que reciben un porcentaje de sus ventas y empleados asalariados por comisión, que reciben un salario base más un porcentaje de sus ventas. Para este periodo de pago, la compañía ha decidido recompensar a los empleados asalariados por comisión, agregando un 10% a sus salarios base. La compañía desea implementar una aplicación en Java que realice sus cálculos de nómina. Las clases que extienden a Empleado son EmpleadoAsalariado, EmpleadoPorComision y EmpleadoPorHoras. La clase EmpleadoBaseMasComision (que extiende a EmpleadoPorComision) representa el último tipo de empleado. El diagrama de clases de UML muestra la jerarquía de herencia para nuestra aplicación de nómina de empleados.







 CLASE EMPLEADO

public class Empleado {

String primerNombre,apellidoPaterno;

int numSegSoc;

public Empleado(String primerNombre, String apellidoPaterno, int numSegSoc) {

super();

this.primerNombre = primerNombre;

this.apellidoPaterno = apellidoPaterno;

this.numSegSoc = numSegSoc;

}

public String getPrimerNombre() {

return primerNombre;

}


public void setPrimerNombre(String primerNombre) {

this.primerNombre = primerNombre;

}


public String getApellidoPaterno() {

return apellidoPaterno;

}


public void setApellidoPaterno(String apellidoPaterno) {

this.apellidoPaterno = apellidoPaterno;

}



public int getNumSegSoc() {

return numSegSoc;

}



public void setNumSegSoc(int numSegSoc) {

this.numSegSoc = numSegSoc;

}



void MostrarDatos() {

System.out.println("Empleado asalariado: "+primerNombre+" "+apellidoPaterno);

System.out.println("Número de Seguro Social: "+numSegSoc);

}

void Ingresos() {

System.out.println();

}

}


Clase Empleado Asalariado

public class EmpleadoAsalariado extends Empleado {

double salarioSemanal;

public EmpleadoAsalariado(String primerNombre, String apellidoPaterno, int numSegSoc,double salarioSemanal) {

super(primerNombre, apellidoPaterno, numSegSoc);

this.salarioSemanal=salarioSemanal;

}

public double getSalarioSemanal() {

return salarioSemanal;

}

public void setSalarioSemanal(double salarioSemanal) {

this.salarioSemanal = salarioSemanal;

}

void MostrarDatos() {

System.out.println("Empleado asalariado: "+primerNombre+" "+apellidoPaterno);

System.out.println("Número de Seguro Social: "+numSegSoc);

}

void Ingresos() {

System.out.println("Salario Semanal: $"+salarioSemanal);

}

}


clase Empleado Por Comisión

public class EmpleadoPorComision extends Empleado {

double ventasBrutas,tarifaComision;


public EmpleadoPorComision(String primerNombre, String apellidoPaterno, int numSegSoc,double ventasBrutas,double tarifaComision ) {

super(primerNombre, apellidoPaterno, numSegSoc);

this.ventasBrutas=ventasBrutas;

this.tarifaComision=tarifaComision;

}


public double getVentasBrutas() {

return ventasBrutas;

}


public void setVentasBrutas(double ventasBrutas) {

this.ventasBrutas = ventasBrutas;

}


public double getTarifaComision() {

return tarifaComision;

}


public void setTarifaComision(double tarifaComision) {

this.tarifaComision = tarifaComision;

}

void MostrarDatos() {

System.out.println("Empleado asalariado: "+primerNombre+" "+apellidoPaterno);

System.out.println("Número de Seguro Social: "+numSegSoc);

}

void Ingresos() {

System.out.println("Ventas brutas: $"+ventasBrutas);

System.out.println("Tarifa de Comision: $"+tarifaComision);

}


}


clase Empleado Base Mas Comisión

public class EmpleadoBaseMasComision extends EmpleadoPorComision {

double salarioBase;


public EmpleadoBaseMasComision(String primerNombre, String apellidoPaterno, int numSegSoc, double ventasBrutas,

double tarifaComision,double salarioBase) {

super(primerNombre, apellidoPaterno, numSegSoc, ventasBrutas, tarifaComision);

this.salarioBase=salarioBase;

}


public double getSalarioBase() {

return salarioBase;

}


public void setSalarioBase(double salarioBase) {

this.salarioBase = salarioBase;

}

void MostrarDatos() {

System.out.println("Empleado asalariado: "+primerNombre+" "+apellidoPaterno);

System.out.println("Número de Seguro Social: "+numSegSoc);

}

void Ingresos() {

System.out.println("Ventas brutas: $"+ventasBrutas);

System.out.println("Tarifa de Comision: $"+tarifaComision);

System.out.println("Salario Base: $"+salarioBase);

}

}


clase Empleado Por Horas

public class EmpleadoPorHoras extends Empleado {

double sueldo,horas;


public EmpleadoPorHoras(String primerNombre, String apellidoPaterno, int numSegSoc,double sueldo, double horas) {

super(primerNombre, apellidoPaterno, numSegSoc);

this.sueldo=sueldo;

this.horas=horas;

}


public double getSueldo() {

return sueldo;

}


public void setSueldo(double sueldo) {

this.sueldo = sueldo;

}


public double getHoras() {

return horas;

}


public void setHoras(double horas) {

this.horas = horas;

}

void EstablecerSueldo( ) {

if (horas>=0&&horas<=168) {

getHoras();

}

if (horas>168) {

System.out.print("\nEs imposible trabajar mas de 168 horas");

setHoras(0);

}

}

void MostrarDatos() {

System.out.println("Empleado asalariado: "+primerNombre+" "+apellidoPaterno);

System.out.println("Número de Seguro Social: "+numSegSoc);

}

void Ingresos() {

if (horas<=40) {

sueldo=sueldo*horas; }

else if (horas>40) {

sueldo=horas*sueldo+(horas-40)*sueldo*1.5; }

System.out.println("Sueldo por horas: $"+sueldo);

System.out.println("Horas trabajadas: "+horas);

}

}

clase Main Empleado

public class MainEmpleado {


public static void main(String[] args) {

EmpleadoAsalariado objeto=new EmpleadoAsalariado("Roberto","Perez",1904823,800.90);

objeto.MostrarDatos();

objeto.Ingresos();

System.out.println();

EmpleadoPorComision objeto1=new EmpleadoPorComision("Manuel","Alanis",1904822,500.60,100.30);

objeto1.MostrarDatos();

objeto1.Ingresos();

System.out.println();

EmpleadoBaseMasComision objeto2=new EmpleadoBaseMasComision("Ramon","Perez",1904821,600.40,120.40,600);

objeto2.MostrarDatos();

objeto2.Ingresos();

System.out.println();

EmpleadoPorHoras objeto3=new EmpleadoPorHoras("Pedro","Cardenas",1904820,18,38);

objeto3.EstablecerSueldo();

objeto3.MostrarDatos();

objeto3.Ingresos();

}

}



No hay comentarios:

Publicar un comentario