Java - Nomina en JAVA

 
Vista:

Nomina en JAVA

Publicado por BOOM (5 intervenciones) el 24/04/2020 21:50:35
Buenas tardes, una pequeña asesoría quedaría el algoritmo del siguiente problema con la respectiva explicación de los códigos empelados para el desarrollo:


En Java un programa que calcule el valor a pagar a (n) empleados (variable n ingresada por el usuario), donde se cumplan las siguientes condiciones:
1. El usuario debe ingresar la cantidad de empleados que desee (n).
2. El primero gana el valor ingresado por el usuario
3. El segundo gana el 10% más que el primero
4. El tercero el 10% más que el segundo, y así sucesivamente hasta llegar al n.

Se deben hacer tres rutinas. La primera, debe calcular el salario. La segunda, debe calcular el valor neto a pagar considerando descuentos como retención en la fuente (puede ser 14%), seguro social y pensión. La tercera, debe imprimir la información de cada empleado (salario, valor de la retención en la fuente, valor del seguro social, valor pensión, neto a pagar).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-3
Responder
Imágen de perfil de Billy Joel
Val: 2.002
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Nomina en JAVA

Publicado por Billy Joel (594 intervenciones) el 25/04/2020 02:20:18
Espero que esto te sirva:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
 
/**
 *
 * @author billy.johnson
 */
public class Nomina {
 
    public static String leer(String mensaje) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = null;
        try {
            System.out.print(mensaje);
            s = br.readLine();
        } catch (IOException ex) {
            System.out.println("Hubo un error de lectura, vuelva a intentarlo");
        }
        if (s == null) {
            s = leer(mensaje);
        }
        return s;
    }
 
    public static Integer leerInt(String mensaje) {
        Integer i = null;
        try {
            i = Integer.parseInt(leer(mensaje));
        } catch (NumberFormatException ex) {
            System.out.println("Hubo un error de formato, vuelva a intentarlo");
        }
        if (i == null) {
            i = leerInt(mensaje);
        }
        return i;
    }
 
    public static Double leerDouble(String mensaje) {
        Double d = null;
        try {
            d = Double.parseDouble(leer(mensaje));
        } catch (NumberFormatException ex) {
            System.out.println("Hubo un error de formato, vuelva a intentarlo");
        }
        if (d == null) {
            d = leerDouble(mensaje);
        }
        return d;
    }
 
    public static void main(String[] args) {
        int n = leerInt("1. Ingrese la cantidad de empleados: ");
        double salario = leerDouble("2. Ingrese el salario del primer empleado");
        Empleado[] empleados = new Empleado[n];
        empleados[0] = new Empleado(salario);
        for (int i = 1; i < empleados.length; i++) {
            salario *= 1.10;
            empleados[i] = new Empleado(salario);
        }
        double salariosBrutos = 0;
        double retenciones = 0;
        double salariosNetos = 0;
        for (int i = 0; i < empleados.length; i++) {
            salariosBrutos += empleados[i].getSalarioBruto();
            retenciones += empleados[i].getImpuesto();
            salariosNetos += empleados[i].getSalarioNeto();
            System.out.println("Empleado #" + (i + 1) + ":\n" + empleados[i]);
        }
        System.out.println("\n\nTotal en retenciones: " + retenciones
                + "\nTotal en salarios netos: " + salariosNetos
                + "\nTotal a pagar en nómina: " + salariosBrutos);
    }
}
 
class Empleado {
 
    private double salarioBruto;
    private double impuesto;
    private double salarioNeto;
 
    public Empleado(double salarioBruto) {
        this.salarioBruto = salarioBruto;
        impuesto = round2Decimals(salarioBruto * 0.14);
        salarioNeto = salarioBruto - impuesto;
    }
 
    @Override
    public String toString() {
        return "Salario Bruto: " + salarioBruto
                + "\nImpuestos y retenciones:" + impuesto
                + "\nSalario neto: " + salarioNeto;
    }
 
    public static Double round2Decimals(Double val) {
        return new BigDecimal(val.toString()).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
    }
 
    /**
     * @return the salarioBruto
     */
    public double getSalarioBruto() {
        return salarioBruto;
    }
 
    /**
     * @param salarioBruto the salarioBruto to set
     */
    public void setSalarioBruto(double salarioBruto) {
        this.salarioBruto = salarioBruto;
    }
 
    /**
     * @return the impuesto
     */
    public double getImpuesto() {
        return impuesto;
    }
 
    /**
     * @param impuesto the impuesto to set
     */
    public void setImpuesto(double impuesto) {
        this.impuesto = impuesto;
    }
 
    /**
     * @return the salarioNeto
     */
    public double getSalarioNeto() {
        return salarioNeto;
    }
 
    /**
     * @param salarioNeto the salarioNeto to set
     */
    public void setSalarioNeto(double salarioNeto) {
        this.salarioNeto = salarioNeto;
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Billy Joel
Val: 2.002
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Nomina en JAVA

Publicado por Billy Joel (594 intervenciones) el 25/04/2020 20:39:58
wao un voto en negativo... me gustaría saber que no le gustó para ver si puedo mejorar EN SERIO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar