数据结构校园导游咨询系统课程设计报告及课程总结Word文件下载.doc
- 文档编号:14180792
- 上传时间:2022-10-19
- 格式:DOC
- 页数:20
- 大小:298.50KB
数据结构校园导游咨询系统课程设计报告及课程总结Word文件下载.doc
《数据结构校园导游咨询系统课程设计报告及课程总结Word文件下载.doc》由会员分享,可在线阅读,更多相关《数据结构校园导游咨询系统课程设计报告及课程总结Word文件下载.doc(20页珍藏版)》请在冰豆网上搜索。
2.3.5显示图中信息函数设计ShowGraph() 4
2.3.6弗洛伊德算法函数设计Floyd() 5
3、详细设计 5
3.1主函数详细设计 5
3.2初始化图函数详细设计InitGraph() 6
3.3查询景点信息函数详细设计SearchGraph() 7
3.4弗洛伊德算法函数详细设计Floyd() 8
4、调试分析 9
4.1显示主界面函数测试 9
4.2查找两景点间最短路径测试 10
4.3查看景点信息测试 11
5.课程设计总结 12
6、附录 13
18
1、需求分析
1.1系统简介
随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。
考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C语言,基于《数据结构》中图的相关算法开发了“江西农业大学校园咨询系统”。
开发本系统目的在于为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的路径具有较大的可信性。
本系统界面友好,提示信息充分,在实际使用过程中运行良好。
1.2系统功能模块介绍
本系统主要分为以下三大功能模块:
1、查询两景点最短路径:
用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入起点和终点的编号,系统将在已存储的景点中进行匹配,若未找到所需查询的景点编号,系统将提示错误并要求用户再次输入。
若输入信息合法,则回车后系统将给出最短路径,显示于屏幕上方;
2、查询景点信息:
用户在选择此功能模块后,按照屏幕上方提示的景点名称及其对应的编号,要求用户输入想要查询的景点的编号,回车后系统将在已存储的景点中进行匹配,若该景点信息尚未存储则将提示错误;
若找到对应信息则系统将输出景点信息,显示于幕上方;
3、退出系统:
用户在使用完本系统后,选择此功能模块,系统提示“欢迎再次使用”后,按任意键系统将自动退出。
2、概要设计
2.1系统功能结构图
2.2系统流程图
开始
创建无向图
写入信息至无向图中
Case1
Case2
Case3
查询路径
查询景点息
T
F
end
退出系统
2.3主要函数概要设计
2.3.1主函数概要设计
主函数首先是调用初始化图函数InitGraph()函数创建一个图,而后调用显示主界面函数显示一个可视化主界面,内容包含本系统LOGO以及景点信息及操作编号的提示信息。
之后,当用户成功输入操作编号后,使用一个switch()函数,判断用户所需操作,匹配成功后,调用相关函数实现用户所需功能。
2.3.2初始化图函数InitGraph()
InitGraph()函数首先使用MyGraph结构体声明一个用于存储图中信息的结构体,而后定义结构体中的景点数量以及路径数量,然后使用循环为景点信息和路径长度赋值,其中赋值景点信息时使用strcpy()函数将字符串复制给G.siteArray[i].siteName以及G.siteArray[i].siteInfo两个数组。
2.3.3显示主界面函数设计MainGraph()
MainGraph()函数主要用于显示主界面,函数中设计了本系统LOGO,同时,界面还提示了景点名称及其对应编号。
主界面下方以列表方式提示用户系统可进行的操作及其对应编号,最后提示用户进行输入。
2.3.4查询景点信息函数设计SearchGraph()
该函数首先定义了一个变量k(用于接收用户输入的查询编号)和一个标记位flag(初始值设为1),而后使用while()循环,判断条件为flag=1,当输入编号不合法时提示错误,当输入合法时标记位flag置为0,此时跳出循环,调用MyGraph结构体对应编号的景点信息,以列表方式输出。
2.3.5显示图中信息函数设计ShowGraph()
ShowGraph()函数主要功能为用循环将存储于图中的景点信息以列表方式输出,方便用户对应着进行输入,同时提示用户进行输入。
2.3.6弗洛伊德算法函数设计Floyd()
本算法在设计时参考了《数据结构C语言版》一书中有关Floyd算法的介绍,同时借鉴了如今网上流行的设计方式。
之所以选择本算法来实现计算最短路径,原因在于本算法容易理解,可以算出任意两个节点之间的最短距离,代码编写简单。
但是,本算法缺点在于时间复杂度过高,不适合用于计算大量数据。
Floyd算法首先将两景点间路径长度数据存储于数组D[v][w]中,而后使用一个三维数组用于存放最短路径所经过的顶点,接下来使用三重循环判断两景点之间直接路径是否大于间接路径,若大于,则将三维数组中存放的顶点信息更改为简介路径所经过的顶点信息。
以上部分完成后,当用于标记输入数据是否合法的flag=1时,输出错误信息,提示用户重新输入,当输入数据合法时,输出以上程序得到结果。
3、详细设计
3.1主函数详细设计
#defineInfiniteNum10000//定义一个无穷大数
#defineMaxInfoNum100//定义景点数据最大容量
#include<
stdio.h>
stdlib.h>
string.h>
#include"
MyGraph.h"
//调用头文件
voidmain(void)
{MGraphg;
//创建图
inti;
g=InitGraph();
//初始化校园地图
MainGraph(&
g);
//调用显示主界面函数
scanf("
%d"
&
i);
while(i!
=3)
{
switch(i)
{
case1:
ShowGraph(&
Floyd(&
MainGraph(&
break;
case2:
SearchGraph(&
case3:
exit(0);
default:
}
scanf("
}
printf("
欢迎下次继续使用!
\n\n"
);
}
3.2初始化图函数详细设计InitGraph()
MGraphInitGraph(void)//初始化图中的信息
{
MGraphG;
inti,j;
G.siteNumber=6;
//景点数量
G.pathNumber=8;
//路径数量
for(i=1;
i<
=G.siteNumber;
i++)
G.siteArray[i].siteIdentifier=i;
//对景点进行对应编号
strcpy(G.siteArray[1].siteName,"
一教"
strcpy(G.siteArray[1].siteInfo,"
最有历史的教学楼"
strcpy(G.siteArray[2].siteName,"
软件学院"
strcpy(G.siteArray[2].siteInfo,"
规模庞大,师资雄厚,全校第二大院"
strcpy(G.siteArray[3].siteName,"
老图书馆"
strcpy(G.siteArray[3].siteInfo,"
说实话,太破了!
"
strcpy(G.siteArray[4].siteName,"
校门"
strcpy(G.siteArray[4].siteInfo,"
有点小家子气,规模太小"
strcpy(G.siteArray[5].siteName,"
新图书馆"
strcpy(G.siteArray[5].siteInfo,"
邵逸夫先生捐赠的,设施较为完备,最常去的地方"
strcpy(G.siteArray[6].siteName,"
南区食堂"
strcpy(G.siteArray[6].siteInfo,"
价格尚算公道,但卫生状况较为堪忧,已经吃出好几次头发了"
for(i=1;
i++)//使用循环对路径进行赋值,对于没有直接路径的,赋值为无穷大
for(j=1;
j<
j++)
G.pathArray[i][j].path=InfiniteNum;
G.pathArray[1][2].path=200;
G.pathArray[1][3].path=100;
G.pathArray[1][4].path=400;
G.pathArray[2][4].path=300;
G.pathArray[4][5].path=100;
G.pathArray[4][6].path=500;
G.pathArray[5][6].path=500;
i++)//所构造的图为无向图,故相反方向路径相同
for(j=1;
G.pathArray[j][i].path=G.pathArray[i][j].path;
returnG;
3.3查询景点信息函数详细设计SearchGraph()
voidSearchGraph(MGraph*G)//用于查询景点信息,以列表方式输出
intk,flag=1;
while(flag)
printf("
请输入要查询的景点编号:
k);
if(k<
=0||k>
G->
siteNumber)//输入景点编号不合法时提示错误
{
printf("
景点编号不存在!
请重新输入景点编号:
scanf("
if(k>
0&
&
k<
=G->
siteNumber)//输入合法时将falg置为0
flag=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 校园 导游 咨询 系统 课程设计 报告 课程 总结