我是一个新手,这是一个计算器程序编译可过,也可执行,但是执行的结果好像不是很正确,要求可以实现基本的加减乘除,包括连续的运算(连加连乘先加在减等等)请问各位高手我的程序是不是哪里错了啊(因为是菜鸟所以这个程序还很拙)这个要求在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("输入错误:");
}
}
}
}
谢谢啦!
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("输入错误:");
}
}
}
}
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("输入错误:");
}
}
}
}
应该把fui类中的ch改成成员变量
这个程序完全可以连续运算