Está en la página 1de 15

HERENCIA

JEYSSON JAVIER REINO GELIS


YERLIN DAVID YANES LUGO

ACTIVIDAD VIRTUAL

PROFESOR
PEDRO GUEVARA

FACULTAD DE INGENIERIAS
INGENIERIA DE SISTEMAS
PROGRAMACION I

UNIVERSIDAD DE CÓRDOBA
SEDE SAHAGÚN
Objetivo:
Desarrollar una aplicación en Java, aplicando los conceptos aprendidos
sobre el tema herencia.

Descripción del Problema


Una empresa multinacional que fabrica y distribuye repuestos de
automóviles quiere calcular el sueldo mensual que se le paga a cada uno de
sus empleados. La empresa maneja una información de contacto de sus
empleados, como son la identificación, el nombre y el número telefónico.
En la empresa se manejan tres niveles de formación que se tendrán en cuenta
para determinar el salario de los empleados, estos son: técnico, profesional y
especialista. La empresa maneja dos niveles de jerarquía dentro de sus
empleados, los ejecutivos de la alta gerencia y los operarios.
Los ejecutivos de la alta gerencia, deben tener formación profesional y
deberán hablar varios idiomas puesto que se tienen que trasladar a las
regiones del mundo en don la empresa tenga sedes, hay varias categorías
para estas regiones dependiendo del acceso y el orden público de la región
(A = riesgo alto, B = riesgo bajo). Para calcular el salario de los ejecutivos,
se parte 1500 dólares si es profesional y 2000 dólares si es especialista.
Dependiendo del número de idiomas que hable, el sueldo se le incrementa
en 20 dólares por idioma, para las personas que estén en regiones de riesgo
alto el sueldo se incrementa en 50 dólares; a los que están en regiones de
riesgo bajo se le incrementa en 20 dólares.
Por otra parte los operarios trabajaran fijos en las plantas de producción de
la región donde viven, su salario se calcula dependiendo del número de
horas diarias.
que traban, si trabajan más de 8 horas diarias el excedente se calcula como
horas extra, el valor de la hora para un técnico es de 8 dólares y la hora extra
tendrá un valor de 12 dólares. Si el operario es profesional o especialista, la
hora tiene un valor de 15 dólares y la hora extra se les paga a 20 dólares. Los
operarios tendrán una bonificación de 20 dólares para transporte.

Requerimientos
Requerimientos
Utilizar el concepto de herencia y métodos abstractos para realizar el cálculo
del sueldo mensual que se le paga a un empleado.

Requerimientos Funcionales

quiere realizar el cálculo del sueldo para un ejecutivo o un operario.


Requerimientos Reportes
Después de registrar la información del empleado se debe mostrar un
reporte, con la identificación del empleado, su nombre, el nivel de
formación y el valor del sueldo que debe pagarle la empresa.

DISEÑO DEL PROYECTO EN UML.


IMPLEMENTACION DE LA CLASE abstracta Empleado.java:
public abstract class Empleado {

// Declaracion de los atributos de tipo entero


identificacion,teléfono y los atributos de tipo String nombre y
formación.

private int identificacion;


private String nombre;
private int telefono;
private String formacion;

// Implementacion del metodo contructor de la clase.

public Empleado() {
identificacion = 0;
nombre = "";
telefono = 0;
}
// Implementacion de los respectivos metodos selecctores y
modificadores de los atributos dela clase.

public void setFormacion(String form) {


formacion = form;
}

public String getFormacion() {


return formacion;
}
public int getIdentificacion() {
return identificacion;
}

public void setIdentificacion(int id) {


identificacion = id;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nom) {


nombre = nom;
}

public int getTelefono() {


return telefono;
}

public void setTelefono(int te) {


telefono = te;
}
// Implementacion del método abstracto que permite calcular el
sueldo de los empleados.

public abstract double CalcularSueldo();

}
IMPLEMENTACION DE LA CLASE Ejecutivos.java:
// Declaracion de la clase ejecutivos extendida de la clase
Empleado
public class Ejecutivos extends Empleado {
// Declaracion de los atributos de clase entero numIdiomas y de
clase String region.
private int numIdiomas;
private String region;
// Implementacion del metodo contructor de la clase y la
declaración del método seper() de java.
public Ejecutivos(){
super();
numIdiomas = 0;
region = "";
}
//Implementacion de los respectivos metodos selectores y
modiicadores.

public int getNumIdiomas() {


return numIdiomas;
}

public void setNumIdiomas(int numI) {


numIdiomas = numI;
}

public String getRegion() {


return region;
}

public void setRegion(String re) {


region = re;
}
//Implementacion del metodo que permite calcular el sueldo de
los ejecutivos.
@Override
public double CalcularSueldo(){
double sueldo = 0;
if ("profesional".equals(getFormacion())){
sueldo = sueldo + 1500;
}
else
if ("especialista".equals(getFormacion())){
sueldo = sueldo +2000;
}

if(getNumIdiomas() > 0){


sueldo = sueldo + (20*getNumIdiomas());
}

if("a".equals(getRegion())){
sueldo = sueldo + 50;
}
else
if("b".equals(getRegion())){
sueldo = sueldo + 20;
}
return sueldo;
}
}
Implementación de la clase Operarios.java:
//Implementación de la clase operarios extendida de la clase
Empleado.
public class Operarios extends Empleado {
// Declaracion del atributo de tipo entero horasdiarias.
private int horasdiarias;
// Implementacion del metodo contructor de la clase y la
declaración del método seper() de java.
public Operarios(){
super();
horasdiarias = 0;
}
//Implementacion de los respectivos metodos selectores y
modiicadores.

public int getHorasdiarias() {


return horasdiarias;
}
public void setHorasdiarias(int horas) {
horasdiarias = horas;
}
//Implementacion del metodo que permite calcular el sueldo de
los Operarios.
@Override
public double CalcularSueldo(){
double sueldo = 0, monto = 0;
if("tecnico".equals(getFormacion())&&
getHorasdiarias()<=8){
sueldo = getHorasdiarias()*8;
}
if("tecnico".equals(getFormacion())&&
getHorasdiarias()>8){
monto = 64;
sueldo = monto + ((getHorasdiarias()- 8)*12);
}

if("profesional".equals(getFormacion()) ||
"especialista".equals(getFormacion())&& getHorasdiarias()<=8){
sueldo = getHorasdiarias()*15;
}
if("profesional".equals(getFormacion()) ||
"especialista".equals(getFormacion())&& getHorasdiarias()>8){
monto = 96;
sueldo = monto + ((getHorasdiarias()-8)*20);
}

return (sueldo + 20) ;


}
}
Implementacion de la clase Main:
import javax.swing.JOptionPane;

