🧮 一个带 GUI 的 Java 计算器——支持中缀表达式输入、错误检查、逆波兰式(RPN)转换与求值。
- ✅ 表达式校验 — 自动检测括号不匹配、非法字符等语法错误
- 🔄 中缀 → 逆波兰 — 将标准中缀表达式转换为后缀表达式(RPN)
- 🧮 RPN 求值 — 对逆波兰式进行数值计算
- 🖥️ GUI 界面 — 基于 Swing 的图形化交互
- 扫描中缀表达式
- 操作数直接输出
- 运算符与栈顶比较优先级:
- 栈顶优先级 ≥ 当前 → 弹出并输出,重复比较
- 否则当前运算符入栈
- 左括号直接入栈,右括号弹出至左括号
- 从左到右扫描后缀表达式
- 遇到操作数压栈,遇到运算符弹出两个操作数计算
- 结果压栈,扫描结束后栈顶即为最终结果
git clone https://github.com/liuqasd/JavaCalculator-ReversePolishTranslation.git
cd JavaCalculator-ReversePolishTranslation
# 使用 IDE (Eclipse/IntelliJ) 导入并运行 Main.java
# 或直接编译运行:
javac -d out src/**/*.java
java -cp out Main本课程设计旨在开发一个具有图形用户界面(GUI)的程序,用于中缀表达式的错误检查、转换为逆波兰式和逆波兰式的求值。
1.1 程序将接受用户输入的中缀表达式。
1.2 程序将提供错误检查功能,能够识别和报告中缀表达式中的语法错误。
1.3 程序将实现中缀表达式到逆波兰式的转换算法,并输出转换后的逆波兰式。
1.4 程序将执行逆波兰式,并给出求值结果。
2.1 用户界面设计:设计一个直观、用户友好的GUI,包括输入框、按钮和输出框,用于接受用户输入、展示结果和错误信息。
2.2 错误检查功能设计:使用合适的算法和数据结构,对中缀表达式进行逐字符扫描和语法分析,检测并报告语法错误。
2.3 中缀转逆波兰式算法设计:设计算法将中缀表达式转换为逆波兰式。可以使用栈数据结构辅助实现转换过程。
2.4 逆波兰式求值算法设计:设计算法对逆波兰式进行求值,计算表达式的结果。可以使用栈数据结构辅助实现求值过程。
3.1 用户输入中缀表达式,点按计算按钮。
3.2 如果用户输入表达式有错误,程序将对中缀表达式进行语法分析,并报告任何语法错误。
3.3 如果用户输入表达式没有错误,程序将使用中缀转逆波兰式算法将中缀表达式转换为逆波兰式,并将结果显示在输出框中;并使用逆波兰式求值算法计算逆波兰式的结果,并将结果显示在输出框中。
4.1 程序应考虑异常情况,例如用户输入非法字符、表达式括号不匹配等情况。在发现异常时,程序应给出相应的错误提示。
4.2 可以使用适当的异常处理机制来捕获和处理异常,以确保程序的稳定性和可靠性。
在开发过程中,应进行充分的测试来验证程序的功能和正确性。
5.1 可以设计一组测试用例,包括各种合法和非法的中缀表达式,以及各种边界情况,以确保程序在各种情况下都能正确工作。
5.2 运行程序,并根据���户输入的中缀表达式,验证程序的输出是否与预期结果一致。

