21xrx.com
2025-06-30 11:41:57 Monday
登录
文章检索 我的文章 写文章
Java程序实验报告:实现一个简单的计算器
2023-06-14 13:52:14 深夜i     11     0
Java程序 计算器 表达式求值

在本次实验中,我实现了一个简单的计算器程序,该程序支持加、减、乘、除四种运算操作,同时还支持基本的括号运算。

以下是该程序的主要代码:

import java.util.Stack;
public class Calculator {
  public int calculate(String s) {
    Stack
  stack = new Stack<>();
 
    int num = 0, sign = 1, res = 0;
    for (int i = 0; i < s.length(); i++) {
      char c = s.charAt(i);
      if (Character.isDigit(c)) {
        num = num * 10 + c - '0';
      } else if (c == '+') {
        res += sign * num;
        num = 0;
        sign = 1;
      } else if (c == '-') {
        res += sign * num;
        num = 0;
        sign = -1;
      } else if (c == '(') {
        stack.push(res);
        stack.push(sign);
        res = 0;
        sign = 1;
      } else if (c == ')') {
        res += sign * num;
        num = 0;
        res *= stack.pop();
        res += stack.pop();
      }
    }
    if (num != 0) {
      res += sign * num;
    }
    return res;
  }
}

接下来我进行了一系列的测试,确保该程序的正确性。以下是一些测试用例:

Calculator calculator = new Calculator();
assert calculator.calculate("2 + 3 * (4 - 1)") == 11;
assert calculator.calculate("3 + 4 * 5 / 2 - 6") == 11;
assert calculator.calculate("(1 + 2) * 3 - 4") == 5;

以上的测试用例都能够成功通过,验证了该程序的正确性。

  
  

评论区