- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告课程名称:数据结构课程设计课程设计题目:表达式求值问题姓 名:系:计算机科学与技术专 业:计算机科学与技术年 级:2011级学 号:指导教师:职 称:讲师2011年 12月 31日目 录1.设计目的:12.设计要求:13.设计方案:14.设计内容:24.1.需求分析24.2.概要设计24.3.详细设计44.4.调试分析与结果74.5:使用说明115.总结:126.附录三:源代码12表达式求值问题1.设计目的:《数据结构课程设计》是计算机专业集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。其目的是: (1)要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。 (2)在实践中认识为什么要学习数据结构,掌握数据结构、程序设计语言、程序设计技术之间的关系,是前面所学知识的综合和回顾。2.设计要求:以字符序列的形式从键盘输入语法正确的、不含变量的整数(或实数)表达式,实现对算术四则混合运算表达式的求值。当用户输入一个合法的算术表达式后,能够返回正确的结果。能够计算的运算符包括:加、减、乘、除、括号,对于异常表达式能给出错误提示。3.设计方案:任何一个表达式都是由操作符,运算符组成的。我们分别用顺序栈来寄存表达式的操作数和运算符。栈是限定于紧仅在表尾进行插入或删除操作的线性表。顺序栈的存储结构是利用一组连续的存储单元依次存放自栈底到栈顶的数据元素。为了实现算符优先算法。可以使用两个栈。一个称为OPF,用以寄存运算符,另一个称做OPS,用以寄存操作数或运算结果。1.首先置操作数栈为空栈,表达式起始符”#”为运算符栈的栈底元素;2.依次读入表达式,若是操作符即进OPS栈,若是运算符则和OPF栈的栈顶运算符比较优先权后作相应的操作,直至整个表达式求值完毕(即OPF栈的栈顶元素和当前读入的字符均为”#”)。4.设计内容:4.1.需求分析本程序所做的工作为:能直接求出四则表达式的值,并输出;本程序可用于小学教师对学生作业的快速批改以及对数值位数要求较大的科学运算。4.2.概要设计1.//用于存储操作数和运算结果(OPS):ADT LinkStack{数据元素:此链栈中的所有元素类型为字符型的数字字符数据关系:栈中数据元素之间是线性关系。基本操作:(1)InitStack(LinkStack head)操作结果:构造一个空栈head(2)IsEmpty(LinkStack head)初始条件:栈head已存在操作结果:若栈为空栈,则返回TRUE,否则FALSE(3)Push(LinkStack head,ElementType element)初始条件:栈head已存在操作结果:插入元素element为新的栈顶元素(4)Pop(LinkStack head,ElementType element)初始条件:栈head已存在且非空操作结果:删除head的栈顶元素,并用e返回其值(5)GetTop(LinkStack head, ElementType element)初始条件:栈head已存在并且非空操作结果:用e返回head的栈顶元素(6)DestroyStack(LinkStack head)初始条件:栈head已存在操作结果:栈head 被销毁}ADT LinkStack2.//用于存储运算符(OPF):ADT LinkCharStack{数据对象D:元素类型为字符型的符号字符数据关系R:基本操作:栈中数据元素之间是线性关系。(1)CInitStack(LinkCharStack head) 操作结果:构造一个空栈head(2)CIsEmpty(LinkCharStack head)初始条件:栈head已存在操作结果:若栈为空栈,则返回TRUE,否则FALSE(3)CPush(LinkCharStack head,ElementType element)初始条件:栈head已存在操作结果:插入元素element为新的栈顶元素(4)CPop(LinkCharStack head,ElementType element)初始条件:栈head已存在且非空操作结果:删除head的栈顶元素,并用e返回其值(5)CGetTop(LinkCharStack head, ElementType element)初始条件:栈head已存在并且非空操作结果:用e返回head的栈顶元素(6)CDestroyStack(LinkCharStack head)初始条件:栈head已存在操作结果:栈head 被销毁}ADT LinkCharStack3.系统中子程序及功能要求:Comop(char ch):判断输入的字符是否为运算
您可能关注的文档
- 当前农村基层党组织建设的思考.doc
- 对外贸易情况的调查.doc
- 对我国供水管网漏损水平的评价.docx
- 封面任务书开题报告---小型电镀厂废水处理工程.doc
- 废水处理工程设计方案毕业设计.doc
- 工厂电气课程设计-装配流水线模拟控制设计.doc
- 工厂供电课程设计报告8.doc
- 工厂供电课程设计--电系统继电保护课程设计.doc
- 工厂供电课程设计--某小型冶金实验工厂供电系统.docx
- 工厂供电课程设计---基于MATLAB的电力电子系统仿真.docx
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)