校园导游实验报告Word文件下载.docx
- 文档编号:17861446
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:17
- 大小:152.13KB
校园导游实验报告Word文件下载.docx
《校园导游实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《校园导游实验报告Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
模块功能实现
输入2;
检测查询任意两景点间的所有路径是否可行;
输入3;
检测查询两景点间的最短路径是否可行;
输入4;
检测查找任意一个景点信息是否可行;
输入5;
程序正常结束。
附录:
源代码
Broswer.cpp
#include"
guide.h"
stdio.h"
//浏览校园全景
voidBrowser(MGraph*G)
{
intv;
printf("
┃****=====================================================================================================================****┃\n"
);
┃编号┃景点名称┃简介\n"
for(v=0;
v<
G->
vexnum;
v++)
┃%-4d┃%-16s┃%-100s┃\n"
G->
vexs[v].num,G->
vexs[v].name,G->
vexs[v].introduction);
}
Floyed.cpp
//查询所有浏览路线
voidFloyd(MGraph*G)
intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];
for(w=0;
w<
w++)
{
D[v][w]=G->
arcs[v][w].adj;
for(u=0;
u<
u++)
p[v][w][u]=0;
if(D[v][w]<
INFINITY)
p[v][w][v]=1;
p[v][w][w]=1;
}
if(D[v][u]+D[u][w]<
D[v][w])
D[v][w]=D[v][u]+D[u][w];
for(i=0;
i<
i++)
p[v][w][i]=p[v][u][i]||p[u][w][i];
while(flag)
请输入出发点和目的地的编号:
"
scanf("
%d%d"
&
k,&
j);
if(k<
0||k>
vexnum||j<
0||j>
vexnum)
景点编号不存在!
请重新输入出发点和目的地的编号:
if(k>
=0&
&
k<
vexnum&
j>
j<
flag=0;
%s"
vexs[k].name);
if(p[k][j][u]&
k!
=u&
j!
=u)
-->
vexs[u].name);
vexs[j].name);
总路线长%dm\n"
D[k][j]);
Shortest.cpp
#include<
stdio.h>
//查询某个景点到其他任意景点间的路径
voidShortestPath_DIJ(MGraph*G)
intv,w,i,min,t=0,x,flag=1,v0;
intfinal[20],D[20],p[20][20];
请输入一个起始景点编号:
%d"
v0);
if(v0<
0||v0>
请重新输入景点编号:
if(v0>
v0<
final[v]=0;
D[v]=G->
arcs[v0][v].adj;
//起始景点到其它有路径(边相连)的所有景点的距离
p[v][w]=0;
//初始化,假设所有顶点无边相连
if(D[v]<
p[v][v0]=1;
p[v][v]=1;
//两顶点间有边相连
D[v0]=0;
final[v0]=1;
for(i=1;
min=INFINITY;
if(!
final[w])
if(D[w]<
min){v=w;
min=D[w];
final[v]=1;
final[w]&
(min+G->
arcs[v][w].adj<
D[w]))
D[w]=min+G->
for(x=0;
x<
x++)
p[w][x]=p[v][x];
p[w][w]=1;
if(v0!
=v)printf("
vexs[v0].name);
if(p[v][w]&
w!
=v0)printf("
vexs[w].name);
t++;
if(t>
vexnum-1&
v0!
=v)printf("
总路线长%dm\n\n"
D[v]);
Search.cpp
//查看景点信息
voidSearch(MGraph*G)
intk,flag=1;
{
请输入要查询的景点编号:
k);
┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"
┃编号┃景点名称┃简介┃\n"
┃%-4d┃%-16s┃%-100s\n"
vexs[k].num,G->
vexs[k].name,G->
vexs[k].introduction);
┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
Main.cpp
MGraphb;
//定义图形结构体变量
voidmain(void)
system("
color2f"
//设置背景颜色为绿色
modecon:
cols=140lines=120"
//设置列为140,行为120
inti;
b=InitGraph();
Menu();
i);
while(i!
=5)
switch(i)
case1:
system("
cls"
Browser(&
b);
Menu();
break;
case2:
ShortestPath_DIJ(&
case3:
Floyd(&
case4:
Search(&
case5:
exit
(1);
default:
//初始化图
MGraphInitGraph(void)
MGraphG;
inti,j;
G.vexnum=10;
//将图的景点个数设置为10
G.arcnum=14;
//景点间的路径为14条,即图的无向边有14条
G.vexnum;
G.vexs[i].num=i;
strcpy(G.vexs[0].name,"
九院西大门"
strcpy(G.vexs[0].introduction,"
“西大门”以“白鹿洞书院”和“濂溪书院”为题材的浮雕文化墙,着力象征九江学院传承千年学府的办学观念。
strcpy(G.vexs[1].name,"
明月湾"
strcpy(G.vexs[1].introduction,"
“明月湾”,新区上两湖之间的水渠,形似月亮,兼指黄庭坚故里的“明月湾”"
strcpy(G.vexs[2].name,"
五柳湖"
strcpy(G.vexs[2].introduction,"
“五柳湖”,新区最高处的湖,用陶渊明《五柳先生传》之意"
strcpy(G.vexs[3].name,"
秋韵园"
strcpy(G.vexs[3].introduction,"
“秋韵园”,新区最高处湖的北面洼地中有小园,取名“秋韵园”,与爱菊的诗人陶渊明联系起来。
strcpy(G.vexs[4].name,"
厚德广场"
strcpy(G.vexs[4].introduction,"
“厚德广场”,新综合楼前的花园广场,取校训“厚德笃行”之意"
strcpy(G.vexs[5].name,"
足球场"
strcpy(G.vexs[5].introduction,"
“足球场”,现代化塑胶跑道,人造草坪,适宜锻炼身体的场所"
strcpy(G.vexs[6].name,"
七心亭"
strcpy(G.vexs[6].introduction,"
“七心亭”,一号教学楼正前方的廊亭,取自汤来贺白鹿洞书院学规"
strcpy(G.vexs[7].name,"
竞知广场"
strcpy(G.vexs[7].introduction,"
“竞知广场”,一号教学楼前面的广场,取校训“竞知向学”之意"
strcpy(G.vexs[8].name,"
钓鱼台"
strcpy(G.vexs[8].introduction,"
“钓台亭”,蝶湖中央的亭子,取李梦阳《钓台亭记》潜心学业之意。
strcpy(G.vexs[9].name,"
鹿园"
strcpy(G.vexs[9].introduction,"
“鹿园”,行政办公楼下的园门,园门口有白鹿的塑像。
体现与白鹿洞书院的关系"
for(j=0;
j++)
G.arcs[i][j].adj=INFINITY;
G.arcs[0][1].adj=500;
G.arcs[0][2].adj=510;
G.arcs[0][6].adj=2000;
G.arcs[1][7].adj=1950;
G.arcs[2][3].adj=120;
G.arcs[3][6].adj=1800;
G.arcs[3][4].adj=1500;
G.arcs[4][5].adj=300;
G.arcs[4][9].adj=450;
G.arcs[5][9].adj=50;
G.arcs[6][7].adj=60;
G.arcs[6][9].adj=200;
G.arcs[7][8].adj=100;
G.arcs[8][9].adj=120;
G.arcs[j][i].adj=G.arcs[i][j].adj;
returnG;
voidMenu()
{
\n九江学院学院导游图\n"
┏━━━━━━━━━━━━━━━━━━━━┓\n"
┃1.浏览校园全景┃\n"
┃2.查看所有游览路线┃\n"
┃3.选择出发点和目的地┃\n"
┃4.输入景点编号查看景点信息┃\n"
┃5.退出系统┃\n"
┗━━━━━━━━━━━━━━━━━━━━┛\n"
请选择你的(1~5):
Guide.h
#defineINFINITY10000/*无穷大*/
#defineMAX_VERTEX_NUM40
#defineMAX40
#include<
stdlib.h>
conio.h>
string.h>
typedefstructArCell
intadj;
//路径长度
}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedefstruct//图中顶点表示主要景点,存放景点的编号、名称、简介等信息,
charname[20];
intnum;
charintroduction[200];
//简介
}infotype;
typedefstruct
infotypevexs[MAX_VERTEX_NUM];
//图的顶点个数
AdjMatrixarcs;
//图中两顶点的距离
intvexnum,arcnum;
//图的定点个数,边数
}MGraph;
MGraphInitGraph(void);
//初始化图
voidMenu(void);
//显示选项菜单
voidBrowser(MGraph*G);
//浏览校园全部景点
voidShortestPath_DIJ(MGraph*G);
//查询某个景点到其他任意景点间的路径
voidFloyd(MGraph*G);
//查询两景点之间的最短路径
voidSearch(MGraph*G);
//查看任意某个景点信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 校园 导游 实验 报告