校园导游系统源程序_第1页
校园导游系统源程序_第2页
校园导游系统源程序_第3页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include #include #include #include #define MaxSize 100 #define VISITED 1 #define NOTVISITED 0 #define Infinite 1073741823 #define MaxViewNum 50 #define MaxRoad 1000 #define N 16typedef structchar name30; char number10; char introduce200;Elemtype;typedef structint num;Elemtype date;View;/* 景点个数最大 50

2、*/ /* 定义路径为无穷大 */ /* 目前景点个数 */* 景点名称 */ /* 景点代号 */ /* 景点介绍 */* 景点编号 */ /* 景点信息 */ /* 定义景点 */typedef structView viewMaxViewNum;/* 存放顶点的一维数组,数组第零单元没有用上*/unsigned int lengthMaxViewNumMaxViewNum;/* 存放路径长度 */int m,n;MGraph;MGraph MGr;/*全局变量 ,定义 MGr 为 MGraph 类型 */int shortestMaxViewNumMaxViewNum; /* 定义全局变

3、量存贮最小路径 */ int pathMaxViewNumMaxViewNum; /* 定义存贮路径 */ void init()int i,j;MGr.view1.num=1; strcpy(MG, 学校正门 ); strcpy(MGr.view1.date.number,001); strcpy(MGroduce, 毗邻中心大道,交通便利。 );MGr.view2.num=2; strcpy(MG, 行政楼 ); strcpy(MGr.view2.date.number,002);strcp

4、y(MGroduce, 学校领导,办公主楼。 );MGr.view3.num=3;strcpy(MG, 科技楼 ); strcpy(MGr.view3.date.number,003); strcpy(MGroduce, 逸夫科技楼 );MGr.view4.num=4;strcpy(MG, 家属院 ); strcpy(MGr.view4.date.number,004);strcpy(MGroduce, 兰州理工大学,教职工家属院。

5、 );MGr.view5.num=5; strcpy(MG, 图书馆 ); strcpy(MGr.view5.date.number,005);strcpy(MGroduce, 历史悠久,文化积淀。供同学安静学习的环境。 );MGr.view6.num=6; strcpy(MG, 机械基地 ); strcpy(MGr.view6.date.number,006);strcpy(MGroduce, 土木工程学院和机电工程学院, 实习实践的地方。 );MGr.view

6、7.num=7; strcpy(MG, 学生公寓 ); strcpy(MGr.view7.date.number,007);strcpy(MGroduce, 学生宿舍区,本科、研究生,以及教师公寓。 );MGr.view8.num=8; strcpy(MG, 餐厅 ); strcpy(MGr.view8.date.number,008);strcpy(MGroduce, 清泽、智林、 风味三大餐厅, 周边开水房等效劳场所。 );MGr.view9.num=9; s

7、trcpy(MG, 怡情园 ); strcpy(MGr.view9.date.number,009);strcpy(MGroduce, 学校新修建的花园,景色优美,适合同学们晨读 );MGr.view10.num=10;strcpy(MG, 体育场 );strcpy(MGr.view10.date.number,010);strcpyMGroduce, 绿茵地、 活动中心。 篮球场、 足球场、 网球场依次, 丰富课余生活。 ;MGr.view11.num=11

8、; strcpyMG, 国际交流中心 ; strcpyMGr.view11.date.number,011;strcpyMGroduce, 外国留学生、外籍教师上课活动场所。 ;MGr.view12.num=12; strcpyMG, 流体实验室 ; strcpyMGr.view12.date.number,012;strcpyMGroduce, 兰州理工大学流体实验室,同样也是理学院研究生 实验室 ;MGr.view13.num=13; strcpyMG

9、, 工大高层 ; strcpyMGr.view13.date.number,013;strcpyMGroduce, 新建工大高层,是各个院办公室所在地,同样也是 各个院行政楼。 ;MGr.view14.num=14; strcpyMG, 教学楼 ; strcpyMGr.view14.date.number,014; strcpyMGroduce, 外语院,设计院等学生日常上课的地方。 ;MGr.view15.num=15; strcpyMGr.view15

