数据结构毕业课程设计报告校园导游图Word格式文档下载.docx
- 文档编号:13559767
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:47
- 大小:721.06KB
数据结构毕业课程设计报告校园导游图Word格式文档下载.docx
《数据结构毕业课程设计报告校园导游图Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构毕业课程设计报告校园导游图Word格式文档下载.docx(47页珍藏版)》请在冰豆网上搜索。
3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。
2.课程设计任务与要求:
任务
根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。
设计题目从任务书所列选题表中选取,每班每题不得超过2人。
学生自选课题
学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。
学生自选课题需在18周前报课程设计指导教师批准方可生效。
要求:
1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。
前期准备工作完备与否直接影响到后序上机调试工作的效率。
在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。
2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。
3、程序设计语言推荐使用CC++,程序书写规范,源程序需加必要的注释;
4、每位同学需提交可独立运行的程序;
5、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);
6、课程设计实践作为培养学生动手能力的一种手段,单独考核。
3.课程设计说明书
一需求分析
1.功能需求:
用无向网表示淮海工学院的校园景点平面图,选取若干个淮海工学院有代表性的景点抽象成无向带权图,图中顶点表示校内各顶点,边上权值表示路径长度。
2.性能需求:
(1)为来访客人查询各景点的相关信息;
(2)为来访客人查询图中任意两个景点间的最短路径
(3)为来访客人查询图中任意两个景点间的所有路径
(7)为来访客人输出对应编号景点的信息
3.数据需求:
建立无向图G,图中顶点ver表示主要景点,存放景点编号position、名称name、简介introduction等信息,图中边arc表示景点间的道路,存放路径长度信息distance。
二概要设计
1.ADTGraph
数据对象V:
V具有相同特性的数组元素的集合,称为顶点集
数据关系R:
R={VR}
VR={<
x,y>
|P(x,y)^(x,y属于V)}
ADTGraph{
数据对象V:
一个集合,该集合中的所有元素具有相同的特性
数据关系R:
基本操作:
(1)
initgraph(&
G);
(2)
creatgraph(mgraph&
G)
;
(3)
DeleteplanArc(mgraph&
G);
(4)
DeleteVertex(mgraph&
(5)
enarc(mgraph&
(6)
enverx(mgraph&
}ADTGraph
基本操作:
1、voiddisplaycampus(mgraphg)输出所有顶点信息(即将展示校园全景图)
2、voidseaabout(mgraphG)根据输入编号用来查询各个景点信息
3、voidshortestpath_Floyd(mgragh*g)用弗洛伊德阿算法求两个景点间最短路径
4、voidAllpaths(mgragh*g)显示输入两个顶点间的所有路径
14、intinitgraph(mgraph&
G)校园导游图的初始化
15、voidmain()主函数,可以调用子函数
16、exit(0)退出程序
三详细设计
总体流程图:
1、创建无向网图算法的伪代码描述如下:
intcreatgraph(mgraph&
G)构造图的邻接矩阵
{
输入矩阵对应的顶点数G.vernum和边数G.arcnum;
for(i=0;
i<
G.vernum;
i++)
{
输入对应的景点编号、景点名称、景点简介:
}
初始化任意景点的路径
修改两顶点间的路径
}
2、输出学校平面图的算法的伪代码描述如下:
voiddisplaycampus(mgraphG)显示景点信息;
对应输出景点编号,景点名称,景点简介
3、按编号查询景点的相关信息的算法的伪代码描述如下:
voidseaabout(mgraphG)景点信息查询;
请输入要查询的景点编号n;
if(n<
0||n>
11)
该景点不存在,请重新输入:
else
根据编号输出对应的景点信息;
4、更改图的信息的算法的伪代码描述如下:
intchangegraph(mgraphG)
重新建图输入1删除结点输入2删除边输入3增加结点输入4
增加边输入5更新图信息输入6打印邻接矩阵输入7返回程序输入8
5、求无向图的最短路径的算法的伪代码描述如下:
voidshortestpath_Floyd(mgraph*G)
{
定义数组三维p[10][10][10],用于寻找任意两景点间最短路径中的景点,
定义二维数组D[10][10]用于存放两顶点间的最短路径;
初始化任意两景点间的最短路径和最短路径上的景点
{
D[v][w]=G->
arcs[v][w].adj;
把v,w路径的值放到D[v][w]中
v,w是,v,w路径上的景点,所以p[v][w][v]=1;
p[v][w][w]=1;
}
如果u到v,w之间的两条路径之和小于v,w之间的路径,则使D[v][w]=D[v][u]+D[u][w]
若i是v,u上的最短路径的景点,或是u,w之间最短路径的景点,则i是v,w之间最短路径上的景点
intflag=1;
while(flag)
输入出发点和目的地的编号:
k,j
if(k<
0||k>
G->
vernum||j<
0||j>
vernum)
景点编号不存在!
请重新输入出发点和目的地的编号:
if(k>
=0&
&
k<
顶点数目&
j>
j<
顶点数目)
flag=0;
逐个输出最短路径上的景点名字以及总路线长
6、求无向图的所有路径的算法的伪代码描述如下:
voidAllpath(mgraph*G)
intv,w,k,j,flag=1,
定义数组三维p[10][10][10],用于寻找任意两景点间路径中的景点,
定义二维数组D[10][10]用于存放两顶点间的路径长度;
输入出发点和目的地的编号k,j;
if(k<
顶点数目||j<
0||j顶点数目)
重新输入出发点和目的地的编号:
k,j;
}
D[v][w]=G->
初始化数组D[v][w]
if(D[v][w]!
=A)如果这两个顶点间存在路径,则使p[v][w]为1,否则为0;
p[v][w]=1;
p[w][v]=1;
}
if(p[k][j]==1)
如果这两个景点间有路径,则输出路径中的所有景点和长度
7、增添路径的信息的算法的伪代码描述如下:
intenarc(mgraph&
G)增加路径
输入增加边的起始点v0,终点v1,及边的长度distance
G.arcs[v0][v1].adj=G.arcs[v0][v1].adj=distance;
设置增加的路径长度;
8、增添景点的信息的算法的伪代码描述如下:
intenverx(mgraph&
G)增加结点
输入要添加的景点的信息:
包括编号,名称,简介
G.vernum++;
增加一条边
G.arcs[i][G.vernum-1].adj=G.arcs[i][G.vernum-1].adj=A;
修改矩阵信息
return1;
9、删除路径的信息的算法的伪代码描述如下:
intDeleteplanArc(mgraph&
G)删除图一条边;
输入要删除的一条边对应的两个顶点v0,v1
调用locatevex函数找到这两个点的位置
更改边的信息
边数减少1;
10、删除景点的信息的算法的伪代码描述如下:
intDeleteVertex(mgraph&
G)删除景点
输入要删除的景点编号v
调用locatevex函数找到这个点的位置
if(m<
0)
重新输入
if(m>
for(i=m;
景点数G.vernum;
{
更改景点的名称strcpy(G.vexs[i].name,G.vexs[i+1].name);
更改顶点的简介strcpy(G.vexs[i].introduction,G.vexs[i+1].introduction);
}
删除该景点所在矩阵的行
删除该景点所在矩阵的
G.vernum--;
边数减少1
11、初始化导游图算法伪代码描述如下:
intinitgraph(mgraph&
G)校园导游图的初始化
设置景点数G.vernum=10;
设置路径数G.arcnum=15;
初始化景点平面图
设置景点编号值,名称,简介
初始化边矩阵
12、打印无向图邻接矩阵算法的伪代码描述如下:
voidprintmatrix(mgraphG)打印图的邻接矩阵;
根据路径的初始化信息
输出一个n行n列的矩阵(n是景点的个数),矩阵中的元素是路径的长度,
如果两景点间无长度,则输出0;
13、景点定位的算法的伪代码描述如下:
intlocatevex(mgraphc,intv)景点的定位
传入要查找的顶点位置v
如果找到改点,返回改点
14、更新校园导游图景点信息算法的伪代码描述如下:
intnewgraph(mgraph&
G)更新景点的信息
输入更改的景点数n;
for(inti=0;
n;
i++)修改景点信息
逐个输入景点的编号、景点的名称:
、景点的简介
输入更改的路径数n;
intdistance,v0,v1;
输入更新的路径的信息
i++)修改路径信息
逐条输入起始景点编号v0、终点景点编号v1、路劲长度distance
四
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 毕业 课程设计 报告 校园 导游
![提示](https://static.bdocx.com/images/bang_tan.gif)