Java - Ayuda con calculo matematico

 
Vista:
Imágen de perfil de Alan
Val: 25
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con calculo matematico

Publicado por Alan (11 intervenciones) el 08/06/2019 00:28:28
Buen día. Mi intención es hacer en netbens la siguiente operacion:

1*- Colocar en un jTextField el peso de un paciente: ejemplo 35 kg.
2*- Posteriormente colocar en 3 jtextField diferentes la separacion del peso anterior de la siguiente forma:

Del peso antes colocado 35 kg. Tomar los primeros 10 kg y colocarlos en el primer JjtextField; despues los siguientes 10 kg y colocarlos en el segunto jTextField y por ultimo el peso restante colocarlos en el 3er jTextField.

Queda de la sigueinte manera: 1er jTextField 10kg, 2do jTextField 10 kg, 3er jtextField 15 kg. En total de los 3 jTextField da 35 kg.

EJEMPLO 2.
1*- Mismo procedimiento pero ahora con peso de 12 kg

Queda de la sigueinte manera: 1er jTextField 10kg, 2do jTextField 2 kg, 3er jtextField 0 kg. En total de los 3 jTextField da 35 kg.

Me podrian ayudar con eso... Si ocupan mas informacion me comentan.

El metodo de calculo se llama Holliday-Segar es para calcular líquidos en pediatría.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con calculo matematico

Publicado por a1programe (3 intervenciones) el 08/06/2019 04:21:10
Vas a tu IDE y te creas un nuevo Java_Pakage (Paquete) con el nombre "peso" dentro de ese paquete creas un jFrame Form con el nombre "pesoForm" lo abres y reemplazas todos el código por este:


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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package peso;
 
/**
 *
 * @author a1programer
 */
public class pesoForm extends javax.swing.JFrame {
 
    /**
     * Creates new form peroForm
     */
    public pesoForm() {
        initComponents();
    }
 
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
 
        jLabel1 = new javax.swing.JLabel();
        jTextFieldPeso = new javax.swing.JTextField();
        jTextFieldRango1 = new javax.swing.JTextField();
        jTextFieldRango2 = new javax.swing.JTextField();
        jTextFieldResto = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
        jLabel1.setText("Peso");
 
