作业帮 > 综合 > 作业

算术表达式求值 【问题描述】 表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子.设计一个程序,演示

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/04 00:50:21
算术表达式求值
【问题描述】
表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子.设计一个程序,演示符优先法对算术表达式求值的过程
【基本要求】
以字符序列的形式从终端输入语法正确的,不含变量的整数表达式.利用教科书上给出的算符优先关系,实现对算术四则运算表达式的求值,并仿照教科书的例子演示在求值中运算符栈,运算数栈,输入字符和主要操作的变化过程
课程设计报告撰写要求及格式
4、 课程设计正文,包括
(1)问题描述
(2)需求分析:明确规定输入的形式和输出值范围,输出的形式,程序所能达到的功能
(3)概要设计:说明本程序中用到的所有抽象数据类型的定义,主程序流程及各程序模块的层次或调用关系
(4)详细设计:实现概要设计中定义的所有数据类型,对每个操作只需写出伪码算法
5、 用户说明:说明如何使用你编写的程序,详细列出每一步操作步骤
6、 课程设计总结(调试过程中遇到的问题及解决方案,系统存在的不足)
7、 参考文献
8、 附录(程序清单)
算术表达式求值 【问题描述】 表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子.设计一个程序,演示
#include
#include
#include
#define error 0
#define ok 1
#define overflow -1
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OPSETSIZE 7
char OPSET[OPSETSIZE]={'+','-','*','/','(',')','#'};
unsigned char Prior[7][7] = { // 算符间的优先关系
'>','>','','>','','>','>','>','','>',
'>','>','>','>','','>',
'',' ','>','>',
'':// 退栈并将运算结果入栈
Pop(OPTR,theta);
Pop(OPND,b);
Pop(OPND,a);
Push(OPND,Operate(a,theta,b));
break;
} // switch
}
} // while
return GetTop(OPND);
} // EvaluateExpression
void main()
{
printf("请输入表达式(end #):\n");
printf("%f\n",EvaluateExpression());
}