Desarrollo de Clases en Java: Gestión de Empleados y Sueldos
Introducción al Código en Java
A continuación se presenta la implementación de dos clases en Java diseñadas para la gestión de información de empleados, permitiendo el ingreso de datos, modificaciones mediante un menú interactivo, cálculo de aumentos y aplicación de descuentos.
Clase Principal: PpalEmpleado
Esta clase contiene el método main encargado de la interacción con el usuario a través de la consola, utilizando BufferedReader.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class PpalEmpleado {
public static void main(String args[]) throws Exception {
String r, nom;
int ed, porc;
long suel;
Empleado e[] = new Empleado[2];
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 2; i++) {
System.out.println("Ingrese rut del empleado: ");
r = bf.readLine().trim();
System.out.println("Ingrese nombre del empleado: ");
nom = bf.readLine().trim();
System.out.println("Ingrese edad del empleado: ");
ed = Integer.parseInt(bf.readLine().trim());
System.out.println("Ingrese sueldo del empleado: ");
suel = Long.parseLong(bf.readLine().trim());
e[i] = new Empleado(r, nom, ed, suel);
}
for (int i = 0; i < 2; i++) {
System.out.println("Desea realizar alguna modificación en el empleado " + e[i].getNombre() + "(S/N)?");
String resp = bf.readLine().trim().toUpperCase();
int op;
if (resp.equals("S")) {
do {
System.out.println("********************");
System.out.println("MENU DE MODIFICACION");
System.out.println("********************");
System.out.println("1. Nombre");
System.out.println("2. Edad");
System.out.println("3. Sueldo");
System.out.println("4. Salir");
System.out.println("Ingrese opcion: ");
op = Integer.parseInt(bf.readLine().trim());
switch (op) {
case 1:
System.out.println("Ingrese nombre a modificar:");
nom = bf.readLine().trim();
e[i].setNombre(nom);
System.out.println("El nombre se ha modificado");
break;
case 2:
System.out.println("Ingrese edad a modificar:");
ed = Integer.parseInt(bf.readLine().trim());
e[i].setEdad(ed);
System.out.println("La edad se ha modificado");
break;
case 3:
System.out.println("Ingrese sueldo a modificar:");
suel = Long.parseLong(bf.readLine().trim());
e[i].setSueldo(suel);
System.out.println("El sueldo se ha modificado");
break;
case 4:
System.out.println("Ha salido del menu de modificación");
break;
default:
System.out.println("Debe ingresar una opcion entre 1 y 4");
}
} while (op != 4);
}
}
System.out.println("*************************************");
System.out.println("Listado de los datos de los empleados");
System.out.println("*************************************");
for (int i = 0; i < 2; i++) {
System.out.println("El rut del empleado es: " + e[i].getRut());
System.out.println("El nombre del empleado es: " + e[i].getNombre());
System.out.println("La edad del empleado es: " + e[i].getEdad());
System.out.println("El sueldo del empleado es: " + e[i].getSueldo());
}
for (int i = 0; i < 2; i++) {
e[i].aumentar();
System.out.println("El sueldo aumentado del empleado " + e[i].getNombre() + " es: " + e[i].getSueldo());
System.out.println("Ingrese porcentaje de descuento: ");
porc = Integer.parseInt(bf.readLine().trim());
e[i].descontar(porc);
System.out.println("El sueldo disminuido del empleado " + e[i].getNombre() + " es: " + e[i].getSueldo());
}
}
}
Clase de Entidad: Empleado
Esta clase define la estructura del objeto Empleado, incluyendo sus atributos privados, constructores, métodos getters, setters y la lógica para calcular aumentos y descuentos salariales.
public class Empleado {
private String rut, nombre;
private int edad;
private long sueldo;
public Empleado(String rut, String nombre, int edad, long sueldo) {
this.rut = rut;
this.nombre = nombre;
this.edad = edad;
this.sueldo = sueldo;
}
void setNombre(String nombre) {
this.nombre = nombre;
}
void setEdad(int edad) {
this.edad = edad;
}
void setSueldo(long sueldo) {
this.sueldo = sueldo;
}
String getRut() {
return (this.rut);
}
String getNombre() {
return (this.nombre);
}
int getEdad() {
return (this.edad);
}
long getSueldo() {
return (this.sueldo);
}
void aumentar() {
if (this.edad > 30 && this.sueldo > 400000) {
this.sueldo = (long) (this.sueldo * 1.3);
}
}
void descontar(int porcentaje) {
this.sueldo = (long) (this.sueldo - (this.sueldo * porcentaje / 100));
}
}