SOS

Iniciado por imircha, 21 Junio 2016, 19:20 PM

0 Miembros y 1 Visitante están viendo este tema.

imircha

Necesito hacer un programa en Java, utilizando métodos, que lea en un menú del programa principal y dependiendo de la opción haga el llamado al método correspondiente. Pero no se que estoy haciendo mal que me da errores o horrores. Si alguien me puede ayudar se lo agradezco.
Aquí les dejo lo que he hecho hasta ahora

/**
* @(#)mate.java
*
* mate application
*
* @author
* @version 1.00 2016/6/1
*/
import java.io.*;
public class mate {
   
    public static void main(String[] args) {
       
       InputStreamReader entrada = new InputStreamReader(System.in);
       BufferedReader flujoEntrada = new BufferedReader(entrada);
       
       String datoentrada;
       double op1,op2, r1,r2;
       int opcion;
       char resp;
       
       
       try{
       
       do{
       
           
       System.out.println("seleccione la opcion");
       System.out.println("1: suma");
       System.out.print("2: resta");
       System.out.print("3: multiplicar");
       System.out.print("4: dividir");
       System.out.print("5: fin");
     
       datoentrada = flujoEntrada.readLine();
       opcion = Integer.parseInt(datoentrada);
       
       
       switch (opcion){
       
          case 1:
             suma(op1,op2,r1,r2);
             break;
          case 2:
             resta(op1,op2,r1,r2);
             break;
          case 3:
             multiplicar(op1,op2,r1,r2);
             break;
          case 4:
             dividir(op1,op2,r1,r2);
             break;
          case 5:
             
             break;
             
       default:
          System.out.println ("El numero seleccionado no es una opción");
          break;
       }
             
             
     }while (opcion!=5);
       
       }
    catch (IOException error)
        {
          System.err.println("Error " + error.getMessage());
        }
    }
   

    public static double  suma(double num1,double num2,double result, double resultado2){
        do  {
       
       System.out.println("ingrese primer numero: ");
       datoentrada = flujoEntrada.readLine();
        num2 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese segundo numero: ");
       datoentrada = flujoEntrada.readLine();
       num2 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese resultado: ");
       datoentrada = flujoEntrada.readLine();
       result = Double.parseDouble(datoentrada);
       
       resultado2=num1+num2;
       
       if(resultado2=result){
          System.out.println("El resultado es correcto");
       }
       else{
          System.out.println("El resultado es incorrecto");
          }
       System.out.println("¿Desea realizar otra suma? (S/N)");
       }while (resp="S");
    }

   public static double  resta (double num1,double num2,double result, double resultado2){
      
   
       System.out.println("ingrese primer numero: ");
       datoentrada = flujoEntrada.readLine();
       num1 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese segundo numero: ");
       datoentrada = flujoEntrada.readLine();
       num2 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese resultado: ");
       datoentrada = flujoEntrada.readLine();
       result = Double.parseDouble(datoentrada);
       
       resultado2=num1-num2;
       
       if(resultado2=result){
             System.out.println("verdadero");
       }
       else{
          System.out.println("falso");
       }
   }
   
   public static void multiplicar (double num1,double num2,double result, double resultado2){
      
      System.out.println("ingrese primer numero: ");
       datoentrada = flujoEntrada.readLine();
       num1 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese segundo numero: ");
       datoentrada = flujoEntrada.readLine();
       num2 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese resultado: ");
       datoentrada = flujoEntrada.readLine();
       result = Double.parseDouble(datoentrada);
       
       resultado2=num1*num2;
      
       if(resultado2=result){
             System.out.println("verdadero");
       }
       else{
          System.out.println("falso");
       }
   }
      
          public static void dividir(double num1,double num2,double result, double resultado2){
      
      System.out.println("ingrese primer numero: ");
       datoentrada = flujoEntrada.readLine();
       num1 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese segundo numero: ");
       datoentrada = flujoEntrada.readLine();
       num2 = Double.parseDouble(datoentrada);
       
       System.out.println("ingrese resultado: ");
       datoentrada = flujoEntrada.readLine();
       result = Double.parseDouble(datoentrada);
       
       resultado2=num1/num2;
      
       if(resultado2=result){
             System.out.println("verdadero");
       }
       else{
          System.out.println("falso");
       }
      }
   }

Eleкtro

#1
Por favor, ponle la correspondiente etiqueta GeShi al código que has publicado. Estás en un foro de programación.

También deberías mencionar en que orden te da excepción y que tipo excepción es con su respectivo mensaje de error, eso en caso de que sea un error en tiempo de ejecución, ya que como no has especificado nada también podría tratarse de errores del compiler ...¿quien sabe?. Danos la información necesaria para poder ayudarte, no somos adivinos.

¿Has depurado el código en cuestión?.

PD: Yo no trabajo con Java, solamente te he indicado cosas básicas que debes proporcionar si formulas una pregunta de programación respecto a un error en un código...

Saludos








Once

Concuerdo con lo que dijo @Eleкtro no somos adivinos, si no nos dices que error tienes, es complicado ayudarte. Ahora, mirando por encima el código, un error que veo estás cometiendo es que estás usando variables en bloques de código donde no están declaradas (lee más sobre el scope)

Por ejemplo, datoentrada lo declaras en el método main, pero lo usas en suma donde la variable no está definida (lo que es un error).

Para solucionarlo, si quieres que datoentrada pueda ser utilizado por todos los métodos (o más de un método) declara la variable en el cuerpo de la clase para que así sea visible para todos los métodos. De lo contrario, la variable solo será visible en el método en que fue declarada.

Si ese no es el error, por favor comentanos cuál es.

Saludos!