public class Main {

public static int menu() {


int opcion;
do {
opcion =
Integer.parseInt(JOptionPane.showInputDialog("MENU DE
OPCIONES\n\n"
+ "1.Calcular sueldo de un EJECUTIVO de alta
gerencia de la empresa\n"
+ "2.Calcular sueldo de un OPERARIO de la
empresa\n"
+ "3.Salir\n\n"
+ "Escoja una opcion del 1 al 3"));
} while (opcion < 0 || opcion > 3);
return opcion;
}

public static void CalcularDatos(Empleado emp) {


int identificacaion =
Integer.parseInt(JOptionPane.showInputDialog("Digite la
IDENTIFFICACIÓN del empleado\n"));
emp.setIdentificacion(identificacaion);
String nombre = JOptionPane.showInputDialog("Digite
el NOMBRE del empleado\n");
emp.setNombre(nombre);
int telefono =
Integer.parseInt(JOptionPane.showInputDialog("Digite el
numero de TELEFONO del empleado\n"));
emp.setTelefono(telefono);
String formacion =
JOptionPane.showInputDialog("Digite la clase de
FORMACIÓN del empleado\n");
emp.setFormacion(formacion);
}

public static void main(String[] args) {


Ejecutivos ej = new Ejecutivos();
Operarios op = new Operarios();
int opcion;
do {
opcion = menu();
switch (opcion) {
case 1:
CalcularDatos(ej);
int numeroI =
Integer.parseInt(JOptionPane.showInputDialog("Digite el
numero de IDIOMAS que maneja el empleado"));
ej.setNumIdiomas(numeroI);
String region =
JOptionPane.showInputDialog("Digite la categoria de
REGIÒN del empleado\n"
+ "a = ALTO RIESGO\nb = BAJO
RIESGO\n");
ej.setRegion(region);
if ("tecnico".equals(ej.getFormacion())) {
JOptionPane.showMessageDialog(null, "LO
SENTIMOS, PARA CALCULAR EL SUELDO DE UN
EJECUTIVO SU FORMACION DEBE SER
PROFESIONAL O ESPECIALISTA\n");
} else {
JOptionPane.showMessageDialog(null,
"DATOS DEL EMPLEADO:\n\n"+"IDENTIFICACIÔN:
"+ej.getIdentificacion()+"\n"+"NOMBRE:
"+ej.getNombre()+"\n"+ "NIVEL DE FORMACION:
"+ej.getFormacion()+"\n\n\n"+"El SUELDO del empleado
es:\n" + ej.CalcularSueldo() + " dolares\n");
}
break;
case 2:
CalcularDatos(op);
int horasd =
Integer.parseInt(JOptionPane.showInputDialog("Digite el
numero de horas de trabajo diario"));
op.setHorasdiarias(horasd);
JOptionPane.showMessageDialog(null, "DATOS
DEL EMPLEADO:\n\n"+"IDENTIFICACIÔN:
"+op.getIdentificacion()+"\n"+"NOMBRE:
"+op.getNombre()+"\n"+ "NIVEL DE FORMACION:
"+op.getFormacion()+"\n\n\n"+"El SUELDO del empleado
es:\n" + op.CalcularSueldo() + " dolares\n");
break;
case 3:
break;
}
} while (opcion != 3);

También podría gustarte