- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法课设报告表达式求值
《数据结构与算法》
课程设计说明书
题 目: 表达式的求值
学 院: 计算机科学与工程学院
专 业:
姓 名:
学 号:
指导教师:
2014年10 月 10 日
成绩评定标准及成绩
能按照格式进行写作,无抄袭现象(10分)
报告内容行文通畅,有条理性,无错别字,结构严谨。(10分)
能够按照数据结构课设的格式要求、排版要求和字数要求等,有需求分析,系统分析,详细设计,关键技术的介绍和参考文献。(10分)
在验收过程中,能合理的回答问题(20分)
软件能正常运行,实现所提出的功能(40分)
软件代码规范性较好(5分)
具有自己的创新或特色(5分)
总成绩:
摘要
表达式求值是高级语言编译中的基本问题,是栈的典型应用实例。该设计在计算机中实现任意算术表达式的求值问题。使用顺序栈存储算术表达式,主要功能有:输入算术中缀表达式、表达式的判断、转换为后缀表达式、后缀表达式的计算及显示输出。在程序中运用了多方面的知识,其中有函数的调用、栈的操作、队列的操作;堆栈的诸多操作,例如:入栈、出栈、取栈顶元素等;队列的操作有出队、入队、建立队列等等。表成绩达式在输入出错时还能够及时提示为了让用户及时的修正等。
关键词:中缀表达式、后缀表达式、表达式的判断、表达式的求值、队列、栈。
引言 1
1 系统概述 1
2 需求分析 2
2.1 系统需求 2
2.2 开发环境 2
3 详细设计 3
4 所遇到的问题和分析解决 20
5 系统特色及关键技术 21
6 结论 22
参考文献 24
引言
课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
在这次的课程设计中我选择的题目是算术表达式求值演示。表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。算术表达式由常量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。
本案例要求要求从键盘中输入一串四则运算表达式,由计算机求出表达式的运算结果。要求所输入的算术表达式以字符的序列的形式输入的、语法正确的、不含变量的操作数的整数算术表达式。
算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为简化,规定操作数只能为正整数,操作符为+、-*、/,用回车表示结束。
算法输出:表达式运算结果。
算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。
1 系统概述
算术表达式的可以分为中缀表达式,前缀表达式和后缀表达式。一般常用的算术表达式为中缀表达式。
中缀表达式是一个通用的算术或逻辑公式的表示方法,操作符的以中缀表达式处于操作数中间的(如a+b),人们使用中缀表达式计算数值一目了然,非常方便,但是却不容易被计算机所解析。主要原因是由于中缀表达式中,各个运算符的优先级存在不同,因此并不能简单的从表达式的左边值直接计算到右边(如a+b*c,先计算a+b,然后再计算*c,结果就不正确)。
表达式的求值有很多种,我们系统采用的是先求出中缀表达式所对应的后缀表达式,后缀表达式的计算对于计算机处理来讲比较简单,只需要从表达式的左边扫描到右边,边扫描边计算就可以,而运算的优先顺序在生成后缀表达式的时已经做了考虑,此时不需要额外的判断运算符的优先级了。
以下是本系统的简单的运算步骤:
系统以菜单方式进行工作
中缀表达式的录入?
表达式的判断(输入字符是否合法,括号匹配等)
运算符优先级比较?
中缀转后缀表达式?
利用后缀表达式求值?
输出表达式的值
是否要继续操作,如果不是请按照菜单的提升退出系统?
2 需求分析
2.1 系统需求
要对一个简单
原创力文档


文档评论(0)