10、., 附属中学 ; strcpyMGr.view15.date.number,015;strcpyMGroduce, 兰州理工大学附属中学。 ;MGr.view16.num=16; strcpyMG, 教学北楼 ; strcpyMGr.view16.date.number,016;strcpyMGroduce, 外国留学生日常上课的地方。 ;fori=1;i=N;i+forj=1;j=N;j+MGr.lengthij=MaxRoad; fori=1;i=N;i+shorte

11、stij=0;MGr.length12=MGr.length21=30;MGr.length23=MGr.length32=50;MGr.length34=MGr.length43=60;MGr.length35=MGr.length53=120;MGr.length56=MGr.length65=20;MGr.length67=MGr.length76=230;MGr.length69=MGr.length96=50;MGr.length78=MGr.length87=50;MGr.length89=MGr.length98=230;MGr.length810=MGr.length108=5

12、0;MGr.length911=MGr.length119=50;MGr.length1011=MGr.length1110=230;MGr.length1112=MGr.length1211=60;MGr.length1213=MGr.length1312=60;MGr.length1314=MGr.length1413=60;MGr.length1114=MGr.length1411=60;MGr.length1614=MGr.length1416=80;MGr.length1315=MGr.length1513=80;MGr.length216=MGr.length162=50;MGr.

13、length11=MGr.length22=MGr.length33=MGr.length44=0;MGr.length55=MGr.length66=MGr.length77=MGr.length88=0;MGr.length99=MGr.length1010=MGr.length1111=MGr.length1212=0;MGr.length1313=MGr.length1414=MGr.length1515=MGr.length1616=0; void introduceint m;printf 请输入查询景点编号: n;scanf%d,&m; fflushstdin;switchmca

14、se 1:printf 景点编号: %st,MGr.view1.date.number;printf 景点名称: %sn,MG;printf 景点简介: %sn,MGroduce; break;case 2:printf 景点编号: %st,MGr.view2.date.number;printf 景点名称: %sn,MG;printf 景点简介: %sn,MGroduce; break;case 3:printf( 景点编号:%st,MGr.view3.date

15、.number);printf( 景点名称:%sn,MG);printf( 景点简介:%sn,MGroduce);break;case 4:printf( 景点编号:%st,MGr.view4.date.number);printf( 景点名称:%sn,MG);printf( 景点简介:%sn,MGroduce);break;case 5:printf( 景点编号:%st,MGr.view5.date.number);printf( 景点名称:%sn,MGr.vi

16、);printf( 景点简介:%sn,MGroduce);break;case 6:printf( 景点编号:%st,MGr.view6.date.number);printf( 景点名称:%sn,MG);printf( 景点简介:%sn,MGroduce);break;case 7:printf( 景点编号:%st,MGr.view7.date.number);printf( 景点名称:%sn,MG);printf( 景点简介:%sn,

17、MGroduce);break;case 8:printf( 景点编号:%st,MGr.view8.date.number);printf( 景点名称:%sn,MG);printf( 景点简介:%sn,MGroduce);break;case 9:printf( 景点编号:printf( 景点名称:printf( 景点简介: break;case 10:%st,MGr.view9.date.number);%sn,MG);%sn,MGr.view9.date.in

18、troduce);printf( 景点编号:%st,MGr.view10.date.number);printf( 景点名称:%sn,MG);printf( 景点简介:%sn,MGroduce);break;case 11:printf( 景点编号:%st,MGr.view11.date.number);printf( 景点名称:%sn,MG);printf( 景点简介:%sn,MGroduce);break;case 12:printf 景点编号: %s

19、t,MGr.view12.date.number; printf 景点名称: %sn,MG; printf 景点简介: %sn,MGroduce; break;case 13:printf 景点编号: %st,MGr.view13.date.number; printf 景点名称: %sn,MG; printf 景点简介: %sn,MGroduce; break;case 14:printf 景点编号: %st,MGr.view14.date.number

