数据结构课设报告.docx
- 文档编号:15964656
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:59
- 大小:365.86KB
数据结构课设报告.docx
《数据结构课设报告.docx》由会员分享,可在线阅读,更多相关《数据结构课设报告.docx(59页珍藏版)》请在冰点文库上搜索。
数据结构课设报告
沈阳工程学院
课程设计任务书
课程设计题目:
--家族关系查询系统
--停车场管理系统
一、课程设计的原始资料及依据
1.1家族关系管理系统
随着新世纪的到来全国各地的宗族在大陆的分布较分散,近年来为了研究宗族现在的状况对宗族的情况进行了相关项的调查。
其中以具体的家族关系调查为起始。
本次课设就是做实现家族查询的系统。
主要根据数据结构的原理应用树的制作进行家族查询。
完成编写之后将运行出来的程序分行显示,本程序处理起来相对复杂一些但却涉及到很多方面的知识,需要使用到的数据结构有树状结构和队列。
查阅有关程序设计的案例资料,进一步理解程序设计模块化的思想,并利用此思想,根据对程序设计学习编写一个家族关系查询系统。
通过本设计可以加深理解利用程序设计思想开发一个查询系统的整个流程,提高分析问题、解决问题和实际动手的能力。
1.2停车场管理系统
随着科技的进步和人类文明的发展,智能停车场管理系统在住宅小区,大厦,机关单位的应用越来越普遍。
而人们对停车场管理的要求也越来越高,智能化程度也越来越高,使用更加方便快捷,也为人们的生活带来了方便和快乐不仅提高了现代人的工作效率,也大大的节约了人力物力,降低了公司的运营成本,并使得整个管理系统安全可靠。
包括车辆出入信息管理,收费管理等等。
查阅有关程序设计的案例资料,进一步理解程序设计模块化的思想,并利用此思想,根据对程序设计学习编写一个停车场管理系统。
通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。
二、课程设计主要内容及要求
2.1停车场管理系统
以栈模拟停车场,以队列模拟停车场外的便道,按照从终端读入的输入数据的方式进行模拟管理。
输入1,表示车辆到达;
输入2,表示车辆离开;
输入3,表示显示出停车场内及便道上的停车情况;
输入4,表示退出系统。
车辆到达操作,需输入汽车车牌照号码及到达的时刻;车辆离开操作,需输入汽车在停车场的位置及离开时刻,且应输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
2.2家族关系管理系统
⒈建立:
基本数据结构的定义和链队的基本操作;
家族关系并存入文件;
家族关系树并录入家族成员信息。
⒉打开一个家族关系。
⒊向家族中添加一个新成员。
⒋确定一个成员是第几代。
⒌查询一个成员在家族关系树中是否存在。
⒍查找:
⑴一个成员的所有祖先路径;
⑵一个成员的鼻祖;
⑶一个家族的双亲;
⑷一个成员的兄弟;
⑸一个成员的堂兄弟;
⑹一个成员的所有孩子;
⑺一个成员的子孙后代。
三、对课程设计说明书撰写内容、格式、字数的要求
⒈课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:
设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等。
一般不应少于3000字。
⒉在适当位置配合相应的实验原理图、数据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
⒊设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。
设计小组评语处注明设计组编号、设计组组长、设计组成员,并由设计组组长给出评语。
⒋课程设计说明书手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18
磅。
文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
⒌课程设计说明书装订顺序为:
封面、任务书、成绩评定表、目录、正文、参考文献。
四、设计完成后应提交成果的种类、数量、质量等方面的要求
⒈完成“任务书”中指定的操作功能,运行稳定。
⒉课程设计说明书。
五、时间进度安排
顺序
阶段日期
计划完成内容
备注
1
第1天
阅读资料
2
第2—3天
系统分析设计
3
第4—7天
程序编制、调试及运行
4
第8—9天
成绩评定
5
第10天
撰写课程设计说明书
六、主要参考资料(文献)
⒈严蔚敏吴伟民.数据结构(C语言版).北京:
清华大学出版社.2007
⒉谭浩强.C程序设计.北京:
清华大学出版社.1999.12
⒊滕国文.数据结构课程设计.北京:
清华大学出版社.2010.09
⒋苏仕华等编著.数据结构课程设计.北京:
机械工业出版社.2005.05
⒌李春葆.数据结构(C语言版)习题与解析.北京:
清华大学出版社.2002..04
沈阳工程学院
数据结构课程设计成绩评定表
系(部):
信息工程系班级:
软本101学生姓名:
修国山
指导教师评审意见
评价内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
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)
分
加权分合计
答辩小组教师签名:
年月日
课程设计总评成绩
分
沈阳工程学院
数据结构课程设计成绩评定表
系(部):
信息工程系班级:
软本101学生姓名:
孙天龙
指导教师评审意见
评价内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
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)
分
加权分合计
答辩小组教师签名:
年月日
课程设计总评成绩
分
沈阳工程学院
数据结构课程设计成绩评定表
系(部):
信息工程系班级:
软本101学生姓名:
王超
指导教师评审意见
评价内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
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)
分
加权分合计
答辩小组教师签名:
年月日
课程设计总评成绩
分
摘要
现代科学技术的飞速发展,改变了世界,也改变了人类的生活。
作为新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。
新世纪需要具有丰富的现代科学知识,能够独立解决面临的任务,充满活力,又有创新意识的新型人才。
随着各个领域的突飞猛进,计算机也有它卓越的进步。
数据结构不仅为计算机专业工作者所使用,而且为广大计算机应用人员所喜爱和使用。
数据结构是国际上广泛流行的计算机高级语言。
它适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。
许多高等学校,不仅在计算机专业开设数据结构课程,而且在非计算机专业也开设了数据结构课程。
学习数据结构已经成为广大计算机应用人员和广大青年学生的迫切要求。
本次数据结构课程设计以家族关系管理系统及停车场管理系统为题目。
家族管理系统以三叉树作为储存结构,三个指针域分别指向成员的孩子、下一个兄弟、和双亲,因此结构体的定义需要三个指针域和一个数据域,而数据域存放的是成员的信息,所以数据域仍然是一个结构体。
把家族关系树转化为二叉树进行储存,利用递归的思想实现家族关系的建立、保存、打开、查找和添加。
对于家族关系的建立、保存、打开、查找和添加均要建立一个子函数,而无论查找何种关系总要先找到该成员,因此建立一个查找成员的函数供各个函数调用。
停车场管理系统,是以栈模拟停车场,以队列模拟停车场外的便道,按照从终端读入的输入数据的方式进行模拟管理。
此系统有三大模块,分别为:
车辆到达停车场,车辆进入停车场以及车辆离开停车场。
模拟停车场时需要输入车辆的信息,包括车牌号码及进入与离开时刻,因此可以定义一个时间结点类型,在顺序栈及链式队列中定义一个车辆信息结点类型。
接着我们通过判断栈是否已满,车辆的进栈与出栈以及车辆的进队与入队来模拟车场内的情况。
最后,我们通过定义Print函数来实现对停车场内车辆的信息的输出。
在为期两周的数据结构课程设计学习中,先要学习数据结构课程的目的掌握栈和队列的思想和使用,学习会用计算机语言编写程序,以实现所需要处理的任务。
要正确处理算法与语法的关系,算法结构存储是程序的核心、是灵魂,语法是外壳、是工具。
不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。
一定要把重点放在解题的思路上和运用何种存储的方法,通过思考和大量的阅读,来构造一个完整的程序。
数据结构存储的设计直接关系到程序的好坏。
关键词停车场管理,家族关系,栈,队列,树
第一章绪论
1.1设计背景
家谱是记载记载同一姓氏血缘关系的世系、重要人物、个人事迹、家族历史为主要内容的谱籍,又称“族谱”、“家乘”还有称作“谱牒”。
家谱上可以追本溯源、缅怀先人,下可以辨明关系、联络宗亲,从而启孝梯心,唤德善之本,激励后人,奋发有为,其作用不可尽述。
在社会方面,家谱对于海内外华人寻根认祖,增强民族凝聚力起着重要作用。
在文史工作者,家谱是研究人口学、社会学、经济学、历史学、氏族学、人物传记,以及研究地方史乃是重要资料。
在个人方面家谱又是每个公民身份证明之一。
如有些族规有载,某人若不遵法纪,为非作歹者,击鼓鸣公,革出族外,不准入谱。
可见家谱无论在社会在个人都起着重要作用。
随着社会的发展,人们的宗族观念也越来越深,越来越重视宗亲关系,普通的族谱不仅管理不方便而且不易长久保存和传承。
科技的发展已经可以完美的解决这些问题,人们对电子家谱越来越期待,家族管理系统就在这种背景下诞生了。
近年来,随着经济的发展,我国的城市化水平加快和人民生活水平的提高,私家车成为了老百姓家中很普遍的交通工具,汽车的数量也因此在不断增加。
截至2009年底,我国个人汽车保有量为13427672辆。
其中,个人轿车4890387辆,比2002年增加1462441辆,增长率为42.7%。
在提供便利的同时,私家车也带来了一个让人头疼的问题,那就是停车问题。
特别是在一些大中城市,停车位显得有些供不应求。
大型商场、医院、公司这些都是车辆的主要聚集地。
在这个寸土寸金的社会中,人们都试图在有限的空间中停入最多的车辆,以满足人们日益增加的需求。
因此,如何合理的安排车辆的进出成为了停车场进出车效率的关键。
而正确的管理观念非常重要,科学管理方式选择将成为决定车辆贫富差距的关键性因素。
为此,我们开发并设计了停车场管理系统。
停车场车辆管理的核心是投资收益的最大化和车辆信息分配合理化的集合。
管理服务通过充分利用各种管理工具,帮助您达到合理分配的目的、满足您对管理安全性、收益性等多样化要求。
开发一个停车场车辆管理软件迎合了现代的公司发展趋势,对居民合理管理公司和他人的联系信息起到重要意义。
1.2设计目的
1.2.1停车场管理系统
为了进一步理解程序设计模块化的思想,加深利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。
本次课设我们编写一个停车场管理系统。
目的及要求如下;
以栈模拟停车场,以队列模拟停车场外的便道,按照从终端读入的输入数据的方式进行模拟管理。
输入1,表示车辆到达;
输入2,表示车辆离开;
输入3,表示显示出停车场内及便道上的停车情况;
输入4,表示退出系统。
车辆到达操作,需输入汽车车牌照号码及到达的时刻;车辆离开操作,需输入汽车在停车场的位置及离开时刻,且应输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
1.2.2家族管理系统
力求通过设计并实现一个计算机软件,来支持对家谱的存储、添加、查询、打印等操作。
本课程设计要实现的功能详述如下
⒈建立:
基本数据结构的定义和链队的基本操作;
家族关系并存入文件;
家族关系树并录入家族成员信息。
⒉打开一个家族关系。
⒊向家族中添加一个新成员。
⒋确定一个成员是第几代。
⒌查询一个成员在家族关系树中是否存在。
⒍查找:
⑴一个成员的所有祖先路径;
⑵一个成员的鼻祖;
⑶一个家族的双亲;
⑷一个成员的兄弟;
⑸一个成员的堂兄弟;
⑹一个成员的所有孩子;
⑺一个成员的子孙后代。
第二章系统开发相关技术介绍
2.1栈和队列
堆栈(stack)也简称为栈,是限定在表的一端进行插入或删除操作的线性表。
通常将进行插入或删除操作的一段称为栈顶(top),另一端称为栈底(bottom)。
插入元素又称为入栈(push),删除元素操作称为出栈(pop)。
不含元素的栈称为空栈。
因为堆栈的插入和删除只是在栈顶进行的,总是后进去的元素先出来,所以堆栈又称为后进先出线性表或LIFO(lastinfirstout)表。
堆栈在日常生活中也常见到,如将乒乓球放入一圆柱形的筒中,筒的一端是封闭的,乒乓球的放入和取出都是从筒的一端进行的,那它就是一个堆栈。
堆栈这种数据结构,无论在系统软件还是应用软件设计中都是经常要用到的。
队列(queue)是一种运算受限制的线性表,它与堆栈的不同之处在于元素的添加在表的一端进行,而元素的删除在表的另一端进行。
允许添加元素的一端称为队尾(rear);允许删除元素的一端称为对头(front)。
向队列添加元素称为入队,从队列中删除元素称为出队。
由于新入队的元素只能添加在队尾,出队的元素只能是删除对头的元素,所以队列的特点是先进入队列的元素先出队,故队列也称作先进先出表或FIFO(firstinfirstout)表。
队列与人们日常生活中购物或办事排队的情况十分类似,队中的成员只能按顺序向前移动,而离队的总是排在最前面的人。
2.2树和二叉树
树形结构是一类重要的非线性数据结构。
其中以树和二叉树最为常用,直观看来,树是以分支关系定义的层次结构。
树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可以用树来形象表示。
树(Tree)是由n(n>=0)个有限结点组成一个具有层次逻辑关系的集合。
把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
它具有以下的特点:
⑴每个结点有零个或多个子结点;
⑵每一个子结点只有一个父结点;
⑶没有前驱的结点为根结点;
⑷除了根结点外,每个子结点可以分为m个不相交的子树;
树的有关术语如下:
结点的度:
一个结点含有的子树的个数称为该结点的度;
兄弟结点:
具有相同双亲的结点互称为兄弟节点;
树的度:
一棵树中,最大的节点的度称为树的度;
子孙:
以某节点为根的子树中任一节点都称为该节点的子孙。
二叉树(BinaryTree)是一种特殊的树型结构,它的特点是每个节点至多只有两棵子树,并且二叉树的子树有左右之分,其次序不能随便颠倒。
2.3c语言简介
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,应用如此广泛的它具有如下特点:
⒈C是中级语言。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
⒉C是结构式语言。
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
⒊C语言功能齐全。
具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
⒋C语言适用范围大。
适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
C语言的主要优点包括以下方面:
⑴简洁紧凑、灵活方便;
⑵运算符丰富;
⑶数据结构丰富;
⑷C语法限制不太严格、程序设计自由度大;
⑸C语言允许直接访问物理地址,可以直接对硬件进行操作;
⑹C语言程序生成代码质量高,程序执行效率高;
⑺C语言适用范围大,可移植性好。
第三章系统分析与设计
3.1停车场管理系统
3.1.1系统的功能分析
本任务要求实现停车场管理系统,车辆到达停车场进行车辆停放管理。
根据需要,可以分为以下三种情况:
车辆到达停车场,车辆进入停车场,车辆离开停车场。
其功能模块图如图3.1所示。
图3.1停车场管理系统功能模块图
3.1.2系统模块分析及其流程图
⑴车辆到达停车场:
其中车辆到达时需要用户输入车辆信息,接着要判断栈是否已满,如当前栈未满,则进行入栈操作,即车辆进入停车场;如果栈已满,则车辆必须进入便道等待。
其流程图如图3.2所示。
图3.2车辆到达停车场功能流程图
⑵车辆进入停车场:
车辆进入,则进行入栈操作,即将车辆信息结点进行入栈操作。
其流程图如图3.3所示。
图3.3车辆进入停车场功能流程图
⑶车辆离开停车场:
车辆的离开,则需要另设一个栈,给离去的汽车让路而从停车场退出来的汽车临时停放,也用顺序栈实现,车辆离开后需检查便道内是否有车辆等待,若有等待车辆则进行便道内的车辆进入停车场的操作,即将车辆信息结点进行入栈操作,输入当前时间后开始计费,最后进行出队操作,表示车辆已离开便道。
其流程图如图3.4所示。
图3.4车辆离开停车场功能流程图
3.2家族关系管理系统
3.2.1系统分析
作为家族关系管理系统自然少不了各个成员之间关系的查询,若家族添了新丁自然要在家谱中添加成员,而即使有成员死亡但是他仍然是家族的一员,作为一个系统自然不能只对一个家族进行管理,要具有通用性。
综上所述可以得到系统应有以下的主要功能
⒈建立一个家族关系
⒉保存家族关系
⒊打开一个新的家族关系
⒋向一个家族中添加新成员
⒌查询成员之间的关系
系统功能图如图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 报告