Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: matru en 25 de Marzo 2016, 19:21
-
Respuesta al ejercicio CU00692B del curso java desde cero:
public class TestProfesor
{
public static void main(){
Profesor pro = new ProfesorEmerito("Juan Gonzalez", 35, 10,3);
pro.mostrarDatos();
System.out.println("Salario Base del Profesor: "+ pro.obtenerSalarioBase());
}
}
public class Profesor{
private String nombre;
private int edad;
private int anosConsolidados;
public Profesor(){
}
public Profesor(String nombre, int edad, int anosConsolidados){
this.nombre = nombre;
this.edad = edad;
this.anosConsolidados = anosConsolidados;
}
public void setNombre(String nombre){this.nombre = nombre;}
public String getNombre(){return nombre;}
public void setEdad(int edad){this.edad = edad;}
public int getEdad(){return edad;}
public void setAnosConsolidados(int anosConsolidados){this.anosConsolidados = anosConsolidados;}
public int getAnosConsolidados(){return anosConsolidados;}
public void mostrarDatos(){
System.out.print("Nombre: "+ getNombre()+ "\nEdad: "+ getEdad()+ " anos \nAnos Consolidados: "+ getAnosConsolidados());
}
public double obtenerSalarioBase(){
double tmp = 725 + getAnosConsolidados();
return tmp = tmp *33.25;
}
}
public class ProfesorEmerito extends Profesor{
private int anosEmerito;
public ProfesorEmerito(){}
public ProfesorEmerito(String nombre, int edad, int anosConsolidados, int anosEmerito){
super(nombre, edad, anosConsolidados);
this.anosEmerito = anosEmerito;
}
public void setAnosEmerito(int anosEmerito){this.anosEmerito = anosEmerito;}
public int getAnosEmerito(){return anosEmerito;}
public void mostrarDatos(){
super.mostrarDatos();
System.out.print("\nAnos Emeritos: "+ getAnosEmerito()+"\n");
}
public double obtenerSalarioBase(){
double tmp = super.obtenerSalarioBase();
tmp += +(47.80 * getAnosEmerito());
return tmp;
}
-
Hola matru
Tienes mal el cálculo del salario base en la clase Profesor
En tu método tienes:
double tmp = 725 + getAnosConsolidados();
return tmp = tmp *33.25;
Pero eso no es correcto
El enunciado dice: salario base como (725 + el número de años consolidados multiplicado por 33.25).
Es decir 725 + anosConsolidados*33.25 o también 725 + getAnosConsolidados()*33.25;
Por ejemplo si son 5 años consolidados, el cálculo es 725 + 5*33.25 = 725 + 166.25 = 891.25
Según tu método el resultado es 730*33.25 = 24272.5
Saludos