数据结构算术表达式求值课程设计.docx
《数据结构算术表达式求值课程设计.docx》由会员分享,可在线阅读,更多相关《数据结构算术表达式求值课程设计.docx(24页珍藏版)》请在第壹文秘上搜索。
1、1 .前言22 .问题描述33 .总体设计错误!未定义书签。3.1 概要设计错误!未定义书签。3.1.1 数据结构的选择33.1.2 相关功能函数33.1.3 函数模块调用关系432详细设计和编码54 .运行与测试94.1 上机调试94.2 算法时间和空间性能分析104.3 程序运行测试结果115 .总结与心得135.1 设计中难点的总结以及其它解决方案135.2 实验心得146 .用户使用说明167 .参考文献168 .附录1(源代码清单)16.附录2(成绩评定表)251.前言课程设计是实践性教学中的一个重要环节,它以某一课程为根底,它可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊
2、课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。数据结构是一门重要的专业根底课,是计算机理论和应用的核心根底课程。在数据结构的学习和课程设计过程中,我发现它要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,都必须加深对课程根本内容的理解。同时,在程序设计方法以及上机操作等根本技能和科学作风方面受到比拟系统和严格的训练。对于我们专业来说,虽然说对技术要求不是特别高,但是在实际操作过程中,没有足够的专业知识对于编程来说是远远不可以到达要求的,所以对于这次的课程设计,我们必须要通过自己额外补充知识来完成它。在这次的课程设计中我选
3、择的题目是表达式的求值演示。它的根本要求是:以字符序列的形式从终端输入语法正确的,不含变量的表达式。利用算符优先关系,实现对算术四那么混合运算表达式的求值,并演示在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。表达式计算是实现程序设计语言的根本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们,同时加深对这种结构的理解和认识。对于表示出栈在每执行一个过程中都要输出它的变化,这点我认为在编程中是比拟困难的,以我自身的能力,是不可能在规定的时间内完成任务的,所以我参考了很多有价值的书籍来帮助
4、我完成我的程序设计。2 .问题描述(问题分析和任务定义)在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因此,要求设计一个程序,利用栈演示运算符优先法对算术表达式求值的过程,利用算符有限关系,实现对算数混合四那么运算表达式的求值。程序输入:一个算术表达式,由常量、运算符和括号组成(以字符串形式输入,不含变量)。为了简化,操作数只能为浮点数,操作符为“+”、“/、“(、,),用,铲,表示结束。程序输出:表达式运算结果,运算符栈、运算数栈、输入字符和主要操作变化过程。测试数据:1024/(4*8)
5、、(20+2)*(62)(用于正确性检测的合法输入数据)9/0(用于健壮性检测的非法输入数据)3 .总体设计3.1 概要设计3.1.1 数据结构的选择任何一个表达式都是由操作符,运算符和界限符组成的。我们分别用顺序栈来存放表达式的操作数和运算符。栈是限定于紧仅在表尾进行插入或删除操作的线性表。为了实现算符优先算法,可以使用两个工作栈。一个称做OPTR,用以存放运算符;另一个称做OPND,用以存放操作数或运算结果。首先置操作数栈为空栈,表达式起始符“井”作为运算符栈的栈底元素,然后依次读入表达式的每个字符,假设是操作数那么进入OPND栈,假设是运算符,那么和OpTR栈的栈顶运算符比拟优先权后做相
6、应操作,直至整个表达式求值完毕。栈的抽象数据类型定义ADTSqStack数据对象:D=aiaiElemSet,i=1,2,3,n,nO数据关系:Rl=ai-l,aiDj=1,2,3,,11约定其中ai端为栈底,an端为栈顶。操作集合:见如下相关功能函数ADTSqStack3.1.2 相关功能函数运算符栈的功能函数OpTR栈voidOptr_InitStack(Optr_Stack&S1)运算符栈的初始化voidOptr_Push(Optr_Stack&Sl,chare)运算符栈的栈顶插入新的数据元素charOptr_Pop(Optr_Stack&S1)运算符的栈顶元素出栈charOplr_Ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算术 表达式 求值 课程设计