        jTextFieldPeso.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldPesoActionPerformed(evt);
            }
        });
 
        jTextFieldRango1.setEditable(false);
        jTextFieldRango1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldRango1ActionPerformed(evt);
            }
        });
 
        jTextFieldRango2.setEditable(false);
 
        jTextFieldResto.setEditable(false);
 
        jButton1.setText("Calcular");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
 
        jLabel2.setText("1er Rango");
 
        jLabel3.setText("2do Rango");
 
        jLabel4.setText("Restante");
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextFieldPeso, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1)
                    .addComponent(jLabel1))
                .addGap(87, 87, 87)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jLabel2)
                        .addContainerGap(127, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel4)
                            .addComponent(jLabel3)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jTextFieldResto, javax.swing.GroupLayout.DEFAULT_SIZE, 115, Short.MAX_VALUE)
                                .addComponent(jTextFieldRango2)
                                .addComponent(jTextFieldRango1)))
                        .addGap(0, 0, Short.MAX_VALUE))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldPeso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextFieldRango1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel3)
                .addGap(3, 3, 3)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jTextFieldRango2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(15, 15, 15)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldResto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(106, Short.MAX_VALUE))
        );
 
        pack();
    }// </editor-fold>                        
 
    private void jTextFieldPesoActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }
 
    private void jTextFieldRango1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }
 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
 
        int peso= 0;
        peso =  Integer.parseInt(jTextFieldPeso.getText());
 
            if(peso>=10)
            {
             jTextFieldRango1.setText("10");
               peso=peso-10;
 
               if(peso>=10)
               {
                jTextFieldRango2.setText("10");
                peso=peso-10;
                jTextFieldResto.setText(Integer.toString(peso));
 
               }
               else {
                    jTextFieldRango2.setText(Integer.toString(peso));
                    jTextFieldResto.setText("0");
                    }
            }
            else {
                  jTextFieldRango1.setText(Integer.toString(peso));
                  jTextFieldRango2.setText("0");
                  jTextFieldResto.setText("0");
                 }
 
 
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(pesoForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(pesoForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(pesoForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(pesoForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
 
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new pesoForm().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JTextField jTextFieldPeso;
    private javax.swing.JTextField jTextFieldRango1;
    private javax.swing.JTextField jTextFieldRango2;
    private javax.swing.JTextField jTextFieldResto;
    // End of variables declaration                   
}
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 Alan
Val: 25
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con calculo matematico

Publicado por Alan (11 intervenciones) el 08/06/2019 06:22:47
Exelente gracias por tu ayuda, si resolvi el problema!! GRACIAS.

Ahora supongamos que el peso es 25.3 kg, me debe de arrojar:

Rango 1 --------- 10
Rango 2 --------- 10
Resto ------------ 5.3

Como le hago para que imprima en decimales? Logre modificar el codigo a la siguiente forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int pesox= 0;
pesox =  (new Double(jTextPeso2.getText())).intValue();
if(pesox>=10){
    jTextHs.setText("10");
    pesox = pesox-10;
    if(pesox>=10){
        jTextHs1.setText("10");
        pesox=pesox-10;
        jTextHs2.setText(Integer.toString(pesox));
    } else {
        jTextHs1.setText(Integer.toString(pesox));
        jTextHs2.setText("0");
    }
} else {
    jTextHs.setText(Integer.toString(pesox));
    jTextHs1.setText("0");
    jTextHs2.setText("0");
}

Todo funciona bien con enteros pero con decimales NO, no imprime el punto y el numero!!!

Como podre hacer eso?
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
sin imagen de perfil
Val: 186
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con calculo matematico

Publicado por Juan (70 intervenciones) el 08/06/2019 09:13:27
Estas trabajando la variable del peso en INT, lo cual no almacena decimales, solo debes cambiarlo por float o double y ya te trabaja con decimales.
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con calculo matematico

Publicado por Kabuto (1381 intervenciones) el 08/06/2019 13:36:15
Hola, prueba con las siguientes modificaciones.
Como te han dicho, en lugar de con un int tendrás que trabajar con un double para el peso.
Y en lugar de un double primitivo, puedes usar un objeto Double que luego te ahorra un poquito de código, pero tampoco es importante.

Lo que si es importante es usar un try catch por si el TextField Peso 2 estuviera vacío o no tuviera un valor numérico válido al ejecutarse la operación.
Sobre todo es común tener problemas con la coma o punto decimal.
Por ejemplo, el usuario pone un valor con coma decimal : 56,90
Pero el sistema solo va a saber parsear a Double valores con punto decimal: 56.90
O viceversa, esto puede variar según el sistema operativo y/o región del usuario

Usando try catch podemos controlar estas excepciones y avisar al usuario con una ventana del error que está ocurriendo.

Para setear los pesos en los campos de texto, te puede valer con pasarle como argumento simplemente el objeto pesox que tiene su própio método .toString() y automáticamente se convertirá en texto.

Sin embargo, al operar con valores double o float, a veces el valor adquiere un montón de decimales que probablemente no vas a necesitar.
Si quieres asegurarte de que los pesos van a salir redondeados a por ejemplo solo dos decimales, puedes usar String.format() como ves en el código.

Creo que lo he escrito todo correctamente, pruébalo y nos cuentas.

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
try {
 
    Double pesox= Double.parseDouble(jTextPeso2.getText());
 
    if(pesox>=10){
        jTextHs.setText("10");
        pesox = pesox-10;
        if(pesox>=10){
            jTextHs1.setText("10");
            pesox=pesox-10;
            jTextHs2.setText(String.format("%.2f", pesox));
        } else {
            jTextHs1.setText(String.format("%.2f", pesox));
            jTextHs2.setText("0");
        }
    } else {
        jTextHs.setText(String.format("%.2f", pesox));
        jTextHs1.setText("0");
        jTextHs2.setText("0");
    }
}
catch(NullPointerException npe) {
    JOptionPane.showMessageDialog(null, "El campo JTextPeso2 está vacio",
					"Error", JOptionPane.ERROR_MESSAGE);
 
}
catch(NumberFormatException nfe) {
    JOptionPane.showMessageDialog(null, "El campo JTextPeso2 no contiene un valor numérico válido."
					+ "\nCompruebe el tipo de punto decimal", "Error", JOptionPane.ERROR_MESSAGE);
}
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 Alan
Val: 25
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con calculo matematico

Publicado por Alan (11 intervenciones) el 08/06/2019 14:58:30
Muchas gracias, funciono muy bien!!

Con esto podre seguirle con el código, soy nuevo en estoy estoy aprendiendo poco a poco.

Gracias.
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