目录
一、问题描述和基本要求
【问题描述】
设计一个简单的算术表达式计算器。
【基本要求】
实现标准整数类型的四则运算表达式的求值(包含括号,可多层嵌入)。
【测试数据】
(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.判断运算符操作数模块:
判断用户输入的字符为运算符或操作数,进行分类操作。
4.判断优先级模块:
判断输入符号和操作符栈顶元素的优先级。
5.表达式求值模块:
取操作符栈顶元素及两个操作数栈顶元素进行运算.
四、物理设计
系统流程图