算术表达式求值课程设计

算术表达式求值课程设计

ID:10278935

大小:202.50 KB

页数:19页

时间:2018-06-15

算术表达式求值课程设计_第1页
算术表达式求值课程设计_第2页
算术表达式求值课程设计_第3页
算术表达式求值课程设计_第4页
算术表达式求值课程设计_第5页
资源描述:

《算术表达式求值课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学号:学年论文(设计)(本科)学院专业年级姓名论文(设计)题目算术表达式求值指导教师职称成绩2012年月日19目录一、概述……………………………………………………………………………………………3二、设计目的………………………………………………………………………………….3三、设计功能分析…………………………………………………………………………3四、概要设计说明…………………………………………………………………………4五、详细信息说明…………………………………………………………………………5六、流程图………………………………………………………………………………………10七、程序

2、代码…………………………………………………………………………………10八、调试及运行结论……………………………………………………………………17九、总结…………………………………………………………………………………………19十、参考文献…………………………………………………………………………………1919一、概述数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其它理工专业热门选修课。而且它与计算机其他课程都有密切联系,具有独特的承上启下的重要位置。拥有《数据结构》这门课程的知识准备,对于学习计算机专业的其他课程,如操作系统、数据库管理系统、

3、软件工程的都是有益的。二、设计目的1、了解算术表达式的不同表现形式及相应算法实现的不同。2、深入了解栈的特性,并在实际问题背景下灵活运用。3、掌握字符串解释为表达式的意义和数字转化。三、设计功能分析算术表达式求值程序实现以下功能:(1)构造一个空栈S,初始条件:栈S已存在(2)用P返回S的栈顶元素(3)插入元素ch为新的栈顶元素(4)删除S的栈顶元素(5)判断字符是否是运算符,运算符即返回1(6)判断运算符优先权,返回优先权高的(7)输入表达式(8)返回表达式的最终结果。19四:概要设计说明在计算机中算术表达式由常量、变量、运算符和括号组成。由于不同的运算符优先级不同,而且还

4、要考虑括号;因此算术表达式不可能完全严格的从左到右执行。因此在设计程序时,要借助栈的功能。算法输入:一个算术表达式,由常量、变量、运算符、括号组成(以字符串的形式输入)。操作符为+、-、*、/,用#表示结束。算法输出:表达式运算结果。算法要点:设置运算符栈和运算数栈辅助分析算术符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。基本操作:InitStack(&S)操作结果:构造一个空栈S。GetTop(S)初始条件:栈S已存在.操作结果:用P返回S的栈顶元素。Push(*S,ch)初始条件:栈S已存在。操作结果:插入元素ch为新的栈顶元素。P

5、op(&S)初始条件:栈S已存在。操作结果:删除S的栈顶元素。In(ch)操作结果:判断字符是否是运算符,运算符即返回1。Precede(c1,c2)初始条件:c1,c2为运算符。操作结果:判断运算符优先权,返回优先权高的。Operate(a,op,b)初始条件:a,b为整数,op为运算符。操作结果:a与b进行运算,op为运算符,返回其值。19num(n)操作结果:返回操作数的长度。EvalExpr()初始条件:输入表达式合法。操作结果:返回表达式的最终结果。}ADTStack五、详细设计说明1、数据存储结构设计因为表达式是由操作符,运算符和界限符组成的。如果只用一个char

6、类型栈,不能满足2位以上的整数,所以还要定义一个int类型的栈用来寄存操作数。/*定义字符类型栈*/typedefstruct{intstacksize;char*base;char*top;}Stack1/*定义整形栈*/typedefstruct{intstacksize;int*base;int*top;}Stack22、主要算法①、Precede(charc1,charc2)判断运算符优先权,返回优先权高的。算符间的优先关系如下:+-*、()#19+>><<<>>->><<<>>*>>>><>>/>>>><>>(<<<<<=)>>>>>>#<<<<<=表一算法伪代码如

7、下:charPrecede(charc1,charc2){staticchararray[49]={'>','>','<','<','<','>','>','>','>','<','<','<','>','>','>','>','>','>','<','>','>','>','>','>','>','<','>','>','<','<','<','<','<','=','!','>','>','>','>','!','>','>','<','<','<','<','<','!','='};//用一维数组

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。