public abstract class Empleado {
public static double salbasic = 589500;
public abstract double getSalario();
public abstract String getInfo();
}
/////////////////////
public class EmpleadoAdmCasado extends Empleado {
private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoAdmCasado(String nombre, int edad)
{
this.edad=edad;
this.nombre = nombre;
this.salarioNeto = Empleado.salbasic*3 - this.edad*1000;
}
public double getSalario()
{
return this.salarioNeto;
}
public String getInfo() {
return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
}
}
////////////////////
public class EmpleadoAdmSoletro extends Empleado {
private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoAdmSoletro(String nombre, int edad, int añoactual)
{
this.edad=edad;
this.nombre = nombre;
this.salarioNeto = Empleado.salbasic*3 + añoactual*100;
}
public double getSalario()
{
return this.salarioNeto;
}
public String getInfo() {
return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
}
}
/////////////////
public abstract class EmpleadosDocentes extends Empleado {
public static final double salDocente = 589500*2;
public abstract double getSalario();
public abstract String getInfo();
}
//////////
public class EmpleadoDocenteCatedra extends EmpleadosDocentes{
private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoDocenteCatedra(String nombre, int edad)
{
this.edad=edad;
this.nombre = nombre;
this.salarioNeto = EmpleadosDocentes.salDocente -edad*1000;
}
@Override
public double getSalario()
{
return this.salarioNeto;
}
@Override
public String getInfo() {
return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
}
}
////////////////////
public class EmpleadoDocenteTcompleto extends EmpleadosDocentes {
private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoDocenteTcompleto(String nombre, int edad)
{
this.edad=edad;
this.nombre = nombre;
this.salarioNeto = EmpleadosDocentes.salDocente + EmpleadosDocentes.salDocente*0.4;
}
public double getSalario()
{
return this.salarioNeto;
}
public String getInfo() {
return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
}
}
///////////////////////
public class EmpleadoDocenteTmedio extends EmpleadosDocentes {
private double salarioNeto;
private int edad ;
private String nombre;
public EmpleadoDocenteTmedio(String nombre, int edad)
{
this.edad=edad;
this.nombre = nombre;
this.salarioNeto = EmpleadosDocentes.salDocente + super.salDocente*0.2;
}
@Override
public double getSalario()
{
return this.salarioNeto;
}
@Override
public String getInfo() {
return("Señor(a):: "+this.nombre +" tiene un salario de :"+ getSalario());
}
}
////////////////////////////////////////////// y la clase principa o root o raiz/////////////////
package ejercicio4;
import java.util.ArrayList;
import javabook.SimpleInput;
public class Principal {
public static void main(String[] args) {
ArrayList baseDatos = new ArrayList();
int r = 0;
String Nombre;
int Edad;
while (r!=1)
{
System.out.println("llene la base de datos");
int eleccion = SimpleInput.getInteger("[1]Agregar Empleado Administrativo [2]Agregar Docente");
Nombre = SimpleInput.getString("Nombre: ");
Edad = SimpleInput.getInteger("Edad: ");
if (eleccion ==1)
{
int eleccion2 = SimpleInput.getInteger("[1]Casado [2]Soltero");
if (eleccion2==1)
{
Empleado nuevo = new EmpleadoAdmCasado(Nombre, Edad);
baseDatos.add(nuevo);
}
if (eleccion2 ==2)
{
Empleado nuevo = new EmpleadoAdmSoletro(Nombre, Edad,2013);
baseDatos.add(nuevo);
}
}
if (eleccion==2)
{
int eleccion3= SimpleInput.getInteger("[1]Docente Tiempo Completo [2]Medio Tiempo [3]De Catedra");
if (eleccion3==1)
{
Empleado nuevo = new EmpleadoDocenteTcompleto(Nombre, Edad);
baseDatos.add(nuevo);
System.out.println("el salario es "+ nuevo.getSalario());
}
if (eleccion3 ==2)
{
Empleado nuevo = new EmpleadoDocenteTmedio(Nombre, Edad);
baseDatos.add(nuevo);
System.out.println("el salario es "+ nuevo.getSalario());
}
if (eleccion3==3)
{
Empleado nuevo = new EmpleadoDocenteCatedra(Nombre, Edad);
baseDatos.add(nuevo);
System.out.println("el salario es "+ nuevo.getSalario());
}
}
r=SimpleInput.getInteger("digite [1] para terminar [2] para continuar");
}
}
}