校园导游系统源程序.doc

上传人:xin****828 文档编号:6626020 上传时间:2020-03-01 格式:DOC 页数:13 大小:52.50KB
返回 下载 相关 举报
校园导游系统源程序.doc_第1页
第1页 / 共13页
校园导游系统源程序.doc_第2页
第2页 / 共13页
校园导游系统源程序.doc_第3页
第3页 / 共13页
点击查看更多>>
资源描述
#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(MGr.view1.date.name,学校正门); strcpy(MGr.view1.date.number,001); strcpy(MGr.view1.date.introduce,毗邻中心大道,交通便利。); MGr.view2.num=2; strcpy(MGr.view2.date.name,行政楼); strcpy(MGr.view2.date.number,002); strcpy(MGr.view2.date.introduce,学校领导,办公主楼。); MGr.view3.num=3; strcpy(MGr.view3.date.name,科技楼); strcpy(MGr.view3.date.number,003); strcpy(MGr.view3.date.introduce,逸夫科技楼); MGr.view4.num=4; strcpy(MGr.view4.date.name,家属院); strcpy(MGr.view4.date.number,004); strcpy(MGr.view4.date.introduce,兰州理工大学,教职工家属院。); MGr.view5.num=5; strcpy(MGr.view5.date.name,图书馆); strcpy(MGr.view5.date.number,005); strcpy(MGr.view5.date.introduce,历史悠久,文化积淀。供同学安静学习的环境。); MGr.view6.num=6; strcpy(MGr.view6.date.name,机械基地); strcpy(MGr.view6.date.number,006); strcpy(MGr.view6.date.introduce,土木工程学院和机电工程学院,实习实践的地方。); MGr.view7.num=7; strcpy(MGr.view7.date.name,学生公寓); strcpy(MGr.view7.date.number,007); strcpy(MGr.view7.date.introduce,学生宿舍区,本科、研究生,以及教师公寓。); MGr.view8.num=8; strcpy(MGr.view8.date.name,餐厅); strcpy(MGr.view8.date.number,008); strcpy(MGr.view8.date.introduce,清泽、智林、风味三大餐厅,周边开水房等服务场所。); MGr.view9.num=9; strcpy(MGr.view9.date.name,怡情园); strcpy(MGr.view9.date.number,009); strcpy(MGr.view9.date.introduce,学校新修建的花园,景色优美,适合同学们晨读); MGr.view10.num=10; strcpy(MGr.view10.date.name,体育场); strcpy(MGr.view10.date.number,010); strcpy(MGr.view10.date.introduce,绿茵地、活动中心。篮球场、足球场、网球场依次,丰富课余生活。); MGr.view11.num=11; strcpy(MGr.view11.date.name,国际交流中心); strcpy(MGr.view11.date.number,011); strcpy(MGr.view11.date.introduce,外国留学生、外籍教师上课活动场所。); MGr.view12.num=12; strcpy(MGr.view12.date.name,流体实验室); strcpy(MGr.view12.date.number,012); strcpy(MGr.view12.date.introduce,兰州理工大学流体实验室,同样也是理学院研究生实验室); MGr.view13.num=13; strcpy(MGr.view13.date.name,工大高层); strcpy(MGr.view13.date.number,013); strcpy(MGr.view13.date.introduce,新建工大高层,是各个院办公室所在地,同样也是各个院行政楼。); MGr.view14.num=14; strcpy(MGr.view14.date.name,教学楼); strcpy(MGr.view14.date.number,014); strcpy(MGr.view14.date.introduce,外语院,设计院等学生日常上课的地方。); MGr.view15.num=15; strcpy(MGr.view15.date.name,附属中学); strcpy(MGr.view15.date.number,015); strcpy(MGr.view15.date.introduce,兰州理工大学附属中学。); MGr.view16.num=16; strcpy(MGr.view16.date.name,教学北楼); strcpy(MGr.view16.date.number,016); strcpy(MGr.view16.date.introduce,外国留学生日常上课的地方。); 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,MGr.view1.date.name); printf(景点简介:%sn,MGr.view1.date.introduce); break; case 2: printf(景点编号:%st,MGr.view2.date.number); printf(景点名称:%sn,MGr.view2.date.name); printf(景点简介:%sn,MGr.view2.date.introduce); break; case 3: printf(景点编号:%st,MGr.view3.date.number); printf(景点名称:%sn,MGr.view3.date.name); printf(景点简介:%sn,MGr.view3.date.introduce); break; case 4: printf(景点编号:%st,MGr.view4.date.number); printf(景点名称:%sn,MGr.view4.date.name); printf(景点简介:%sn,MGr.view4.date.introduce); break; case 5: printf(景点编号:%st,MGr.view5.date.number); printf(景点名称:%sn,MGr.view5.date.name); printf(景点简介:%sn,MGr.view5.date.introduce); break; case 6: printf(景点编号:%st,MGr.view6.date.number); printf(景点名称:%sn,MGr.view6.date.name); printf(景点简介:%sn,MGr.view6.date.introduce); break; case 7: printf(景点编号:%st,MGr.view7.date.number); printf(景点名称:%sn,MGr.view7.date.name); printf(景点简介:%sn,MGr.view7.date.introduce); break; case 8: printf(景点编号:%st,MGr.view8.date.number); printf(景点名称:%sn,MGr.view8.date.name); printf(景点简介:%sn,MGr.view8.date.introduce); break;case 9: printf(景点编号:%st,MGr.view9.date.number); printf(景点名称:%sn,MGr.view9.date.name); printf(景点简介:%sn,MGr.view9.date.introduce); break; case 10: printf(景点编号:%st,MGr.view10.date.number); printf(景点名称:%sn,MGr.view10.date.name); printf(景点简介:%sn,MGr.view10.date.introduce); break; case 11: printf(景点编号:%st,MGr.view11.date.number); printf(景点名称:%sn,MGr.view11.date.name); printf(景点简介:%sn,MGr.view11.date.introduce); break; case 12: printf(景点编号:%st,MGr.view12.date.number); printf(景点名称:%sn,MGr.view12.date.name); printf(景点简介:%sn,MGr.view12.date.introduce); break; case 13: printf(景点编号:%st,MGr.view13.date.number); printf(景点名称:%sn,MGr.view13.date.name); printf(景点简介:%sn,MGr.view13.date.introduce); break; case 14: printf(景点编号:%st,MGr.view14.date.number); printf(景点名称:%sn,MGr.view14.date.name); printf(景点简介:%sn,MGr.view14.date.introduce); break; case 15: printf(景点编号:%st,MGr.view15.date.number); printf(景点名称:%sn,MGr.view15.date.name); printf(景点简介:%sn,MGr.view15.date.introduce); break; case 16: printf(景点编号:%st,MGr.view16.date.number); printf(景点名称:%sn,MGr.view16.date.name); printf(景点简介:%sn,MGr.view16.date.introduce); 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);printf( n);printf( n);printf( 图n);printf( 工 教14 书n);printf( 大13学 中 心 大 道 馆n);printf( 高 楼 n);printf( 层 n);printf( n);printf( n);printf( n);printf( n);printf(工大绿茵 教 行 政 楼 科n);printf( 学 16 技n);printf( 北 楼n);printf( 15 楼 n);printf( 学校正门 n);printf( 附 中 n);printf( 家属院n);printf(n); printf(n); fflush(stdin);/*map*/int main() char k; init();printf(*n);printf(* *n);printf(* *n);printf(* 欢迎使用校园导游咨询 *n);printf(* *n);printf(* *n);printf(*n); printf(n); while(1) printf(1.景点信息查询请按“1”键;n);printf(2.景点最短路径查询(佛洛依德算法)请按“2”键;n);printf(“3.景点最短路径查询(迪杰斯特拉算法)请按“3”键;n”); printf(4.校内景点地图查询请按“4”键;n); printf(5.退出系统请按“5”键;n);printf(请选择: );scanf(%c,&k);switch(k) case 1:printf(景点介绍查询(请输入1-16)。n); introduce();break;case 2:printf(景点最短路径查询(佛洛依德算法)。); shortdistance();break; case 3:printf(景点最短路径(迪杰斯特拉算法)查询。); distance();break; case 4:printf(景点地图。n); map();break;case 5:exit(0); system(pause);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!