




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
_#include #include #include #include#define MaxSize 100 #define VISITED 1 #define NOTVISITED 0 #define Infinite 1073741823 #define MaxViewNum 50 /*景点个数最大50*/#define MaxRoad 1000 /*定义路径为无穷大*/#define N 16 /*目前景点个数*/typedef struct char name30; /*景点名称*/ char number10; /*景点代号*/ char introduce200; /*景点介绍*/Elemtype;typedef struct int num; /*景点编号*/ Elemtype date; /*景点信息*/View; /*定义景点*/typedef struct View viewMaxViewNum; /*存放顶点的一维数组,数组第零单元没有用上*/ unsigned int lengthMaxViewNumMaxViewNum; /*存放路径长度*/ int m,n;MGraph;MGraph MGr; /*全局变量,定义MGr为MGraph类型*/int shortestMaxViewNumMaxViewNum; /*定义全局变量存贮最小路径*/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); strcpy(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,兰州理工大学,教职工家属院。); 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.view7.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; strcpy(MG,怡情园); strcpy(MGr.view9.date.number,009); strcpy(MGroduce,学校新修建的花园,景色优美,适合同学们晨读); MGr.view10.num=10; strcpy(MG,体育场); strcpy(MGr.view10.date.number,010); strcpy(MGroduce,绿茵地、活动中心。篮球场、足球场、网球场依次,丰富课余生活。); MGr.view11.num=11; strcpy(MG,国际交流中心); strcpy(MGr.view11.date.number,011); strcpy(MGroduce,外国留学生、外籍教师上课活动场所。); MGr.view12.num=12; strcpy(MG,流体实验室); strcpy(MGr.view12.date.number,012); strcpy(MGroduce,兰州理工大学流体实验室,同样也是理学院研究生实验室); MGr.view13.num=13; strcpy(MG,工大高层); strcpy(MGr.view13.date.number,013); strcpy(MGroduce,新建工大高层,是各个院办公室所在地,同样也是各个院行政楼。); MGr.view14.num=14; strcpy(MG,教学楼); strcpy(MGr.view14.date.number,014); strcpy(MGroduce,外语院,设计院等学生日常上课的地方。); MGr.view15.num=15; strcpy(MG,附属中学); strcpy(MGr.view15.date.number,015); strcpy(MGroduce,兰州理工大学附属中学。); MGr.view16.num=16; strcpy(MG,教学北楼); strcpy(MGr.view16.date.number,016); strcpy(MGroduce,外国留学生日常上课的地方。); for(i=1;i=N;i+) for(j=1;j=N;j+) MGr.lengthij=MaxRoad; for(i=1;i=N;i+) shortestij=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=50; 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.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 introduce() int m; printf(请输入查询景点编号:n); scanf(%d,&m); fflush(stdin); switch(m) case 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.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,MG); 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,MGroduce); break; case 8: printf(景点编号:%st,MGr.view8.date.number); printf(景点名称:%sn,MG); printf(景点简介:%sn,MGroduce); break;case 9: printf(景点编号:%st,MGr.view9.date.number); printf(景点名称:%sn,MG); printf(景点简介:%sn,MGroduce); break; case 10: 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(景点编号:%st,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); 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,MG); printf(景点简介:%sn,MGroduce); break; default: printf(输入序号错误。n); break; printf(n);void floyd() /*佛洛依德算法*/ int i,j,k; for(i=1;i=N;i+) for(j=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+shortestkj; pathij=k; pathji=k; /*记录经过的路径*/end_if /end_for void 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;else i=pathji; printf(%d的最短路径是: %d 米。nn,a,b,shortestab);else printf(%d,a); 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)中间用空格间隔开。n);scanf(%d %d,&i,&j); else floyd();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,&sink); for ( i = 1; i = MaxSize ) printf(没有路径存在!n); exit(1); else Stack+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(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() printf(n);printf(FDKs 手办 n);printf( 10 n);printf( n);printf( 学n);printf( 文 生n);printf( 体育场 体 公n);printf( 中 餐厅 寓n);printf( 心 n);printf( n);printf( 怡 n);printf( 海 n);printf( 湖 n);printf( 篮球场 畔 n);printf( 流体实验室 机n);printf(11械n);printf( 12 基n);printf( 怡 情 园 地n);printf( n);printf( n);pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 搬迁后工作管理制度
- 收发文工作管理制度
- 救援队会员管理制度
- 教工舞蹈室管理制度
- 教科书回收管理制度
- 数码印刷店管理制度
- 景区项目办管理制度
- 木工厂计件管理制度
- 未在岗人员管理制度
- 机关勤杂员管理制度
- 支原体感染后护理查房课件
- 建行反洗钱应急预案
- 路灯养护投标方案(技术方案)
- 国家开放大学电大本科《管理英语4》期末试题题库及答案(试卷号:1389)
- 询价投标文件(范本)
- 去小学化家长培训讲座课件
- 单光纤光镊数值仿真和光阱力计算的中期报告
- 一份完整的卤菜店创业计划书 工作计划
- 手术物品清点手术室护理实践指南课件
- 中国铝业股份有限公司偃师市东沟铝土矿矿山地质环境保护与土地复垦方案
- 2023-2024学年河南省濮阳市小学语文五年级期末通关考试题附参考答案和详细解析
评论
0/150
提交评论