《数据结构课程设计》算术表达式求
一、题目及定义
【问题描述】
设计一个简单的算术表达式计算器。
【基本要求】
实现标准整数类型的四则运算表达式的求值(包含括号,可多层嵌入)。
【测试数据】
(30+270)/3-123
5+ (9* (62-37) +15) *6解项目预习报告
二、问题分析和任务定义
设计2个栈,分别用于存放操作数和操作符,其中操作符有优先级。栈内存放的操作数用一个类名为Operand的类存放;操作符用Operator类存放,并且设置 相应运算符的优先级。
将用户输入的整个四则运算表达式字符串可看作由操作数,运算符和左右括弧()组成的字符串,并用事先定义的操作数类、操作符 类来表示相应的对象。用一个叫分析器的类(Analyzer)对输入的四则运算进行分析扫描,每次返回一个字符串;定义一个名为calculate的函数将Analyzer的静态方法返回的字符串构造为相应的对象,放入各自的栈,并利用四则运算规则,计算相应的结果。
calculate函数利用四则运算的规则:乘、除优先级高于加、减,则放入操作符栈的规则为:
1、操作符栈里符号进栈规则是,后进栈的操作符优先级必须高于已经进栈符号的优先级,比方如果接收的操作符优先级等于或小于(<=)栈顶操作符优先级,则先对栈顶操作符进行出栈,运算;再将后面的操作符入栈保存。这样保证操作符栈里符号优先级为由低到高,符合优先级高的操作符先出栈,参与运算的规则。
2、遇到左括弧“(”时,先将左括弧“(”进栈,当扫描到右括