20、; printf 景点名称: %sn,MG; printf 景点简介: %sn,MGroduce; break;case 15:printf 景点编号: %st,MGr.view15.date.number; printf 景点名称: %sn,MG; printf 景点简介: %sn,MGroduce; break;case 16:printf 景点编号: %st,MGr.view16.date.number; printf 景点名称: %sn,MGr.v

21、; printf 景点简介: %sn,MGroduce; break;default:printf 输入序号错误。 n;break; printfn;void floyd/* 佛洛依德算法 */int i,j,k;fori=1;i=N;i+forj=1;j=N;j+ shortestij=MGr.lengthij; pathij=0; /* 初始化数组 */for(k=1;k=N;k+)for(i=1;i=N;i+)for(j=1;j(shortestik+shortestkj) shortestij=shortestik+sho

22、rtestkj; pathij=k;pathji=k; /* 记录经过的路径 */end_if/end_forvoid display(int i,int j) /* 打印两个景点的路径及最短路径 */int a,b;a=i;b=j;printf( 您要查询的两景点间最短路径是: nn);fflush(stdin);if(ij)printf(%d,b);while(pathij!=0)printf(-%d,pathij);if(ij)j=pathij;elsei=pathji;printf(%d 的最短路径是: %d 米。 nn,a,b,shortestab);elseprintf(%d,a)

23、;while(pathij!=0)/* 把 i 到 j 的路径上所有经过的景点按顺序打印出来*/printf(-%d,pathij);if(i%dnn,b);printf(%d-%d 的最短路径是: %d 米。 nn,a,b,shortestab); /*display*/ int shortdistance()/* 要查找的两景点的最短路径 */int i,j;printf( 请输入要查询的两个景点的数字编号 (1-16) 中间用空格间隔开。 n); scanf(%d %d,&i,&j);if(iN|iN|j16 中间用空格间隔开。 scanf(%d %d,&i,&j);elsefloyd(

24、);display(i,j);return 1; fflush(stdin);/*shortestdistance*/long int AMaxSize+1MaxSize+1;/* 迪杰斯特拉算法 */long int DMaxSize+1;long int SMaxSize+1,PMaxSize+1;int source,sink;int step = 1;int top = -1;int StackMaxSize+1;void input()int i,j;printf(n 请输入起始节点 :);scanf(%d,&source);printf(n 请输入结束节点 :);scanf(%d,

25、&sink);for ( i = 1; i = MaxSize )printf( 没有路径存在 !n);exit(1);elseStack+top = value;int Pop()if ( top 0 )printf( 没有路径存在 !n);exit(1);return Stacktop-;int minD()int i,t=0;long int minimum = Infinite;for ( i=1;i=N;i+ )if ( (Si = NOTVISITED) & Di ,MGr.length Pnode node); printf(V%d,node);printf(n);printf(

26、n %d-%d 的最短路径是: %ldn,source,sink,Dsink); printf(n);void distance()int t,I;input();for ( step =2;step =N; step+ )t = minD();St = VISITED;for ( I=1; I = N; I+ )if ( (SI = NOTVISITED) & (Dt+MGr.lengthtI = DI) )DI = Dt + MGr.lengthtI;PI = t; output_path();void map()n);printf(FDKs 手办printf(1printf(1print

27、f(1i1printf(1i1文printf(体育场体printf(1 11中printf(1心printf(11 1printf(1printf(1printf(1printf(1i1printf(流体实验室printf(10KX一III IIIII1II 餐厅 II 11IIIIIII i1 II I篮球场III n);XI n);I i_ I n);II 学 II n);II 生 II n);II 公 II n);II 寓 II n);I 1_ I n);i_iII n);I 怡 III n);海n);湖n);I 畔 II i_i I n);1_1I I 机 II n);n);printf(I12 X1printf(1 11printf(1 11printf(1 11printf(1 11printf(1 11printf(Ii IiiIprintf(I I 工 III教I 14Xprintf(II大IX 13学1printf(I I 高 III楼II

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论