Ayudantía Paulina Yánquez EII 147 2S2020

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Actividad de ayudantía

EII147 – Introducción a las Tecnologías de la Información


II Semestre 2020

1. Información general

Semana: 19 al 22 de octubre

Contenidos: Herencia y clase abstracta

Objetivo: El objetivo de esta ayudantía es que el alumno sea capaz de identificar el uso de
Herencia e implementar de forma correcta las clases abstractas
Contenidos: Especificaciones de herencia y clase abstracta

2. Ejercicios

1. Una empresa multinacional necesita administrar su personal y para esto necesita una aplicación en
java que defina las siguientes clases:
La clase Personal que no puede ser instanciada, tiene como atributos un código de identificador
(String) de cada trabajador, un nombre (String) y un año de ingreso, además define un método
llamado obtenerSalario(). El personal puede ser de dos tipos:
- EmpleadoFijo: El cual tiene un salario fijo (int) y un porcentaje adicional (double) relativo a la
cantidad de años que lleva en la empresa. El método obtenerSalario() corresponde a la
multiplicación del salario fijo por el porcentaje adicional.
- EmpleadoAComisión: Este tipo de empleado tiene un salario mínimo correspondiente a 250000
pesos, un número de clientes captados y un monto por cada cliente captado(int). El método
obtenerSalario() corresponde a la suma del salario mínimo con la multiplicación de los clientes
captados y el monto por cliente.
Finalmente se encuentra la clase Empresa la cual maneja un arreglo de largo N del tipo clase Personal
(N entregado al momento de su instanciación) y un número total de empleados(int).
Se pide implementar en java lo siguiente:
a) La clase abstracta Personal con la definición de su respectivo método abstracto. Las clases
hijas EmpleadoFijo y EmpleadoAComision y finalmente la clase Empresa.
b) Implementar el método abstracto en las clases hijas obtenerSalario() con sus respectivas
definiciones.
c) El método public String empleadoConElMayorSueldo() en la clase Empresa, el cual retorna el
código del empleado con el mayor salario registrado en su matriz.
d) El método public String mayorPorcentajeAdicional() en la clase Empresa, el cual retorna el
código del empleado fijo con el mayor porcentaje adicional al salario fijo.
DESARROLLO:

Main:

package ayudantia9;
import java.io.*;
public class Ayudantia9
{
public static void main(String[] args) throws IOException
{
BufferedReader lector =new BufferedReader( new
InputStreamReader(System.in));
Empresa hola= new Empresa(58,100);
System.out.println("Ingrese una opción:");
System.out.println("1.-Empleado con mayor sueldo");
System.out.println("2.-Empleado con mayor porcentaje");
int opc= Integer.parseInt(lector.readLine());
switch (opc)
{
case 1:
System.out.println("El empleado con mayor sueldo es" +
hola.empleadoConElMayorSueldo());

break;
case 2:
System.out.println("El empleado con mayor porcentaje es" +
hola.mayorPorcentajeAdicional());
break;
}
}
}

Clase Empresa:

package ayudantia9;

public class Empresa


{
private int TotalEmpleados;
private Personal Empleados [];

public Empresa(int TotalEmpleados, int tam)


{
this.TotalEmpleados=TotalEmpleados;
Empleados= new Personal[tam];
}

public String empleadoConElMayorSueldo()


{
String empleadoConElMayorSueldo=null;
int mayorsueldo=-10;
for(int i=0;i< Empleados.length;i++)
{
if(Empleados[i]!=null &&
Empleados[i].obtenerSalario()>mayorsueldo)
{
mayorsueldo=Empleados[i].obtenerSalario();
empleadoConElMayorSueldo=Empleados[i].getNombre();
}
}
return empleadoConElMayorSueldo;
}

public String mayorPorcentajeAdicional()


{
double mayorPorcentajeAdicional=0;
String empleado=null;
for(int i=0;i< Empleados.length;i++)
{
if(Empleados[i]!=null && Empleados[i] instanceof EmpleadoFijo
&& ((EmpleadoFijo)Empleados[i]).getPorcentaje()>mayorPorcentajeAdicional)
{
mayorPorcentajeAdicional=
((EmpleadoFijo)Empleados[i]).getPorcentaje();
empleado=Empleados[i].getNombre();
}
}
return empleado;
}
}

Clase Personal:

package ayudantia9;

public abstract class Personal


{
private String id;
private String nombre;
private int añoIngreso;

public Personal(String id, String nombre,int añoIngreso)


{
this.añoIngreso=añoIngreso;
this.id=id;
this.nombre=nombre;
}

public abstract int obtenerSalario();


public String getNombre()
{
return nombre;
}
}
Clase EmpleadoFijo:

package ayudantia9;

public class EmpleadoFijo extends Personal


{
private int salario;
private double porcentaje;

public EmpleadoFijo(String id, String nombre,int añoIngreso,int


salario,double porcentaje)
{
super(id,nombre,añoIngreso);
this.salario=salario;
this.porcentaje=porcentaje;

public int obtenerSalario()


{
return ((int)(salario*porcentaje));
}

public double getPorcentaje()


{
return porcentaje;
}

Clase EmpleadoAComisión:

package ayudantia9;

public class EmpleadoAComision extends Personal


{
private int salarioMin;
private int clientesCaptados;
private int montoClientes;

public EmpleadoAComision(String id, String nombre,int


añoIngreso,int clientesCaptados,int montoClientes)
{
super(id,nombre,añoIngreso);
salarioMin=250000;
this.clientesCaptados=clientesCaptados;
this.montoClientes=montoClientes;

public int obtenerSalario()


{
return (salarioMin +(clientesCaptados*montoClientes));
}

También podría gustarte