Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaCalculator-ReversePolishTranslation

🧮 一个带 GUI 的 Java 计算器——支持中缀表达式输入、错误检查、逆波兰式(RPN)转换与求值。

核心功能

  • 表达式校验 — 自动检测括号不匹配、非法字符等语法错误
  • 🔄 中缀 → 逆波兰 — 将标准中缀表达式转换为后缀表达式(RPN)
  • 🧮 RPN 求值 — 对逆波兰式进行数值计算
  • 🖥️ GUI 界面 — 基于 Swing 的图形化交互

算法说明

中缀转后缀(调度场算法)

  1. 扫描中缀表达式
  2. 操作数直接输出
  3. 运算符与栈顶比较优先级:
    • 栈顶优先级 ≥ 当前 → 弹出并输出,重复比较
    • 否则当前运算符入栈
  4. 左括号直接入栈,右括号弹出至左括号

RPN 求值

  1. 从左到右扫描后缀表达式
  2. 遇到操作数压栈,遇到运算符弹出两个操作数计算
  3. 结果压栈,扫描结束后栈顶即为最终结果

快速开始

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

Java计算器-逆波兰式的翻译

1.设计概述

本课程设计旨在开发一个具有图形用户界面(GUI)的程序,用于中缀表达式的错误检查、转换为逆波兰式和逆波兰式的求值。

1.1 程序将接受用户输入的中缀表达式。

1.2 程序将提供错误检查功能,能够识别和报告中缀表达式中的语法错误。

1.3 程序将实现中缀表达式到逆波兰式的转换算法,并输出转换后的逆波兰式。

1.4 程序将执行逆波兰式,并给出求值结果。

2.系统设计

2.1 用户界面设计:设计一个直观、用户友好的GUI,包括输入框、按钮和输出框,用于接受用户输入、展示结果和错误信息。

2.2 错误检查功能设计:使用合适的算法和数据结构,对中缀表达式进行逐字符扫描和语法分析,检测并报告语法错误。

2.3 中缀转逆波兰式算法设计:设计算法将中缀表达式转换为逆波兰式。可以使用栈数据结构辅助实现转换过程。

2.4 逆波兰式求值算法设计:设计算法对逆波兰式进行求值,计算表达式的结果。可以使用栈数据结构辅助实现求值过程。

3.系统流程

3.1 用户输入中缀表达式,点按计算按钮。

3.2 如果用户输入表达式有错误,程序将对中缀表达式进行语法分析,并报告任何语法错误。

3.3 如果用户输入表达式没有错误,程序将使用中缀转逆波兰式算法将中缀表达式转换为逆波兰式,并将结果显示在输出框中;并使用逆波兰式求值算法计算逆波兰式的结果,并将结果显示在输出框中。

4.异常处理

4.1 程序应考虑异常情况,例如用户输入非法字符、表达式括号不匹配等情况。在发现异常时,程序应给出相应的错误提示。

4.2 可以使用适当的异常处理机制来捕获和处理异常,以确保程序的稳定性和可靠性。

5.测试和运行

在开发过程中,应进行充分的测试来验证程序的功能和正确性。

5.1 可以设计一组测试用例,包括各种合法和非法的中缀表达式,以及各种边界情况,以确保程序在各种情况下都能正确工作。

5.2 运行程序,并根据���户输入的中缀表达式,验证程序的输出是否与预期结果一致。

实现逆波兰式的求值逻辑

实现逆波兰式的求值逻辑

实现中缀式的语法检查逻辑

实现中缀式的语法检查逻辑

About

本课程设计旨在开发一个具有图形用户界面(GUI)的程序,用于中缀表达式的错误检查、转换为逆波兰式和逆波兰式的求值。

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages