校园导游系统的源程序.docx

上传人:b****7 文档编号:16288478 上传时间:2023-07-12 格式:DOCX 页数:20 大小:19.26KB
下载 相关 举报
校园导游系统的源程序.docx_第1页
第1页 / 共20页
校园导游系统的源程序.docx_第2页
第2页 / 共20页
校园导游系统的源程序.docx_第3页
第3页 / 共20页
校园导游系统的源程序.docx_第4页
第4页 / 共20页
校园导游系统的源程序.docx_第5页
第5页 / 共20页
校园导游系统的源程序.docx_第6页
第6页 / 共20页
校园导游系统的源程序.docx_第7页
第7页 / 共20页
校园导游系统的源程序.docx_第8页
第8页 / 共20页
校园导游系统的源程序.docx_第9页
第9页 / 共20页
校园导游系统的源程序.docx_第10页
第10页 / 共20页
校园导游系统的源程序.docx_第11页
第11页 / 共20页
校园导游系统的源程序.docx_第12页
第12页 / 共20页
校园导游系统的源程序.docx_第13页
第13页 / 共20页
校园导游系统的源程序.docx_第14页
第14页 / 共20页
校园导游系统的源程序.docx_第15页
第15页 / 共20页
校园导游系统的源程序.docx_第16页
第16页 / 共20页
校园导游系统的源程序.docx_第17页
第17页 / 共20页
校园导游系统的源程序.docx_第18页
第18页 / 共20页
校园导游系统的源程序.docx_第19页
第19页 / 共20页
校园导游系统的源程序.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

校园导游系统的源程序.docx

《校园导游系统的源程序.docx》由会员分享,可在线阅读,更多相关《校园导游系统的源程序.docx(20页珍藏版)》请在冰点文库上搜索。

校园导游系统的源程序.docx

校园导游系统的源程序

#include

#include

#include

#include

#defineMaxSize100

#defineVISITED1

#defineNOTVISITED0

#defineInfinite1073741823

#defineMaxViewNum50/*景点个数最大50*/

#defineMaxRoad1000/*定义路径为无穷大*/

#defineN16/*目前景点个数*/

typedefstruct

{

charname[30];/*景点名称*/

charnumber[10];/*景点代号*/

charintroduce[200];/*景点介绍*/

}Elemtype;

typedefstruct

{

intnum;/*景点编号*/

Elemtypedate;/*景点信息*/

}View;/*定义景点*/

typedefstruct

{

Viewview[MaxViewNum];/*存放顶点的一维数组,数组第零单元没有用上*/

unsignedintlength[MaxViewNum][MaxViewNum];/*存放路径长度*/

intm,n;

}MGraph;

MGraphMGr;/*全局变量,定义MGr为MGraph类型*/

intshortest[MaxViewNum][MaxViewNum];/*定义全局变量存贮最小路径*/

intpath[MaxViewNum][MaxViewNum];/*定义存贮路径*/

voidinit()

