数据结构课设.docx
- 文档编号:29220970
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:53
- 大小:364.32KB
数据结构课设.docx
《数据结构课设.docx》由会员分享,可在线阅读,更多相关《数据结构课设.docx(53页珍藏版)》请在冰豆网上搜索。
数据结构课设
沈阳工程学院
课程设计
设计题目:
表达式求值(第4组)
沈阳工程学院
课程设计任务书
课程设计题目:
表达式求值(第4组)
一.表达式的求值问题
我们很早就开始学习如何写和计算表达式。
可以想象,大部分小学生开始计算诸如8+5*(7-3)之类的表达式时,都碰到了一些困难。
通过一段时间的学习之后学生就能够掌握和描述计算步骤了。
例如上述表达式可描述为:
7减去3得4,5乘以4得20,8+20得28,因此表达式的值为28.如果进一步问为啥要以这个次序来计算表达式,回答起来就比较困难了。
当然,随着时间的推移,人们逐步熟悉了这种表达式的求值顺序,即运算规则:
有括号的先算括号内的,无括号的就先计算乘法和除法,在做加减法。
这是人们一直沿袭下来的计算方法。
如今,计算机已经成为人们生活中不可缺少的工具。
那么,计算机能否计算给定的运算表达式的值呢?
回答是肯定的。
表达式的计算是实现程序设计语言的问题之一,也是栈和队列应用的一个典型的例子。
二、设计要求和分析
要求:
以字符序列的形式从终端输入语法正确的,不含变量的整数表达式,利用给定的运算符有限关系,实现对算术四则混合运算表达式的求值。
并且演算再求值的运算操作中,输入字符和主要的操作的变化过程。
分析:
人们在书写表达式时通常采用的是“中缀”表达方式。
但是,这种表达式表示对计算机的处理来说是不太合适的,对于表达式的表示还有一种形式,曾为“后缀”表达式,即将运算符号紧紧地跟在后面。
由于每一个运算符对他直接的两个操作数进行运算,同样可以得出结果。
因此,要用计算机来处理,计算算术表达式的问题,首先要解决的是如何将人们的习惯书写的中缀表达式转换成计算机容易处理的后缀表达式。
三、中缀表达式到后缀表达式的转换
1.算法分析
如何将中缀表达式转换成后缀表达式?
我们来分析一下。
先假定在算术表达式中只含有四个基本运算符,操作数是10以内整数,没有括号。
新描述的运算符的优先级必须与前一个运算符的优先级周比较,如果新的运算符的优先级别高,就要像前一个运算符那样保存它,知道扫描到第二个操作,将它输出后才能将该运算符输出。
因此,在转化的过程中,就需要后进先出的概念。
如果及一个中缀表达式中含有小括号的话,那么由于括号远离了优先得规则他在整个表达式中的内部完全多里的子表达式,因此,前面的算法就需要有所改变。
当扫描到一个括号时需要将其压入栈中。
使其在栈中产生一个“伪栈底”。
然后再将“伪栈底”删除。
顺序扫描中缀的算术表达式,当读到数字式直接将其输入队列当中。
2.算法的设计
再有了上述的分析后实现转换就不太难了。
为了简化算法,我们把括号也座位运算符来看待,并且规定了她的优先级来。
另外将表达式中的操作数规定为1位数值字符。
运算符号也只是包括+,-,*,/四种。
四、设计完成后应提交成果的种类、数量、质量等方面的要求
1.完成“任务书”中指定的操作功能,运行稳定。
2.课程设计说明书。
五、时间进度安排
顺序
阶段日期
计划完成内容
备注
1
第1天
(12月27日)
阅读资料
2
第2—3天
(12月28日—12月29日)
系统分析设计
3
第4—8天
(12月30日—1月5日)
程序编制、调试及运行
4
第9天
(1月6日)
成绩评定
5
第10天
(1月7日)
撰写课程设计说明书
六、主要参考资料(文献)
[1]郭翠英.C语言课程设计案例精编.北京:
中国水利水电出版社.2004.3
[2]谭浩强.C语言程序设计.北京:
清华大学出版社.1999.12
[3]张翔.C语言函数大全.北京:
清华大学出版社.2002.4
[4]浦滨.C游戏编程从入门到精通.北京:
北京希望电子出版社.2002.5
[5]陈天洲.C语言高级程序设计.北京:
人民邮电出版社.2002
[6]杨旭.C语言程序设计案例教程.北京:
人民邮电出版社.2005
[7]王为青.C语言高级编程及实例剖析.北京:
人民邮电出版社.2008.02
[8]徐慧.《C语言实例解析精粹》.北京:
人民邮电出版社.2006.04
[9]姚大鹏栾好利张翼英等编著.C语言程序设计教程习题与上机实训指导.中国水利水电出版社.2005
[10]王为青.C语言实例解析.北京:
人民邮电出版社.2008.02
沈阳工程学院
课程设计
设计题目:
一元多项式的运算(第4组)
系别信息工程系班级计本091
学生姓名邱恒凤、李明明学号10、16、
指导教师吕海华、姜柳职称讲师、副教授
起止日期:
2010年12月27日起——至2011年01月07日止
沈阳工程学院
课程设计任务书
课程设计题目:
一元多项式的运算(第4组)
系别信息工程系班级计本091
学生姓名邱恒凤、李明明学号10、16
指导教师吕海华、姜柳职称讲师、副教授
课程设计进行地点:
实训F座
任务下达时间:
2010年12月27日
起止日期:
2010年12月27日起——至2011年01月07日止
教研室主任张欣2010年12月27日批准
一、一元多项式的运算
一元多项式运算包括加法,减法和乘法,而多项式的减法和乘法都可以用加法来实现,因此,该实验只需要实现一个加法运算即可。
二、一元多项式的运算问题分析
在数学上,一个一元n次多项式Pn(x)可按降序写成:
Pn(x)=Pn(x)+Pn-1(x)+…+P1x+P0
它是由n+1个系数唯一确定。
因此,在计算机里它可以用一个线性表P来表示:
P=(Pn,Pn-1,…,P1,P0)
每一项的指数i隐含在其系数Pi的序号里。
假设Qm(x)是一元m次多项式,同样可用线性表Q来表示:
Q=(qm,qm-1,…,q1,q0)
不失一般性,假设m R=(pn,…,pm+1,pm+qm,…,p1+q1,p0+q0) 很显然,可以对P,Q和R采用顺序存储结构,使得多项式相加的算法的定义和实现十分简单。 然而,在通常的应用中,多项式的次数可能变化很大而且很高,使得顺序存储结构的最大长度很难确定。 特别是在处理项数少且次数特别高的情况下,对内存空间的浪费是相当大的。 因此,一般情况下,都是采用链式存储结构来处理多项式的运算,使得两个线性链表分别表示一元多项式Pn(x)和Qm(x),每个结点表示多项式中的一项。 三、对课程设计说明书撰写内容、格式、字数的要求 1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括: 设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等。 一般不应少于3000字。 2.在适当位置配合相应的实验原理图、数据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。 应做到文理通顺,内容正确完整,书写工整,装订整齐。 3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。 设计小组评语处注明设计组编号、设计组组长、设计组成员,并由设计组组长给出评语。 4.课程设计说明书手写或打印均可。 手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。 文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。 5.课程设计说明书装订顺序为: 封面、任务书、成绩评定表、目录、正文、参考文献。 四、设计完成后应提交成果的种类、数量、质量等方面的要求 1.完成“任务书”中指定的操作功能,运行稳定。 2.课程设计说明书。 五、时间进度 顺序 阶段日期 计划完成内容 备注 1 第1天 (12月27日) 阅读资料 2 第2—3天 (12月28日—12月29日) 系统分析设计 3 第4—8天 (12月30日—1月5日) 程序编制、调试及运行 4 第9天 (1月6日) 成绩评定 5 第10天 (1月7日) 撰写课程设计说明书 六、主要参考资料(文献) [1]郭翠英.C语言课程设计案例精编.北京: 中国水利水电出版社.2004.3 [2]谭浩强.C语言程序设计.北京: 清华大学出版社.1999.12 [3]张翔.C语言函数大全.北京: 清华大学出版社.2002.4 [4]浦滨.C游戏编程从入门到精通.北京: 北京希望电子出版社.2002.5 [5]陈天洲.C语言高级程序设计.北京: 人民邮电出版社.2002 [6]杨旭.C语言程序设计案例教程.北京: 人民邮电出版社.2005 [7]王为青.C语言高级编程及实例剖析.北京: 人民邮电出版社.2008.02 [8]徐慧.《C语言实例解析精粹》.北京: 人民邮电出版社.2006.04 [9]姚大鹏栾好利张翼英等编著.C语言程序设计教程习题与上机实训指导.中国水利水电出版社.2005 [10]王为青.C语言实例解析.北京: 人民邮电出版社.2008.02 沈阳工程学院 程序设计基础课程设计成绩评定表 系(部): 信息工程系班级: 计本091学生姓名: 朱德林 指导教师评审意见 评价内容 具体要求 权重 评分 加权分 调研 论证 能独立查阅文献,收集资料;能制定课程设计方案和日程安排。 0.1 5 4 3 2 工作能力 态度 工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.2 5 4 3 2 工作量 按期圆满完成规定的设计任务,工作量饱满,难度适宜。 0.2 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.5 5 4 3 2 指导教师评审成绩 (加权分合计乘以8) 分 加权分合计 指导教师签名: 年月日 评阅教师评审意见 评价内容 具体要求 权重 评分 加权分 查阅 文献 查阅文献有一定广泛性;有综合归纳资料的能力 0.2 5 4 3 2 工作量 工作量饱满,难度适中。 0.5 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.3 5 4 3 2 评阅教师评审成绩 (加权分合计乘以4) 分 加权分合计 评阅教师签名: 年月日 答辩小组评审意见 评价内容 具体要求 权重 评分 加权分 学生汇报 汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。 0.5 5 4 3 2 答辩 思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。 0.5 5 4 3 2 答辩小组评审成绩 (加权分合计乘以8) 分 加权分合计 答辩小组教师签名: 年月日 课程设计总评成绩 分 沈阳工程学院 程序设计基础课程设计成绩评定表 系(部): 信息工程系班级: 计本091学生姓名: 杨美川 指导教师评审意见 评价内容 具体要求 权重 评分 加权分 调研 论证 能独立查阅文献,收集资料;能制定课程设计方案和日程安排。 0.1 5 4 3 2 工作能力 态度 工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.2 5 4 3 2 工作量 按期圆满完成规定的设计任务,工作量饱满,难度适宜。 0.2 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.5 5 4 3 2 指导教师评审成绩 (加权分合计乘以8) 分 加权分合计 指导教师签名: 年月日 评阅教师评审意见 评价内容 具体要求 权重 评分 加权分 查阅 文献 查阅文献有一定广泛性;有综合归纳资料的能力 0.2 5 4 3 2 工作量 工作量饱满,难度适中。 0.5 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.3 5 4 3 2 评阅教师评审成绩 (加权分合计乘以4) 分 加权分合计 评阅教师签名: 年月日 答辩小组评审意见 评价内容 具体要求 权重 评分 加权分 学生汇报 汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。 0.5 5 4 3 2 答辩 思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。 0.5 5 4 3 2 答辩小组评审成绩 (加权分合计乘以8) 分 加权分合计 答辩小组教师签名: 年月日 课程设计总评成绩 分 沈阳工程学院 程序设计基础课程设计成绩评定表 系(部): 信息工程系班级: 计本091学生姓名: 邱恒凤 指导教师评审意见 评价内容 具体要求 权重 评分 加权分 调研 论证 能独立查阅文献,收集资料;能制定课程设计方案和日程安排。 0.1 5 4 3 2 工作能力 态度 工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.2 5 4 3 2 工作量 按期圆满完成规定的设计任务,工作量饱满,难度适宜。 0.2 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.5 5 4 3 2 指导教师评审成绩 (加权分合计乘以8) 分 加权分合计 指导教师签名: 年月日 评阅教师评审意见 评价内容 具体要求 权重 评分 加权分 查阅 文献 查阅文献有一定广泛性;有综合归纳资料的能力 0.2 5 4 3 2 工作量 工作量饱满,难度适中。 0.5 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.3 5 4 3 2 评阅教师评审成绩 (加权分合计乘以4) 分 加权分合计 评阅教师签名: 年月日 答辩小组评审意见 评价内容 具体要求 权重 评分 加权分 学生汇报 汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。 0.5 5 4 3 2 答辩 思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。 0.5 5 4 3 2 答辩小组评审成绩 (加权分合计乘以8) 分 加权分合计 答辩小组教师签名: 年月日 课程设计总评成绩 分 沈阳工程学院 程序设计基础课程设计成绩评定表 系(部): 信息工程系班级: 计本091学生姓名: 李明明 指导教师评审意见 评价内容 具体要求 权重 评分 加权分 调研 论证 能独立查阅文献,收集资料;能制定课程设计方案和日程安排。 0.1 5 4 3 2 工作能力 态度 工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.2 5 4 3 2 工作量 按期圆满完成规定的设计任务,工作量饱满,难度适宜。 0.2 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.5 5 4 3 2 指导教师评审成绩 (加权分合计乘以8) 分 加权分合计 指导教师签名: 年月日 评阅教师评审意见 评价内容 具体要求 权重 评分 加权分 查阅 文献 查阅文献有一定广泛性;有综合归纳资料的能力 0.2 5 4 3 2 工作量 工作量饱满,难度适中。 0.5 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 0.3 5 4 3 2 评阅教师评审成绩 (加权分合计乘以4) 分 加权分合计 评阅教师签名: 年月日 答辩小组评审意见 评价内容 具体要求 权重 评分 加权分 学生汇报 汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。 0.5 5 4 3 2 答辩 思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。 0.5 5 4 3 2 答辩小组评审成绩 (加权分合计乘以8) 分 加权分合计 答辩小组教师签名: 年月日 课程设计总评成绩 分 摘要 科学技术的快速发展,特别是计算机日新月异的发展,改变了世界,也改变了人类的生活。 作为一名学习计算机专业的大学生,不仅应当尽快适应行业的快速发展,更应当站在时代发展的前列,掌握现代最新的科学技术知识,调整自己的知识结构和能力结构,提升自己的能力,以适应社会发展的要求,适应知识快速更新的要求。 数据结构课程是计算机专业的一门重要的理论技术基础课程,它要求我们学会分析研究计算机加工的数据结构的特性,应用涉及到的数据选择适当的逻辑结构、存储结构及其相应的算法,并且掌握算法的时间分析和空间分析技术。 同时数据结构课程的学习还是复杂程序设计的训练过程,要求编写的程序结构清楚并易读,符合软件工程的规范,数据结构着重培养了数据抽象能力。 在表达式求值系统中,采用了栈和队列的数据存储结构,并采用链式存储以方便于数据的操作和处理。 能够处理以字符序列的形式输入的不含变量的实数表达式,正确处理负数与小数,判断表达式是否语法正确(包含分母不能为零的情况),正确实现对算术四则混合运算表达式的求值,能够将计算中遇到的问题和结果以文件的形式予以存储。 在一元多项式系统中,一元多项式的表示在计算机内可以用链表来实现,为了节省存储空间,只存储多项式中系数非零的项。 链表中的每个结点存放多项式的一个系数非零项,它包括三个域,分别存放该项的系数、指数以及指向下一个多项式结点的指针。 创建一元多项式链表,对一元多项式运算中的情况进行分析,实现一元多项式的相加。 为期两周的课程设计即将结束,在课设期间我们明白了学习数据结构课程的目的不仅在于掌握数据结构存储的方法,而且学习会用计算机语言编写程序,以实现所需要处理的任务。 学习的重点要放在解题的思路上和运用何种存储的方法,通过思考和阅读,来构造一个完整的程序。 数据结构存储的设计直接关系到程序的好坏。 我们对数据结构课程的理解有了进一步的加深,也巩固了以前所学习的数据结构知识。 关键词栈,队列,线性链表,函数,表达式,一元多项式 目录 摘要I 第一章问题分析1 1.1引言1 1.2背景1 1.3分析2 1.3.1表达式求值2 1.3.2一元多项式运算2 第二章原理与运行环境3 2.1数据理论3 2.1.1表达式求值设计理论3 2.1.2一元多项式运算设计理论3 2.2运行环境VC材料3 2.2.1简介3 第三章系统分析与设计6 3.1表达式求值系统分析与设计6 3.1.1表达式求值系统要求实现功能6 3.1.2表达式求值系统简介6 3.1.3表达式求值系统程序算法及流程图7 3.2一元多项式运算系统分析与设计8 3.2.1一元多项式运算实现功能8 3.2.2一元多项式运算系统简介8 3.2.3一元多项式运算程序算法及流程图9 第四章系统功能实现10 4.1表达式求值系统功能实现10 4.1.1判断运算符优先权10 4.1.2算法流程图11 4.1.3例题算法描述20 4.2一元多项式运算系统功能实现21 4.2.1定义主函数21 4.2.2结点的查找定位21 4.2.3有序链表结点的插入22 4.2.4多项式链表的建立22 4.2.5多项式链表的相加23 4.2.6多项式链表的输出23 总结25 致谢26 参考文献26 第一章问题分析 1.1引言 数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机专业学科的核心课程,而且已成为其他专业的热门选修课。 它旨在使读者学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算,把现实世界中的问题转化为计算机内部的表示和处理,这是一个良好的程序设计技能训练的过程。 我们知道数据结构的教学要求是: 学会分析研究计算机加工的数据结构的特征,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。 另一方面,数据结构课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范。 在学习中,先要学习程序设计课程的目的掌握设计程序的思路,学习会用计算机语言编写程序,以实现所需要处理的任务。 要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是工具。 不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。 一定要把重点放在解题的思路上,通过思考,和大量的阅读,来构造一个完整的程序。 思想是最重要的。 数据结构课程设计目的在于锻炼同学的实际动手和实践能力,在一定程度上,又增加了我们的各方面的知
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构
![提示](https://static.bdocx.com/images/bang_tan.gif)