Código Java para calcular sueldos: máximo, media y porcentajes por rango
Programa en Java para el cálculo de estadísticas de sueldos
A continuación se presenta el código corregido del ejercicio EJ22, con los errores ortográficos, de formato y de estilo ajustados. El contenido del programa se mantiene íntegro.
Código fuente
package ej22;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class EJ22 {
public static void main(String[] args) throws IOException {
float miSueldo, sueldoMax = 0, sueldoMedia = 0, sueldoAcumulado = 0, porPeq = 0, porMed = 0, porGra = 0;
String Nombre, nombreMax = "";
int contador = 0, suelPeq = 0, suelMed = 0, suelGra = 0;
EJ22 objeto;
objeto = new EJ22();
Nombre = objeto.pedirNombre();
while (!Nombre.equalsIgnoreCase("*")) {
miSueldo = objeto.pedirSueldo();
contador++;
sueldoAcumulado = sueldoAcumulado + miSueldo;
if (miSueldo < 1000) {
suelPeq++;
} else {
if (miSueldo > 2000) {
suelGra++;
} else {
suelMed++;
}
}
if (miSueldo > sueldoMax) {
nombreMax = Nombre;
sueldoMax = miSueldo;
}
sueldoMedia = sueldoAcumulado / contador;
Nombre = objeto.pedirNombre();
}
{
porPeq = (float) suelPeq / contador * 100;
porMed = (float) suelMed / contador * 100;
porGra = (float) suelGra / contador * 100;
}
System.out.println("SUELDO MÁS ALTO ES: " + sueldoMax + " €" + " " + nombreMax);
System.out.println("LA MEDIA DE LOS SUELDOS ES: " + sueldoMedia + " €");
System.out.println("HASTA 1000€ " + suelPeq + "\t" + porPeq);
System.out.println("HASTA 2000€ " + suelMed + "\t" + porMed);
System.out.println("MÁS DE 4000€ " + suelGra + "\t" + porGra);
}
public String pedirNombre() throws IOException {
InputStreamReader flujo = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(flujo);
String nombre;
System.out.print("INTRODUCE NOMBRE: ");
nombre = teclado.readLine();
while (nombre.equalsIgnoreCase("")) {
System.out.print("ERROR. INTRODUCE NOMBRE: ");
nombre = teclado.readLine();
}
return nombre;
}
public float pedirSueldo() throws IOException {
InputStreamReader flujo = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(flujo);
float sueldo;
System.out.print("INTRODUCE SUELDO: ");
sueldo = Float.parseFloat(teclado.readLine());
while (sueldo < 0) {
System.out.println("SUELDO INCORRECTO.");
System.out.print("VUELVE A INTRODUCIR EL SUELDO: ");
sueldo = Float.parseFloat(teclado.readLine());
}
return sueldo;
}
}Observaciones
- Sueldo máximo: se guarda el nombre asociado al sueldo más alto introducido.
- Media: se calcula dividiendo el sueldo acumulado entre el número de sueldos introducidos.
- Rangos: se clasifican los sueldos en menores de 1000 €, entre 1000 € y 2000 €, y mayores de 2000 €.
- El bucle finaliza cuando el usuario introduce el carácter * como nombre.