Ahora con el siguiente ejercicio
Realizar un programa en Java que tiene los siguientes datos de entrada:
cédula, apellido, nombre, año de ingreso, sexo y sueldo base. Calcular el
nuevo sueldo considerando:
Si sexo es igual masculino y sueldo base es menor o igual a 75000 y
año de servicios es mayor a 7 recibirá un aumento del 50% sobre su
sueldo base, en caso contrario será del 40%
Si sueldo base es menor o igual a 97500 y año de servicio es mayor a
5 y sexo es igual femenino recibirá un aumento del 60% sobre su sueldo
base, en caso contrario será 40%.
Si el trabajador está afiliado a la caja de ahorro se le descuenta el 10%
sobre su sueldo base.
Se descontará el seguro social obligatorio (SSO) que es 0,5% sobre su
sueldo base y el fondo de
Ahorro obligatorio para la vivienda (FAOV) que es 1% sobre su sueldo
base.
La empresa quiere generar el recibo de pago de sus trabajadores con los
siguientes datos: cédula, apellido, nombre, sexo, año de ingreso, sueldo
base, aumento, las deducciones (SSO, FAOV y Caja de Ahorro) y sueldo
neto.
public abstract void calcularSalario();
public abstract void calcularDedeciones();
public abstract void mostrarNomina();
El programa debe tener también una clase concreta llamada
Trabajadores que es subclase de la clase Persona.
Recomendaciones Útiles:
Escriba una clase abstracta llamada Persona que defina los miembros
mencionados y métodos que permitan acceder a las variables
(constructor, setter y getter).
Crear una subclase de llamada Trabajadores. Estas clases deben ser
concretas, para esto deben implementar los métodos abstractos de la
superclase Persona.
Nota Ingresar por teclado la cantidad de empleado a procesar
Package ejerciciotrabajadores;
Import [Link];
Public abstract class Persona {
Private String cedula;
Private String apellido;
Private String nombre;
Private int anioIngreso;
Private char sexo;
Private float sueldoBase;
Private boolean afiliadoCajaAhorro;
// Constructor
Public Persona(String cedula, String apellido, String nombre, int
anioIngreso,
Char sexo, float sueldoBase, boolean afiliadoCajaAhorro) {
[Link] = cedula;
[Link] = apellido;
[Link] = nombre;
[Link] = anioIngreso;
[Link] = sexo;
[Link] = sueldoBase;
[Link] = afiliadoCajaAhorro;
// Constructor vacío
Public Persona() {
Public void leerDatos() {
[Link] = [Link](“Ingrese la cédula:”);
[Link] = [Link](“Ingrese el apellido:”);
[Link] = [Link](“Ingrese el nombre:”);
[Link] =
[Link]([Link](“Ingrese el año de
ingreso:”));
[Link] = [Link](“Ingrese el sexo
(M/F):”).charAt(0);
[Link] =
[Link]([Link](“Ingrese el sueldo
base:”));
[Link] = [Link](null,
“¿Está afiliado a la caja de ahorro?”,
“Caja de Ahorro”, JOptionPane.YES_NO_OPTION) ==
JOptionPane.YES_OPTION;
Public abstract void calcularSalario();
Public abstract void calcularDeducciones();
Public abstract void mostrarNomina();
// Setters y Getters
Public String getCedula() {
Return cedula;
Public void setCedula(String cedula) {
[Link] = cedula;
Public String getApellido() {
Return apellido;
Public void setApellido(String apellido) {
[Link] = apellido;
Public String getNombre() {
Return nombre;
}
Public void setNombre(String nombre) {
[Link] = nombre;
Public int getAnioIngreso() {
Return anioIngreso;
Public void setAnioIngreso(int anioIngreso) {
[Link] = anioIngreso;
Public char getSexo() {
Return sexo;
Public void setSexo(char sexo) {
[Link] = sexo;
Public float getSueldoBase() {
Return sueldoBase;
Public void setSueldoBase(float sueldoBase) {
[Link] = sueldoBase;
Public boolean isAfiliadoCajaAhorro() {
Return afiliadoCajaAhorro;
Public void setAfiliadoCajaAhorro(boolean afiliadoCajaAhorro) {
[Link] = afiliadoCajaAhorro;
}
Public int calcularAniosServicio() {
Return [Link]().getValue() – anioIngreso;
Package ejerciciotrabajadores;
Import [Link];
Public class Trabajador extends Persona {
Private float aumento;
Private float sso;
Private float faov;
Private float cajaAhorro;
Private float sueldoNeto;
// Constructor
Public Trabajador() {
Super();
// Constructor con parámetros
Public Trabajador(String cedula, String apellido, String nombre, int
anioIngreso,
Char sexo, float sueldoBase, boolean afiliadoCajaAhorro) {
Super(cedula, apellido, nombre, anioIngreso, sexo, sueldoBase,
afiliadoCajaAhorro);
}
@Override
Public void calcularSalario() {
Int aniosServicio = calcularAniosServicio();
Char sexo = getSexo();
Float sueldoBase = getSueldoBase();
If (sexo == ‘M’ || sexo == ‘m’) {
If (sueldoBase <= 75000 && aniosServicio > 7) {
Aumento = sueldoBase * 0.50f;
} else {
Aumento = sueldoBase * 0.40f;
} else if (sexo == ‘F’ || sexo == ‘f’) {
If (sueldoBase <= 97500 && aniosServicio > 5) {
Aumento = sueldoBase * 0.60f;
} else {
Aumento = sueldoBase * 0.40f;
@Override
Public void calcularDeducciones() {
Float sueldoBase = getSueldoBase();
Sso = sueldoBase * 0.005f; // 0.5%
Faov = sueldoBase * 0.01f; // 1%
cajaAhorro = isAfiliadoCajaAhorro() ¿ sueldoBase * 0.10f : 0; // 10%
si está afiliado
@Override
Public void mostrarNomina() {
calcularSalario();
calcularDeducciones();
float sueldoConAumento = getSueldoBase() + aumento;
sueldoNeto = sueldoConAumento – sso – faov – cajaAhorro;
String mensaje = “==== RECIBO DE PAGO ====\n” +
“Cédula: “ + getCedula() + “\n” +
“Apellido: “ + getApellido() + “\n” +
“Nombre: “ + getNombre() + “\n” +
“Sexo: “ + getSexo() + “\n” +
“Año de ingreso: “ + getAnioIngreso() + “\n” +
“Años de servicio: “ + calcularAniosServicio() + “\n” +
“Sueldo base: “ + getSueldoBase() + “ Bs\n” +
“Aumento: “ + aumento + “ Bs\n” +
“\nDeducciones:\n” +
“SSO (0.5%): “ + sso + “ Bs\n” +
“FAOV (1%): “ + faov + “ Bs\n” +
“Caja de Ahorro: “ + cajaAhorro + “ Bs\n” +
“Total deducciones: “ + (sso + faov + cajaAhorro) + “
Bs\n” +
“\nSUELDO NETO: “ + sueldoNeto + “ Bs\n” +
“========================”;
[Link](null, mensaje, “Recibo de Pago”,
JOptionPane.INFORMATION_MESSAGE);
// Setters y Getters para los nuevos atributos
Public float getAumento() {
Return aumento;
Public float getSso() {
Return sso;
Public float getFaov() {
Return faov;
Public float getCajaAhorro() {
Return cajaAhorro;
Public float getSueldoNeto() {
Return sueldoNeto;
}
}
Package ejerciciotrabajadores;
Import [Link];
Public class Principal {
Public static void main(String[] args) {
Int cantidad =
[Link]([Link](“Ingrese la cantidad de
trabajadores a procesar:”));
For (int i = 0; i < cantidad; i++) {
// Opción 1: Usando constructor vacío y leerDatos()
Trabajador trabajador = new Trabajador();
[Link]();
[Link]();
// Opción 2: Usando constructor con parámetros
/*
Trabajador trabajador = new Trabajador(
“12345678”,
“Pérez”,
“Juan”,
2015,
‘M’,
80000,
True
);
[Link]();
*/
[Link](0);