我是一个新手,这是一个计算器程序编译可过,也可执行,但是执行的结果好像不是很正确,要求可以实现基本的加减乘除,包括连续的运算(连加连乘先加在减等等)请问各位高手我的程序是不是哪里错了啊(因为是菜鸟所以这个程序还很拙)这个要求在JDK下运行的
谢谢啦!
test1.java
import java.io.*;   public class test1{   
public  String ReadLine()   
{   
  try{   
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));   
        return br.readLine();   
     }   
  catch(Exception ex)     
     {   
        return null;
     }   
}   
public  boolean isInteger(String str)   
{   
   try{   
         Integer.parseInt(str);   
         return true;
      }   
   catch(Exception ex)   
      {
         return   false;
      }   
}   
public int inPut()   
{   
          System.out.print("请输入一个数据:");   
          String tmp=ReadLine();   
          while(!isInteger(tmp))   
          {   
              System.out.print("输入错误请重新输入:");   
              tmp=ReadLine();   
          }   
          int data=Integer.parseInt(tmp); 
          return data;
          
             
}   
public void main(String args[])
{
}
}  fui.java
import java.io.*;
public class fui
{
  public char caoZ()throws IOException
{
   char ch;
   InputStreamReader ir;
   BufferedReader in;
   ir=new InputStreamReader(System.in);
   in=new BufferedReader(ir);
   System.out.println("请输入操作符:");
   String s=in.readLine();
   ch=s.charAt(0);
   return ch;
   
}
  public boolean yesorNO()throws IOException
{
   switch(caoZ())
   {
     case '+':
     return true;
     
     case '-':
     return true;
     
     case '*':
     return true;
     
     case '/':
     return true;
     
     default:
     return false;
     
     
   }
}
public void main(String args[])
{
}}CalculatorA.java
import java.io.*;
public class CalculatorA
{
   public static void main(String args[])throws IOException
{
   test1 a=new test1();
   fui b=new fui();
   int z;
   int x= a.inPut();
   char h=b.caoZ();
   while(b.yesorNO())
   {
     
     switch(h)
     {
       case '+':
       z=x+a.inPut();
       System.out.println("运算结果:"+z);
       
       break;
       case '-':
       z=x-a.inPut();
       System.out.println("运算结果:"+z);
       
       break;
       case '*':
       z=x*a.inPut();
       System.out.println("运算结果:"+z);
       
       break;
       case '/':
       z=x/a.inPut();
       System.out.println("运算结果:"+z);
       
       break;
       default:
       System.out.println("输入错误:");
     }
   }
    
}
}

解决方案 »

  1.   

    CalculatorA类中做了一些修改,不知您是否中意?
    public class CalculatorA { 
      public static void main(String args[])throws IOException { 
        test1 a=new test1(); 
        fui b=new fui(); 
        int z; 
        int x= a.inPut(); 
        //char h=b.caoZ(); 
        while(b.yesorNO()) { 
          switch(b.ch) { 
            case '+': z=x+a.inPut(); System.out.println("运算结果:"+z); x=z;  break; 
            case '-': z=x-a.inPut(); System.out.println("运算结果:"+z); x=z;  break; 
            case '*': z=x*a.inPut(); System.out.println("运算结果:"+z); x=z;  break; 
            case '/': z=x/a.inPut(); System.out.println("运算结果:"+z); x=z;  break; 
            default:     System.out.println(b.ch);
            System.out.println("输入错误:"); 
          } 
        } 
      } 

      

  2.   

    注意:7楼的程序中
    应该把fui类中的ch改成成员变量
    这个程序完全可以连续运算