Foros del Web » Programación para mayores de 30 ;) » Java »

Calculadora en Java

Estas en el tema de Calculadora en Java en el foro de Java en Foros del Web. Hola comunidad, espero me puedan ayudar con este tema. Estoy desarrollando una calculador basica en Java por medio de NetBeans 6.8. El problema que tengo ...
  #1 (permalink)  
Antiguo 04/11/2010, 17:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Calculadora en Java

Hola comunidad, espero me puedan ayudar con este tema.

Estoy desarrollando una calculador basica en Java por medio de NetBeans 6.8.
El problema que tengo es el siguiente, se supone que hay 5 opciones y si salgo de esas por ejemplo tecleo la opcion 6 este quiere hacer una operaicon cuando tiene que enviar un mensaje de que seleccione una opcion valida del 1 al 5.

Aqui el codigo:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package calculadora;
import javax.swing.JOptionPane;
/**
*
* @author */


class Calculadora{

float operacion (int operacion, float n1, float n2){
float resultado = 1.0f / 0.0f;
switch (operacion){
case 1:
resultado = n1+n2;
break;
case 2:
resultado = n1-n2;
break;
case 3:
resultado = n1*n2;
break;
case 4:
resultado = n1/n2;
break;
}
return resultado;
}
float operador(int a){
boolean datoOk = false;
String dato;
float operador =0;
do{
try{
dato = JOptionPane.showInputDialog("Valor " + a);
operador = Float.parseFloat(dato);
}
catch(NumberFormatException ex){
JOptionPane.showMessageDialog(null,"Por favor entre un número válido");
}
} while (datoOk);
return operador;
}
}

public class Main {


public static void main(String[] args) {
Calculadora BasiCal = new Calculadora();
String [] tipoOperacion ={"+","-","*","/"};
int operacion = 0;
String dato;
String menu;
float num1=0f, num2=0f;
boolean salir = false;
menu = "Elige la operación deseada \n1.- SUMA\n2.- RESTA \n3.- MULTIPLICACION\n4.-DIVISION\n5.- SALIR";
while (!salir){
salir = false;
do {
try{
dato = JOptionPane.showInputDialog(menu);
operacion = Integer.parseInt(dato);
}
catch(NumberFormatException ex){
JOptionPane.showMessageDialog(null,"Proporciona un opcion entre 1 y 5.");
}
} while (operacion == 0);

if (operacion != 5){
num1 = BasiCal.operador(1);
num2 = BasiCal.operador(2);


JOptionPane.showMessageDialog(null, num1 + " " + tipoOperacion[operacion - 1] + " " + num2 + " = " +
+ BasiCal.operacion(operacion, num1, num2),"Calculadora Basica MR*",JOptionPane.PLAIN_MESSAGE);
}


else{
JOptionPane.showMessageDialog(null, "Calculadora Basica, Derechos Reservados", "Calculadora Basica RM*", JOptionPane.PLAIN_MESSAGE);
salir = true;
}
}
}

}


Que estoy omitiendo???
  #2 (permalink)  
Antiguo 04/11/2010, 20:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 19
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Calculadora en Java

en el switch en el ultimo caso despues del 5 pones default asi:
Código Java:
Ver original
  1. switch (x){
  2.      case 1:
  3.          //
  4.          break;
  5.      case 2:
  6.          //
  7.          break;
  8.      default:
  9.          //////
  10. }

default es la opcion para diferente a todo lo de arriba
  #3 (permalink)  
Antiguo 04/11/2010, 21:15
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Calculadora en Java

Gracias, ya coloque esa linea pero aun persiste.

Segun me comentan lo siguiente:

El error se encuentra en el método operador, cuando recibes un valor que no puede ser "parseado" a un Float, se sale del ciclo y hace la operación con un valor de 0 cuando deberia entrar de nuevo en el ciclo hasta que tengas un valor correcto, el error se encuentra en que no manejas adecuadamente la bandera datoOk.

El problema es que no se como puedo correjir.

Etiquetas: calculadora
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:48.