校园导航系统源代码.docx

上传人:b****8 文档编号:10893730 上传时间:2023-02-23 格式:DOCX 页数:12 大小:17.21KB
下载 相关 举报
校园导航系统源代码.docx_第1页
第1页 / 共12页
校园导航系统源代码.docx_第2页
第2页 / 共12页
校园导航系统源代码.docx_第3页
第3页 / 共12页
校园导航系统源代码.docx_第4页
第4页 / 共12页
校园导航系统源代码.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

校园导航系统源代码.docx

《校园导航系统源代码.docx》由会员分享,可在线阅读,更多相关《校园导航系统源代码.docx(12页珍藏版)》请在冰豆网上搜索。

校园导航系统源代码.docx

校园导航系统源代码

#defineINFINITY10000

#defineMAX_VERTEX_NUM40

#defineMAX40

#include

#include

#include

#include

typedefstructArCell

{

intadj;/*路径长度*/

}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedefstruct/*图中顶点表示主要景点,存放景点的编号、名称、简介等信息,*/

{

charname[30];

intnum;

charintroduction[100];/*简介*/

}infotype;

typedefstruct

{

infotypevexs[MAX_VERTEX_NUM];

AdjMatrixarcs;

intvexnum,arcnum;

}MGraph;

MGraphb;

voidcmd(void);

MGraphInitGraph(void);

voidshow1();

voidlist();

voidMenu(void);

voidShortestPath_DIJ(MGraph*G);

voidSearch(MGraph*G);

intLocateVex(MGraph*G,char*v);

/**********主函数************************/

voidmain(void)

