胡汉九 发表于 2021-11-28 15:06:04

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
                                                                                             资源提供者:风火轮技术团队






风火轮用户39954 发表于 2021-12-17 18:13:56

妙啊
页: [1]
查看完整版本: Java实现一个计算器