Java实现一个计算器
使用Java编程来实现一个计算器 (来自风火轮技术团队)计算器可以实现简单到复杂的计算:
加减,乘除,开方,幂次运算
实现的计算器的界面:
(1)初始化计算器以及计算器的外观代码:
(2)计算器界面的设计编写程序代码:
(3)如何实现小数点的计算代码:
(4)实现计算结果的的代码代码:
(5)计算符号实现的代码:
private void handleOperator(String key) {
if (operator.equals("/")) {
// 除法运算
// 如果当前结果文本框中的值等于0
if (getNumberFromText() == 0.0) {
// 操作不合法
operateValidFlag = false;
resultText.setText("除数不能为零");
} else {
resultNum /= getNumberFromText();
}
} else if (operator.equals("1/x")) {
// 倒数运算
if (resultNum == 0.0) {
// 操作不合法
operateValidFlag = false;
resultText.setText("零没有倒数");
} else {
resultNum = 1 / resultNum;
}
} else if (operator.equals("+")) {
// 加法运算
resultNum += getNumberFromText();
} else if (operator.equals("-")) {
// 减法运算
resultNum -= getNumberFromText();
} else if (operator.equals("*")) {
// 乘法运算
resultNum *= getNumberFromText();
} else if (operator.equals("sqrt")) {
// 平方根运算
resultNum = Math.sqrt(resultNum);
} else if (operator.equals("%")) {
// 百分号运算,除以100
resultNum = resultNum / 100;
} else if (operator.equals("+/-")) {
// 正数负数运算
resultNum = resultNum * (-1);
} else if (operator.equals("=")) {
// 赋值运算
resultNum = getNumberFromText();
}
if (operateValidFlag) {
// 双精度浮点数的运算
long t1;
double t2;
t1 = (long) resultNum;
t2 = resultNum - t1;
if (t2 == 0) {
resultText.setText(String.valueOf(t1));
} else {
resultText.setText(String.valueOf(resultNum));
}
}
// 运算符等于用户按的按钮
operator = key;
firstDigit = true;//这个地方太tm巧妙了想好几天, 先进行上一次操作,再将本次操作(最后一次操作)赋给操作,所以每次操作前都先进行上一次操作,默认操作为"=" 挺nb
operateValidFlag = true;
}
补充:计算器实现的完整的代码可以点开百度网盘获取
链接:https://pan.baidu.com/s/1GborD1HELZiaYFJye88mDw 提取码:79gw
资源提供者:风火轮技术团队
妙啊
页:
[1]