Código Java para calcular sueldos: máximo, media y porcentajes por rango

Informática y Telecomunicaciones3,51 KB

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.

Descargar

PDF Word HTML