一.问题分析
问题是设计一个简单的算术表达式计算器,可使用树,栈等数据结构,在键盘上键入一算术表达式,计算出表达式的值。
二.要求
1.实现标准整数类型的四则运算表达式(加减乘除)的求值。
2.包括括号,可多层嵌入。
3.要求自行设计非法表达式,进行程序测试,以保证程序的稳定运行。
三.逻辑设计
数据结构:
栈:
typedef struct stack{
int a[N];
int top;
}ST;//中缀转后缀
所用函数:
int isempty(ST *T);//判断栈是否为空
int isfull(ST *T);//判断栈是否为满
int gettop(ST *T);//获取栈顶元素
int pop(ST *T);//出栈
void push(ST *T,int s);//入栈
void transter(char *in,char *post);//中缀转为后缀
float Calculate(char *post);//计算中缀的值
main();//主函数
四.物理设计
五.思路
我选择用栈装入操作数,运算符和括号。人们日常生活中习惯用中缀表达式,但是在计算机中,为了方便计算表达式的值,一般都是采用前缀表达式或者后缀表达式,所以这就需要我们把中缀表达式进行相应的转换。算数表达式由三个部分组成,操作数,运算符和括号。在中缀表达式中有时括号是必须的,计算过程中必须用括号将操作数和对应的操作符括起来,用于只是运算的次序。而在前缀或后缀表达式中不会存在括号,运算符都是按照优先级排序的。



