- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数 据 结 构》
课程设计说明书
题 目
算术表达式求值
学 号
姓 名
指导教师
日 期
2012.6
目录
TOC \o 1-3 \h \z \u 第1章 需求分析 4
第2章 总体设计 4
第3章 抽象数据类型设计 5
第4章 详细设计 6
4.1 工程视图 6
4.2 类图视图 6
4.3 函数的调用关系 7
4.4 主程序流程图 7
4.5 主要算法的流程图 8
第5章 测试 9
第6章 总结 10
附录:程序代码 11
课程名称
数据结构课程设计
设计题目
算术表达式求值
指导教师
余金林
时间
2012.6——2012.7
一、教学要求
1. 掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力
2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能
3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力
4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风
二、设计资料及参数
每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。
算术表达式求值
以字符串表示算术表达式,在此基础上借助栈完成对表达式的转换和求值操作。
要求设计类(或类模板)来描述算术表达式及其操作,包含必要的构造函数和析构函数,以及其他能够完成如下功能的成员函数:
输入算术表达式(中缀表示)
中缀表达式转换为后缀表达式
输出表达式
对后缀表达式求值
并设计主函数测试该类。
三、设计要求及成果
1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告
四、进度安排
资料查阅与讨论(1天)
系统分析(2天)
系统的开发与测试(5天)
编写课程设计说明书和验收(2天)
五、评分标准
1. 根据平时上机考勤、表现和进度,教师将每天点名和检查
2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。
4. 根据答辩的情况,应能够以清晰的思路和准确、简练的语言叙述自己的设计和回答教师的提问
六、建议参考资料
1.《数据结构 (C语言版)》严蔚敏、吴伟民 主编 清华大学出版社 2004.11
2.《数据结构课程设计案例精编(用C/C++描述)》,李建学 等 编著,清华大学出版社 2007.2
3.《 数据结构:用面向对象方法与C++语言描述》,殷人昆 主编,?清华大学出版社 2007.6
需求分析
在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。
算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为简化,规定操作数只能为正整数,操作符为+、-*、/。
算法输出:表达式运算结果。
算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。
总体设计
图2.1
抽象数据类型定义
ADT Sqstackbase
ADT Sqstack
base
top
stacksize
SqStack
Push
GetTop
Pop
成员变量
成员函数
图3.1
ADT Sqstack
数据对象:D={Ci/Ci∈sqstack,i=1,2,…,n,n≥0}
数据关系:R={Ci-1,Ci1 Ci-1,Ci∈D,i=2,…,n}
基本操作:
input(base,top,stacksize)
初始条件:base,top是字符型数据;stacksize是整型数据
操作结果:生成一个算术表达式
Get base(base,a)
初始条件:若T存在
操作结果:生成一个栈底元素 base
Get top(top,b)
初始条件:若T1存在
操作结果:生成一个栈顶元素 top
Get char(char,c)
初始条件:若c存在
操作结果:脱括号并接收下一字符
Get push(push,d)
初始条件:若d存在
操作结果:将#压入运算符栈
其中DPND为操作数栈,DPTR为运算符栈
a,b∈OPND c,d∈DPTR
}ADT Sqstack
详细设计
工程视图
图4.1
类图视图
图4.2
函数的调用关系
主函数main()
主函数main()
您可能关注的文档
最近下载
- irb8700型搬运机器人运动学分析及仿真.docx
- 行业测评 【航司】2024年第四季度机场服务测评报告发布.docx
- 《发展与教育心理学》第七章高中生心理的发展PPT讲义课件.docx VIP
- 帕金森病非运动症状评价量表(NMSS).doc VIP
- 《发展与教育心理学》第四章婴幼儿心理的发展PPT讲义课件.docx VIP
- 第十章-广播电视的制作.ppt VIP
- 出口退税相关政策培训-出口退(免)税备案变更撤回、免抵退税申报、免退税申报.pptx VIP
- 小学教育自考本科《发展与教育心理学》第一章发展与教育心理学概论PPT讲义课件.docx VIP
- 《基于哈佛分析框架下的财务报表分析—以珠海东贝机电为例》10000字.docx
- 输电电缆线路及设施标识管理规定(2020年02月修订).pdf
文档评论(0)