{

inti,j;

MGr.view[1].num=1;

strcpy(MGr.view[1].date.name,"学校正门");

strcpy(MGr.view[1].date.number,"001");

strcpy(MGr.view[1].date.introduce,"毗邻中心大道,交通便利。

");

MGr.view[2].num=2;

strcpy(MGr.view[2].date.name,"行政楼");

strcpy(MGr.view[2].date.number,"002");

strcpy(MGr.view[2].date.introduce,"学校领导,办公主楼。

");

MGr.view[3].num=3;

strcpy(MGr.view[3].date.name,"科技楼");

strcpy(MGr.view[3].date.number,"003");

strcpy(MGr.view[3].date.introduce,"逸夫科技楼");

MGr.view[4].num=4;

strcpy(MGr.view[4].date.name,"家属院");

strcpy(MGr.view[4].date.number,"004");

strcpy(MGr.view[4].date.introduce,"兰州理工大学,教职工家属院。

");

MGr.view[5].num=5;

strcpy(MGr.view[5].date.name,"图书馆");

strcpy(MGr.view[5].date.number,"005");

strcpy(MGr.view[5].date.introduce,"历史悠久,文化积淀。

供同学安静学习的环境。

");

MGr.view[6].num=6;

strcpy(MGr.view[6].date.name,"机械基地");

strcpy(MGr.view[6].date.number,"006");

strcpy(MGr.view[6].date.introduce,"土木工程学院和机电工程学院,实习实践的地方。

");

MGr.view[7].num=7;

strcpy(MGr.view[7].date.name,"学生公寓");

strcpy(MGr.view[7].date.number,"007");

strcpy(MGr.view[7].date.introduce,"学生宿舍区,本科、研究生,以及教师公寓。

");

MGr.view[8].num=8;

strcpy(MGr.view[8].date.name,"餐厅");

strcpy(MGr.view[8].date.number,"008");

strcpy(MGr.view[8].date.introduce,"清泽、智林、风味三大餐厅,周边开水房等服务场所。

");

MGr.view[9].num=9;

strcpy(MGr.view[9].date.name,"怡情园");

strcpy(MGr.view[9].date.number,"009");

strcpy(MGr.view[9].date.introduce,"学校新修建的花园,景色优美,适合同学们晨读");

MGr.view[10].num=10;

strcpy(MGr.view[10].date.name,"体育场");

strcpy(MGr.view[10].date.number,"010");

strcpy(MGr.view[10].date.introduce,"绿茵地、活动中心。

篮球场、足球场、网球场依次,丰富课余生活。

");

MGr.view[11].num=11;

strcpy(MGr.view[11].date.name,"国际交流中心");

strcpy(MGr.view[11].date.number,"011");

strcpy(MGr.view[11].date.introduce,"外国留学生、外籍教师上课活动场所。

");

MGr.view[12].num=12;

strcpy(MGr.view[12].date.name,"流体实验室");

strcpy(MGr.view[12].date.number,"012");

strcpy(MGr.view[12].date.introduce,"兰州理工大学流体实验室,同样也是理学院研究生实验室");

MGr.view[13].num=13;

strcpy(MGr.view[13].date.name,"工大高层");

strcpy(MGr.view[13].date.number,"013");

strcpy(MGr.view[13].date.introduce,"新建工大高层,是各个院办公室所在地,同样也是各个院行政楼。

");

MGr.view[14].num=14;

strcpy(MGr.view[14].date.name,"教学楼");

strcpy(MGr.view[14].date.number,"014");

strcpy(MGr.view[14].date.introduce,"外语院,设计院等学生日常上课的地方。

");

MGr.view[15].num=15;

strcpy(MGr.view[15].date.name,"附属中学");

strcpy(MGr.view[15].date.number,"015");

strcpy(MGr.view[15].date.introduce,"兰州理工大学附属中学。

");

MGr.view[16].num=16;

strcpy(MGr.view[16].date.name,"教学北楼");

strcpy(MGr.view[16].date.number,"016");

strcpy(MGr.view[16].date.introduce,"外国留学生日常上课的地方。

");

for(i=1;i<=N;i++)

{

for(j=1;j<=N;j++)

{

MGr.length[i][j]=MaxRoad;

}

}

for(i=1;i<=N;i++)

{

shortest[i][j]=0;

}

MGr.length[1][2]=MGr.length[2][1]=30;

MGr.length[2][3]=MGr.length[3][2]=50;

MGr.length[3][4]=MGr.length[4][3]=60;

MGr.length[3][5]=MGr.length[5][3]=120;

MGr.length[5][6]=MGr.length[6][5]=20;

MGr.length[6][7]=MGr.length[7][6]=230;

MGr.length[6][9]=MGr.length[9][6]=50;

MGr.length[7][8]=MGr.length[8][7]=50;

MGr.length[8][9]=MGr.length[9][8]=230;

MGr.length[8][10]=MGr.length[10][8]=50;

MGr.length[9][11]=MGr.length[11][9]=50;

MGr.length[10][11]=MGr.length[11][10]=230;

MGr.length[11][12]=MGr.length[12][11]=60;

MGr.length[12][13]=MGr.length[13][12]=60;

MGr.length[13][14]=MGr.length[14][13]=60;

MGr.length[11][14]=MGr.length[14][11]=60;

MGr.length[16][14]=MGr.length[14][16]=80;

MGr.length[13][15]=MGr.length[15][13]=80;

MGr.length[2][16]=MGr.length[16][2]=50;

MGr.length[1][1]=MGr.length[2][2]=MGr.length[3][3]=MGr.length[4][4]=0;

MGr.length[5][5]=MGr.length[6][6]=MGr.length[7][7]=MGr.length[8][8]=0;

MGr.length[9][9]=MGr.length[10][10]=MGr.length[11][11]=MGr.length[12][12]=0;

MGr.length[13][13]=MGr.length[14][14]=MGr.length[15][15]=MGr.length[16][16]=0;

}

voidintroduce()

{

intm;

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

\n");

scanf("%d",&m);fflush(stdin);

switch(m)

{

case1:

printf("景点编号:

%s\t",MGr.view[1].date.number);

printf("景点名称:

%s\n",MGr.view[1].date.name);

printf("景点简介:

%s\n",MGr.view[1].date.introduce);

break;

case2:

printf("景点编号:

%s\t",MGr.view[2].date.number);

printf("景点名称:

%s\n",MGr.view[2].date.name);

printf("景点简介:

%s\n",MGr.view[2].date.introduce);

break;

case3:

printf("景点编号:

%s\t",MGr.view[3].date.number);

printf("景点名称:

%s\n",MGr.view[3].date.name);

printf("景点简介:

%s\n",MGr.view[3].date.introduce);

break;

case4:

printf("景点编号:

%s\t",MGr.view[4].date.number);

printf("景点名称:

%s\n",MGr.view[4].date.name);

printf("景点简介:

%s\n",MGr.view[4].date.introduce);

break;

case5:

printf("景点编号:

%s\t",MGr.view[5].date.number);

printf("景点名称:

%s\n",MGr.view[5].date.name);

printf("景点简介:

%s\n",MGr.view[5].date.introduce);

break;

case6:

printf("景点编号:

%s\t",MGr.view[6].date.number);

printf("景点名称:

%s\n",MGr.view[6].date.name);

printf("景点简介:

%s\n",MGr.view[6].date.introduce);

break;

case7:

printf("景点编号:

%s\t",MGr.view[7].date.number);

printf("景点名称:

%s\n",MGr.view[7].date.name);

printf("景点简介:

%s\n",MGr.view[7].date.introduce);

break;

case8:

printf("景点编号:

%s\t",MGr.view[8].date.number);

printf("景点名称:

%s\n",MGr.view[8].date.name);

printf("景点简介:

%s\n",MGr.view[8].date.introduce);

break;

case9:

printf("景点编号:

%s\t",MGr.view[9].date.number);

printf("景点名称:

%s\n",MGr.view[9].date.name);

printf("景点简介:

%s\n",MGr.view[9].date.introduce);

break;

case10:

printf("景点编号:

%s\t",MGr.view[10].date.number);

printf("景点名称:

%s\n",MGr.view[10].date.name);

printf("景点简介:

%s\n",MGr.view[10].date.introduce);

break;

case11:

printf("景点编号:

%s\t",MGr.view[11].date.number);

printf("景点名称:

%s\n",MGr.view[11].date.name);

printf("景点简介:

%s\n",MGr.view[11].date.introduce);

break;

case12:

printf("景点编号:

%s\t",MGr.view[12].date.number);

printf("景点名称:

%s\n",MGr.view[12].date.name);

printf("景点简介:

%s\n",MGr.view[12].date.introduce);

break;

case13:

printf("景点编号:

%s\t",MGr.view[13].date.number);

printf("景点名称:

%s\n",MGr.view[13].date.name);

printf("景点简介:

%s\n",MGr.view[13].date.introduce);

break;

case14:

printf("景点编号:

%s\t",MGr.view[14].date.number);

printf("景点名称:

%s\n",MGr.view[14].date.name);

printf("景点简介:

%s\n",MGr.view[14].date.introduce);

break;

case15:

printf("景点编号:

%s\t",MGr.view[15].date.number);

printf("景点名称:

%s\n",MGr.view[15].date.name);

printf("景点简介:

%s\n",MGr.view[15].date.introduce);

break;

case16:

printf("景点编号:

%s\t",MGr.view[16].date.number);

printf("景点名称:

%s\n",MGr.view[16].date.name);

printf("景点简介:

%s\n",MGr.view[16].date.introduce);

break;

default:

printf("输入序号错误。

\n");

break;

}

printf("\n");

}

voidfloyd()/*佛洛依德算法*/

{

inti,j,k;

for(i=1;i<=N;i++)

{

for(j=1;j<=N;j++)

{

shortest[i][j]=MGr.length[i][j];

path[i][j]=0;

}

}/*初始化数组*/

for(k=1;k<=N;k++)

{

for(i=1;i<=N;i++)

{

for(j=1;j<=N;j++)

{

if(shortest[i][j]>(shortest[i][k]+shortest[k][j]))

{

shortest[i][j]=shortest[i][k]+shortest[k][j];

path[i][j]=k;

path[j][i]=k;/*记录经过的路径*/

}//end_if

}

}//end_for

}

}

voiddisplay(inti,intj)

{/*打印两个景点的路径及最短路径*/

inta,b;

a=i;

b=j;

printf("您要查询的两景点间最短路径是:

\n\n");

fflush(stdin);

if(i

{

printf("%d",b);

while(path[i][j]!

=0)

{

printf("<-%d",path[i][j]);

if(i

j=path[i][j];

else

i=path[j][i];

}

printf("<-%d\n\n",a);

printf("%d->%d的最短路径是:

%d米。

\n\n",a,b,shortest[a][b]);

}

else

{

printf("%d",a);

while(path[i][j]!

=0)

{/*把i到j的路径上所有经过的景点按顺序打印出来*/

printf("->%d",path[i][j]);

if(i

j=path[i][j];

else

i=path[j][i];

}

printf("->%d\n\n",b);

printf("%d->%d的最短路径是:

%d米。

\n\n",a,b,shortest[a][b]);

}

}/*display*/

intshortdistance()

{/*要查找的两景点的最短路径*/

inti,j;

printf("请输入要查询的两个景点的数字编号(1->16)中间用空格间隔开。

\n");

scanf("%d%d",&i,&j);

if(i>N||i<0||j>N||j<0)

{

printf("输入信息错误!

\n\n");

printf("请输入要查询的两个景点的数字编号(1->16)中间用空格间隔开。

\n");

scanf("%d%d",&i,&j);

}

else

{

floyd();

display(i,j);

}

return1;

fflush(stdin);

}/*shortestdistance*/

longintA[MaxSize+1][MaxSize+1];/*迪杰斯特拉算法*/

longintD[MaxSize+1];

longintS[MaxSize+1],P[MaxSize+1];

intsource,sink;

intstep=1;

inttop=-1;

intStack[MaxSize+1];

voidinput()

{

inti,j;

printf("\n请输入起始节点:

");

scanf("%d",&source);

printf("\n请输入结束节点:

");

scanf("%d",&sink);

for(i=1;i<=N;i++)

{

S[i]=NOTVISITED;

D[i]=MGr.length[source][i];

P[i]=source;

}

S[source]=VISITED;

D[source]=0;

}

voidPush(intvalue)

{

if(top>=MaxSize)

{

printf("没有路径存在!

\n");

exit

(1);

}

else

Stack[++top]=value;

}

intPop()

{

if(top<0)

{

printf("没有路径存在!

\n");

exit

(1);

}

returnStack[top--];

}

intminD()

{

inti,t=0;

longintminimum=Infinite;

for(i=1;i<=N;i++)

if((S[i]==NOTVISITED)&&D[i]

{

minimum=D[i];

t=i;

}

returnt;

}

voidoutput_path()

{

intnode=sink;

if((sink==source)||(D[sink]==Infinite))

{

printf("\n节点%d与节点%d之间没有路径存在!

",source,sink);

return;

}

printf("\n");

while(node!

=source)

{

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2