java吧 关注:1,247,614贴子:12,728,337
  • 4回复贴,共1

编写计算器的,麻烦高手帮忙看看哪里错了,加减乘除实现不了啊

只看楼主收藏回复

public void actionPerformed(ActionEvent e){
String act=e.getActionCommand();
if(e.getSource()==backspace){
f.setText(f.getText().substring(0, f.getText().length()-1));
}
if(e.getSource()==ce){
f.setText("0");
return;
}
if(e.getSource()==c){
f.setText("0");
ch='#';
}
if(act!="1/x"&&act.charAt(0)>='0'&&act.charAt(0)<='9'){
if(can){
f.setText(act);
can=false;
}
else{
try{
if(Float.parseFloat(f.getText())==0){
if(f.getText().equals("0.")){
f.setText(f.getText()+act);
}
else{
f.setText(act);
}
return;
}
else{
f.setText(f.getText()+act);
return;
}
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"输入格式错误!","警告!",JOptionPane.ERROR_MESSAGE);
return;
}
}
if(act.equals("+")||act.equals("-")||act.equals("*")||act.equals("/")){
if(ch!='#'){
try{
num=Calculator(num,ch,Float.parseFloat(f.getText()));
f.setText(String.valueOf(num));
ch=act.charAt(0);
can=true;
return;
}catch(NumberFormatException e1){JOptionPane.showMessageDialog(null, "输入格式错误!", "警告!",
JOptionPane.ERROR_MESSAGE);
return;
}
}
else{
try{
num=
Float.parseFloat(f.getText());
ch=act.charAt(0);
can=true;
return;
}catch(NumberFormatException e1){JOptionPane.showMessageDialog(null, "输入格式错误!", "警告!",
JOptionPane.ERROR_MESSAGE);return;}
}
}
if(act.equals("=")){
can=true;
try{
if(ch=='#'){
return;
}
float numm=Float.parseFloat(f.getText());
num=Calculator(num,ch,numm);
f.setText(String.valueOf(num));
ch='#';
return;
}catch(NumberFormatException e1){
JOptionPane.showMessageDialog(null,"输入格式错误!","警告!",JOptionPane.ERROR_MESSAGE);
return;
} }
}
}
public float Calculator(float a,char c,float b){
float sum=0;
switch(c){
case'+':sum=a+b;break;
case'-':sum=a-b;break;
case'*':sum=a*b;break;
case'/':
if(b==0){
JOptionPane.showMessageDialog(null,"除0错误!","警告!", JOptionPane.ERROR_MESSAGE);
return 0;
}
sum=a/b;
break;
}
return sum;
}



1楼2012-07-24 17:05回复
    好长的代码,而且不完整,没法调试啊


    IP属地:江苏2楼2012-07-24 17:07
    回复
      楼主这个计算器做的可真复杂


      3楼2012-07-24 17:08
      回复
        太复杂了,本来想进来帮忙的,结果看晕了,这是人写的代码吗。?


        IP属地:广东来自掌上百度4楼2012-07-24 18:27
        回复
          你可以用c++实现,很好实现
          ,编写一个switch语句就行。
          给你代码:
          #include<iostream>
          using namespace std;
          int main()
          {
          double a,b;//定义两个操作数
          cout<<"********这是一个计算器**********"<<endl;
          cout<<"********这是计算器的菜单**********"<<endl;
          cout<<"********1.加法**********"<<endl;
          cout<<"********2.减法**********"<<endl;
          cout<<"********3.乘法"<<endl;
          cout<<"********4.除法**********"<<endl;
          int i;
          switch(i)

          case 1:
          cout<<"你输入的操作数输出的结果为:"<<endl;
          cout<<a+b<<endl;
          case 2:
          cout<<"你输入的操作数输出的结果为:"<<endl;
          cout<<a-b<<endl;
          case 3:
          cout<<"你输入的操作数输出的结果为:"<<endl;
          cout<<a*b<<endl;
          case 4:
          cout<<"你输入的操作数输出的结果为:"<<endl;
          cout<<a/b<<endl;

          }


          5楼2012-07-24 18:47
          回复