- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告_IP数据包的捕获与分析.doc
中南大学
数据结构课程设计报告
题 目 数据结构课程设计
学生姓名 廖 成
指导教师 杨 希
学 院 信息科学与工程学院
专业班级 计算机科学与技术1304班
二○一五 年 九 月
目录
需求分析......................................3
1.1问题描述..................................3
1.2基本要求..................................3
总体设计......................................3
2.1数据结构..................................3
2.2模块间调用关系............................3
2.3各模块设计................................4
2.3.1判读运算符优先级模块..................4
2.3.2表达式转换模块........................4
2.3.3表达式求值模块........................6
详细设计.......................................7
调试与测试.....................................9
5.测试结果......................................10
6.课程设计心得体会..............................12
参考文献........................................13
附录............................................13
需求分析
1.1问题描述
表达式求值是实现程序设计语言的基本问题之一,也是栈的应用的一个典型计程序演示用算符优先法对算术表达式求值的过程。
基本要求
以字符序列的形式从终端上输入语法正确的、不含变量的表达式。实现对算术四则运算表达式,任意算术表达式的加法、减法、除法以及乘法求值运算数整数和小数演示在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。
2.3各模块设计
2.3.1判读运算符优先级模块
该模块的功能是判断各种运算符的优先级别,参数是字符型变量op,返回类型为整型,优先级越高的运算符返回的整型数据越大。
2.3.2表达式转换模块
特殊字符’#’压人字符栈sc,用以判断是否结束表达式的转换。逐个取出数组s1中的元素,如果是空格字符则不作任何处理;如果是‘(’则入栈sc;如果是’)’则依次将栈顶元素放入数组s2并出栈,直到栈顶元素为‘(’,再执行一次出栈;如果是运算符则判断其与当前栈顶元素优先级高低,如果较低则将栈顶元素写入数组s2中,直到优先级较高然后将其入栈;如果是数字或者小数点,则直接写入到数组s2末尾,直到遇到字符串结束符‘\0’。将栈sc中剩余元素写入数组s2末尾并出栈,直到特殊字符‘#’结束表达式的转换。经过以上步骤,保存在s1中的中缀表达式转换成后缀表达式并保存在s2数组中,可以用后缀表达式求值模块计算原表达式的值。
2.3.3表达式求值模块
定义双精度类型变量保存操作数的整数和小数部分,逐个字符扫描s2中的后缀表达式,如果是空格则不执行任何操作;如果是运算符则从栈sf中取出操作数并执行相应的运算并把运算结果压入操作数栈sf;如果是数字或者小数点则通过相应的方法计算出操作数并压入操作数栈sf中直到遇到字符串结束符‘\0’,此刻操作数栈中应该只有一个元素,此元素即为表达式的值。
详细设计
char D_sc_pop();//返回栈顶元素(运算符)并执行一次出栈操作
由于在实现表达式求值时要执行多次取栈顶元素并出栈操作,在每次出栈之前都需要检验栈当前是否为空,而且取栈顶和出栈操作也要分步实现,这样会产生很多冗余代码,本函数把这些操作封装在一个函数中,调用该函数即可实现从运算符栈出栈并返回栈顶元素,使代码看起来更简洁,紧凑。具体实现细节如下:
char D_sc_pop()
{
if(!sc.empty())//执行出栈操作前判断栈是否
您可能关注的文档
- 数字电子课程设计2016.ppt
- 数字电子钟 单片机已过课程设计.doc
- 数字电路课程设计____2014年.ppt
- 数字电路课程设计实习报告.doc
- 数字电路课程设计报告 设计课题: 数字电子钟逻辑电路设计.doc
- 数字逻辑电路课程设计 3.doc
- 数学思想方法(小学数学).ppt
- 数学的学习方法怎样学好数学.ppt
- 数据仓库实践-第二课 衣带渐宽终不悔,为伊消得人憔悴.pptx
- 数据库产品分销及仓库管理课程设计.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)