huajia123456789 2013-12-23 14:39 采纳率: 50%
浏览 859

java语言想要运算器程序可以运行出正负数及小数点运算

public class Calculator
{ private CalcEngine engine;
private UserGUI gui;
public Calculator()
{ engine=new CalcEngine();
gui=new UserGUI(engine); }

public void show()
{ gui.setVisible(true); }
public static void main(String a[])
{ Calculator calc=new Calculator();
calc.show(); }
}
class CalcEngine
{ private double number;double result;
final double pi=3.1415926535;
char flag;
boolean isNumber;
public CalcEngine()
{ number=0;
result=0;
flag=' ';
isNumber=true;
}
public double getDisplayValue()
{ return number; }
public void numberPressed(double number)
{ if(isNumber&&this.number!=0)
{ double str1=Double.toDouble(number);
double str2=Double.toDouble(this.number);
this.number=Double.parseDouble(str2+str1);
}
else
{ this.number=number; }
isNumber=true;
}
public void plus()
{ equals();
this.flag='+'; }
public void minus()
{ equals();
this.flag='-'; }
public void mul()
{ equals();
this.flag='*'; }
public void div()
{ equals();
this.flag='/'; }
public void genhao()
{ equals();
this.flag='√'; }
public void quyu()
{ equals();
this.flag='%'; }
public void sinzhi()
{ equals();
this.flag='s'; }
public void dian()
{ equals();
this.flag='.'; }
public double equals()
{ switch(flag)
{ case '+': result=result+number; break;
case '-': result=result-number; break;
case '*': result=result*number; break;
case '/': result=result/number; break;
case '√': result=Math.sqrt( number); break;
case '%': result=result%number; break;
case 's': result= Math.sin(number*pi/180);
break;
case '.': number=(double) number; break; //这里有错
case ' ': result= number; break;
}
return result;
flag=' ';
isNumber=false;
}
public void clear()
{ number=0; result=0; }
public String getTitle()
{ return " calclation example"; }
}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)