► Primera capa
public class Empleado {
String NombreE;
int Horast;
double TVendido;
public Empleado(String n, int h, double tV){
NombreE=n;
Horast=h;
TVendido=tV;
}
public double getTVendido() {
return TVendido;
}
public void setTVendido(double tVendido) {
TVendido = tVendido;
}
public void Pago(){
}
public String getNombreE() {
return NombreE;
}
public void setNombreE(String nombreE) {
NombreE = nombreE;
}
public int getHorast() {
return Horast;
}
public void setHorast(int horast) {
Horast = horast;
}
}
►Segunda Capa
public class Asalariados extends Empleado{
public Asalariados(String n, int h, double TV) {
super(n, h, TV);
}
public void Pago(){
System.out.println("El salario correspondiente al empleado asalariado de nombre "+NombreE+" es de $689454 Pesos" );
}
}
►Tercera Capa
public class AsalariadosporComisión extends Empleado {
public AsalariadosporComisión(String n, int h, int TV) {
super(n, h, TV);
}
public void Pago(){
//por cada venta de $300.000 gana 10%
double pago, pagobase, pagoT;
pagobase=(TVendido*10)/300000;
pago= (pagobase*10)/100;
pagoT=pagobase+pago;
System.out.println("El pago correspondiente al empleado asalariado por comisión de nombre "+ NombreE+ " es el de $"+ pagoT+" pesos");
}
}
►Cuarta Capa
public class PorComisión extends Empleado {
public PorComisión(String n, int h, int TV) {
super(n, h, TV);
}
public void Pago(){
//por cada venta de $300.000 gana 10%
double ventas, pagoT;
ventas=(TVendido*10)/300000;
pagoT=ventas+689454;
System.out.println("El pago correspondiente al empleado asalariado por comisión de nombre "+ NombreE+ " es el de $"+ pagoT+" pesos.");
}
}
►Quinta Capa
public class Porhoras extends Empleado{
public Porhoras(String n, int h, int TV) {
super(n, h, TV);
}
public void Pago(){
//por cada 8 horas gana 23.0000
double HD;
if(Horast>=40){
HD=((Horast*23000)/8)*1.5;
}
else{
HD= (Horast*23000)/8;
}
System.out.println("El pago correspondiente al empleado por horas de nombre "+ NombreE+ " es el de $"+ HD+" pesos.");
}
}
►Sexta Capa
import java.util.Scanner;
public class RunEmpleado {
public static void main(String[]args){
Scanner kai=new Scanner(System.in);
Empleado emp=new Empleado(null, 0, 0);
Asalariados asa= new Asalariados(null, 0, 0);
AsalariadosporComisión asac=new AsalariadosporComisión(null, 0, 0);
PorComisión com=new PorComisión(null, 0, 0);
Porhoras h=new Porhoras(null, 0, 0);
System.out.println("Hola, bienvenido al programa de pagos 2.0");
boolean Again=true;
while (Again==true){
int opc;
System.out.println("Por favor ingresa alguna de las siguientes opciones");
System.out.println("<1> ◥⊙ Empleado Asalariado ⊙◤");
System.out.println("<2> ◥⊙ Empleado Asalariado por comisión ⊙◤");
System.out.println("<3> ◥⊙ Empleado por comisión ⊙◤");
System.out.println("<4> ◥⊙ Empleado por horas ⊙◤");
System.out.println("<5> ◥⊙ Salida ⊙◤");
System.out.print(" ►");opc=kai.nextInt();
switch(opc){
case 1: System.out.println("Ha escogido la opción de empleado asalariado, por favor siga las siguientes instrucciones" );
System.out.println("Ingrese su nombre");
System.out.println("►");asa.setNombreE(kai.next());
System.out.print("");
asa.Pago();// Correción para el método
break;
case 2: System.out.println("Ha escogido la opción de empleado aslariado por comisión");
System.out.println("Ingrese su nombre");
emp.setNombreE(kai.next());
System.out.println("Gracias"+ asac.getNombreE()+"Ahora, por favor ingrese monto total de ventas que ha tenido.");
System.out.println("►");emp.getTVendido();
emp.Pago();
break;
case 3: System.out.println("Ha escogido la opción de empleado por comisión");
System.out.println("Ingrese su nombre");
System.out.println("►");com.setNombreE(kai.next());
System.out.println("Gracias"+ asac.getNombreE()+"Ahora, por favor ingrese monto total de ventas que ha tenido.");
System.out.println("►");com.getTVendido();
emp.Pago();
break;
case 4:System.out.println("Ha escogido la opción de empleado por horas");
System.out.println("Ingrese su nombre");
System.out.println("►");h.setNombreE(kai.next());
System.out.println("Gracias"+ h.getNombreE()+"Ahora, por favor ingrese el número de horas que ha trabajado.");
System.out.println("►");emp.getHorast();
emp.Pago();
break;
case 5: System.out.print("Muchas gracias, por favor vuelva pronto y no gaste muy rápido su sueldo >u●");
Again=false;
break;
default: System.out.println("Esa opción no es correcta, por favor digite otra");
}
}
}
}
Eso es todo, muchas gracias por ver y si encuentra algún error, por favor deje la solución respetuosamente en los comentarios.