- 6
- 0
- 约6.14千字
- 约 20页
- 2018-11-03 发布于福建
- 举报
数据结构课程设表达式求值_00002
数据结构课程设计
算符优先法对算术表达式求值
目录
一,课程题目 ................................................................... 1
二,程序设计思想 .......................................................... 1
三,程序流程图 ............................................................. 1
四,程序关键代码设计 ................................................... 1
五,程序源代码以及运行结果 ......................................... 3
六,心得体会 ..................................................................... 7
一,课程题目
(算符优先法计算算数表达式)以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。利用教材表3.1(P53)给出的算符优先关系,实现对于算术四则混合运算(加、减、乘、除)表达式的求值。例如:7+(4-2)*3+12/2=19。注:按照四舍五入的方式将四则运算结果取整。
二,程序设计思想
在程序中分别设立一个运算符栈(OPTR 栈),用于存储‘+’,‘-’,‘*’,‘/’,‘#’(‘#’用于判断算术表达式结束),和一个操作数栈(OPND 栈),用于存放整数,输入算式后,先将数字与运算符分开入i栈,若为数字则先用转换函数将char类型的数转换为int型并进入操作数栈,若为运算符则根据教材表3.1(P53)给出的算符优先级关系,判断栈顶运算符和从键盘取得的运算符作优先级比较,若取得的运算符优先级高则进栈,直到取得运算符优先级低的,则将操作数取出作operate运算后存入栈顶,反复操作知道遇到‘#’,则结束运算,输出栈顶元素即为结果。
三,程序流程图
四,程序关键代码设计
本次程序设计共调用了12个方法分别是:
InitNumStack,ParseInt,PushNum,PopNum ,InitCalStack,PopCal ,PushCal,In,GetTopCal,GetTopNum,Preced,Operate。
其中
ParseInt方法
int ParseInt(char c[]){
int number[5],i;
for(i=0;i5;i++){
number[i]=(int)(c[i])-48;
}
i=10000*number[0]+1000*number[1]+100*number[2]+10*number[3]+number[4];
return i;
}
为将输入的数字字符型转换为整型的转换函数,通过Ascall表的转换关系,将输入的字符型数字转换为整型。在入栈前进行此方法,以便整型数的计算。
Preced,Operate函数
char Preced(char a , char b){
char c[7]={+,-,*,/,(,),#};
char d[7][7]={
{,,,,,,},
{,,,,,,},
{,,,,,,},
{,,,,,,},
{,,,,,=, },
{,,,, ,,},
{,,,,, ,=},
};
int Operate (int a,char theta,int b){
int c ;
if (theta==+){
c=a+b;
return c;
}
if (theta==-){
c=a-b;
return c;
}
if (theta==*){
c=a*b;
return c;
}
if (theta==/){
c=a/b;
return c;
}
return 0;
}
其中preced是判定运算符栈的栈顶运算符C1与读入的运算符C2之间优先关系函数;Opearte为进行二元运算aCb的函数,如果是编译表达式,则产生这个运算的一组相应的指令并返回存放结果的中间变量名;如果是解释执行表达式,则直接进行该运算,并返回运算结果。
五,程序源代码以及运行结果
#includestdio.h
#includemalloc.h
#includestring.h
typedef struct{
int *base;
int *top;
int Stacksize;
您可能关注的文档
最近下载
- 经营分析会,必须要讲清楚的几个指标(25页 PPT).pptx VIP
- 总经理营销总监经营例会运营分析模板PPT.pptx VIP
- 新人教版九年级语文上册期末测试卷及答案【审定版】.doc VIP
- 2025 经营分析核心指标及搭建指南(23页 PPT).pptx VIP
- 风电项目建设标准强制性条文监督检查计划.docx VIP
- 奥的斯 HAA21310BW(ACD5-MRL 40A)电气原理图.pdf VIP
- 洛阳市第五人民医院2026年编外人员公开招聘备考题库及一套答案详解.docx VIP
- 畜禽屠宰加工企业消防安全指南.docx VIP
- DND传奇职业可选专长.docx VIP
- 洛阳市第五人民医院2026年编外人员公开招聘备考题库及完整答案详解一套.docx VIP
原创力文档

文档评论(0)