{

system("color5f");/*修改控制台的颜色信息,改为白字蓝底的模式*/

system("modecon:

cols=140lines=130");/*设置批处理运行时窗口大小的*/

cmd();

}

/********自定义函数***************/

/*cmd函数(根据目录选择要进展的项目)*/

voidcmd(void)

{

chark;

b=InitGraph();

show1();

Menu();

while

(1)

{

scanf("\n%c",&k);

switch(k)

{

case'x':

system("cls");

show1();

Menu();

list();

ShortestPath_DIJ(&b);

printf("---------------------------------欢送您的使用--------------------------------\n");

printf("\n请您继续选择效劳:

");

break;

case'y':

system("cls");

Menu();

list();

Search(&b);

printf("---------------------------------欢送您的使用--------------------------------\n");

printf("\n请您继续选择效劳:

");

break;

case'z':

system("cls");

printf("┏━━━━━━━━━━━━━━━━━━━━┓\n");

printf("┃感使用┃\n");

printf("┃建筑术大学┃\n");

printf("┃智能导航系统┃\n");

printf("┗━━━━━━━━━━━━━━━━━━━━┛\n");

exit(0);

default:

printf("输入信息错误!

\n请输入x或y或z.\n");

break;}}

}

 

/*迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点*/

voidShortestPath_DIJ(MGraph*G)

{

intv,w,i,min,t=0,x,flag=1,v0,v1,have[100],k;

intfinal[20],D[20],p[23][23];

while(flag)

{

printf("请输入起始景点编号:

\n");

scanf("%d",&v0);

if(v0<0||v0>G->vexnum)

printf("景点编号不存在!

");

printf("请输入终止景点编号:

\n");

scanf("%d",&v1);

if(v1<0||v1>G->vexnum)

printf("景点编号不存在!

");

if(v0>=0&&v0vexnum&&v1>=0&&v1vexnum)

flag=0;

}

for(v=0;vvexnum;++v)

{

final[v]=0;

D[v]=G->arcs[v0][v].adj;

for(w=0;wvexnum;++w)

p[v][w]=INFINITY;

if(D[v]

{

p[v][v0]=1;

p[v][v]=1;

}

}

D[v0]=0;

final[v0]=1;

have[0]=v0;

for(i=1;ivexnum;++i)

{

min=INFINITY;

for(w=0;wvexnum;++w)

if(!

final[w])

if(D[w]

{

v=w;

min=D[w];

}

final[v]=1;

have[k]=v;

k++;

for(w=0;wvexnum;++w)

if(!

final[w]&&((min+(G->arcs[v][w].adj))

{

D[w]=min+G->arcs[v][w].adj;

for(x=0;xvexnum;x++)

p[w][x]=p[v][x];

p[w][w]=1;

}

}

for(i=0;ivexnum;i++)

{

if(p[v1][have[i]]==1){

printf("-->%s",G->vexs[have[i]].name);}

}

if((v1-v0)==1)printf("\n路径长度:

%d\n",G->arcs[v0][v1]);

elseprintf("\n路径长度:

%d\n",D[v1]);

}//ShortestPath_DIJend

/*查找函数的建立*/

voidSearch(MGraph*G)

{

intk,flag=1;

while(flag)

{

printf("请输入要查询的景点编号:

");

scanf("%d",&k);

if(k<0||k>G->vexnum)

{

printf("景点编号不存在!

请重新输入景点编号:

");

scanf("%d",&k);

}

if(k>=0&&kvexnum)

flag=0;

}

printf("┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf("┃编号┃景点名称┃简介┃\n");

printf("┃%-4d┃%-16s┃%-58s┃\n",G->vexs[k].num,G->vexs[k].name,G->vexs[k].introduction);

printf("┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

}//Searchend

voidshow1()

{printf("\t\t★★欢送使用建筑大学智能导航系统★★\n");

printf("\t\t\t建筑大学南校区简单版平面图\n\n");

printf("\t学校北门\n");

printf("\t┃\n");

printf("\t┏━━北食堂━━━━━━━━━宿舍楼1\n");

printf("\t┃┃\n");

printf("\t┃宿舍楼2\n");

printf("\t┃━━━━━━九月桥━━━━━┃\n");

printf("\t┃┃\n");

printf("\t主教楼┃\n");

printf("\t┃┃\n");

printf("\t日月广场┃\n");

printf("\t┃┃\n");

printf("\t图书馆┃\n");

printf("\t┃┃\n");

printf("\t还在建┃\n");

printf("\t┃┃\n");

printf("\t南食堂━━━━━━━━━━━━宿舍楼15\n");

printf("\t┃┃\n");

printf("\t┃┃\n");

printf("\t━━━━━━━━━━━━━━南苑超市\n");

}

voidlist()

{

printf("学校景点列表:

\n");

printf("0:

学校北门");

printf("1:

宿舍楼1");

printf("2:

宿舍楼2");

printf("3:

宿舍楼15");

printf("4:

九月桥\n");

printf("5:

主教楼");

printf("6:

图书馆");

printf("7:

日月广场");

printf("8:

体育场\n");

printf("9:

还在建");

printf("10:

南食堂");

}

/*目录函数的构建*/

voidMenu()

{

printf("\n建筑大学南校区导游图\n");

printf("┏━━━━━━━━━━━━━━━━━━━━┓\n");

printf("┃x.选择出发点和目的地┃\n");

printf("┃y.查看景点信息┃\n");

printf("┃z.退出系统┃\n");

printf("┗━━━━━━━━━━━━━━━━━━━━┛\n");

printf("请选择效劳");

}

/*MGraph函数〔图的构建〕*/

MGraphInitGraph(void)

{

MGraphG;

inti,j;

G.vexnum=17;//顶点是17个

G.arcnum=25;//弧线有25个

for(i=0;i

G.vexs[i].num=i;

strcpy(G.vexs[0].name,"学校北门");

strcpy(G.vexs[0].introduction,"学校的正门,气势宏伟");

strcpy(G.vexs[1].name,"宿舍楼1");

strcpy(G.vexs[1].introduction,"睡觉的地方");

strcpy(G.vexs[2].name,"宿舍楼2");

strcpy(G.vexs[2].introduction,"睡觉的地方");

strcpy(G.vexs[3].name,"宿舍楼15");

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,"学校新修的实验楼,灰常高大上");

strcpy(G.vexs[10].name,"南食堂");

strcpy(G.vexs[10].introduction,"不好吃");

for(i=0;i

for(j=0;j

G.arcs[i][j].adj=INFINITY;

G.arcs[0][1].adj=50;

G.arcs[1][2].adj=15;

G.arcs[1][3].adj=40;

G.arcs[2][3].adj=30;

G.arcs[0][3].adj=90;

G.arcs[3][4].adj=30;

G.arcs[4][9].adj=1000;

G.arcs[4][5].adj=20;

G.arcs[5][6].adj=10;

G.arcs[6][7].adj=8;

G.arcs[6][8].adj=12;

G.arcs[7][8].adj=7;

G.arcs[0][9].adj=30;

G.arcs[9][10].adj=500;

G.arcs[10][11].adj=25;

G.arcs[11][12].adj=8;

G.arcs[12][13].adj=5;

G.arcs[13][14].adj=10;

G.arcs[12][14].adj=10;

G.arcs[14][15].adj=150;

G.arcs[15][16].adj=3;

G.arcs[5][15].adj=150;

G.arcs[4][15].adj=30;

G.arcs[1][11].adj=300;

G.arcs[8][14].adj=40;

for(i=0;i

for(j=0;j

G.arcs[j][i].adj=G.arcs[i][j].adj;

returnG;

}//InitGraphend

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1