欢迎来到天天文库
浏览记录
ID:47518128
大小:188.50 KB
页数:15页
时间:2020-01-12
《数据结构课程设计-校园导航》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计报告课程名称数据结构课程设计题目校园导航指导教师设计起始日期5.9~5.16学院计算机学院系别计算机科学与工程学生姓名班级/学号成绩一、需求分析本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。本课题实现校园多个场所(至少10个)的最短路径求解。(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char
2、型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。(2)输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。(3)程序所能达到的功能:本程序可供任何人使用,主要功能1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。a.首先看到的是校园导航系统的菜单:b.查看浏览路线等待输入起始景点:C.选择出发点与目的地等待输入起始景点与目的地编号:d.参看景点信息等
3、待输入景点编号:二、概要设计本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。系统首先通过主程序调用voidmain();进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统
4、。选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。选择“查看所有游览路线”项,会进入输入起始景点编号的界面,输入正确编号后会显示起始景点到其余九个景点的最短路线的方案。选择“选择出发点和目的地”项,会进入输入起始景点与目的景点的界面,输入起始景点与目的景点,并有空格隔开就得到两景点之间的最佳路径。选择“查看景点信息”项,会进入输入要查看的景点的界面,如入后会显示该景点的有关信息。选择“退出系统”项,就会退出程序。一、详细设计(1)十三个单位的图0:前门1:图书馆2:教二楼3:实验楼
5、4:操场5:教一楼6:食堂7:水房8:学一公寓9:学二公寓10:学三公寓11:学四公寓12:后门(2)主程序流程图:(3)弗洛伊德的算法:voidFloyd(MGraph*G){intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];//定义参数for(v=0;vvexnum;v++)for(w=0;wvexnum;w++){D[v][w]=G->arcs[v][w].adj;for(u=0;uvexnum;u++)p[v][w][u]=0;if(D[v][w
6、]vexnum;u++)for(v=0;vvexnum;v++)for(w=0;wvexnum;w++)if(D[v][u]+D[u][w]vexnum;i++)p[v][w][i]=p[v][u][i]
7、
8、p[u][w][i];}while(flag){cout<<"请输入出发点和目的地的编号(用空格隔开)
9、:";cin>>k>>j;if(k<0
10、
11、k>G->vexnum
12、
13、j<0
14、
15、j>G->vexnum)//判断输入的景点编号正确与否{cout<<"景点编号不存在!请重新输入出发点和目的地的编号:";cin>>k>>j;}if(k>=0&&kvexnum&&j>=0&&jvexnum)flag=0;}cout<vexs[k].name;//输出景点名称for(u=0;uvexnum;u++)if(p[k][j][u]&&k!=u&&j!=u)//输出路线cout<<"-->"<v
16、exs[u].name;cout<<"-->"<vexs[j].name;cout<<"总路线长"<
此文档下载收益归作者所有