目录
一、问题描述和基本要求
【问题描述】
设计一个简单的算术表达式计算器。
【基本要求】
实现标准整数类型的四则运算表达式的求值(包含括号,可多层嵌入).
【测试数据】
(30+2*70)/3-12*3
5+(9*(62-37)+15)*6
要求自行设计非法表达式,进行程序测试,以保证程序的稳定运行。
【实现提示】
可以设计以下辅助函数
status isNumber(char ReadInChar); //视ReadInchar 是否是数字而返回 TRUE 或 FALSE 。
int TurnToInteger(char IntChar); // 将字符’0’.’9’ 转换为整数 9
二、问题分析和任务定义
【问题分析】
要对一个表达式进行求值,首先要正确解释表达式。
表达示求值应按照下述算数四则运算法则来进行运算:
(1)先乘除,后加减;
(2)从左到右计算;
(3)先括号内,后括号外。
【任务定义】
(1)判断表达式是否合法;
(2)识别操作数和运算符;
(3)分模块进行运算。
三.逻辑设计
【数据结构选择】
建立两个栈结构,操作数栈用于存放操作数,操作符栈用于存放操作符。
【模块划分】
1.两个操作数运算模块
2.栈内运算符优先级模块
3.栈外运算符优先级模块
4.中缀表达式转逆波兰式模块
5.计算逆波兰式模块
四.物理设计
【存储结构】
1.开辟两个栈结构分别用来存储运算数和操作符;
2.存储中缀表达式和后缀表达式,以便于写入和读取。