校园导航系统的两个代码.doc

上传人:jian****018 文档编号:9356749 上传时间:2020-04-05 格式:DOC 页数:9 大小:27KB
返回 下载 相关 举报
校园导航系统的两个代码.doc_第1页
第1页 / 共9页
校园导航系统的两个代码.doc_第2页
第2页 / 共9页
校园导航系统的两个代码.doc_第3页
第3页 / 共9页
点击查看更多>>
资源描述
#1 数据结构实验之校园导游咨询#include#include#include#include#include#includestdio.h#define null 0#define num20#define maxdist 10000typedefstructchar datanum;int edgesnumnum;graph;void dijkstra(graph g,int n,int i,int dnum,int pnum)int snum;int mindist,dist;int j,k,u;for(j=0;jn;j+)dj=g.edgesij; sj=0; if(djmaxdist)&(dj!=0) pj=i; else pj=-1;si=1;for(j=0;jn-1;j+)mindist=maxdist;u=i;for(k=0;kn;k+)if(sk=0)&(dkmindist) u=k; mindist=dk; su=1; for(k=0;kn;k+) if(sk=0) dist=du+g.edgesuk; if(distdk) dk=dist; pk=u; void opdijk(int v0,int n,int d,int p)int i,pre;for(i=0;in;i+)if(i!=v0) printf(n%d,i); pre=pi; while(pre!=-1) printf(-%d,pre);/*/ pre=ppre; if(di=maxdist) printf(-%d,v0); printf(tshortestway:%d,di); void floyd(graph g,int n,int dnum,int pnum)int i,j,k;for(i=0;in;i+)for(j=0;jn;j+) dij=g.edgesij; if(dijmaxdist)&(dij!=0) pij=j; else pij=-1; for(i=0;in;i+) dii=0; for(k=0;kn;k+) for(i=0;in;i+) for(j=0;jdik+dkj) dij=dik+dkj ; pij=pik; void opfloy(int n,int dnum,int pathnum)int i,j,next;for(i=0;in;i+)printf(nnyuandian is v%d:,i); for(j=0;j%d,next); next=pathnextj; if(dij=maxdist) printf(-%d,j);/*/ printf(t%d,dij); void main()graph g;int i,j,k,n;int dnum,pnum,sdnumnum,spnumnum;/clrscr();n=11;g.data0=a;g.data1=b;g.data2=c;g.data3=d;g.data4=e;g.data5=f;g.data6=g;g.data7=h;g.data8=i;g.data9=j;g.data10=k;for(i=0;in;i+)for(j=0;jn;j+) g.edgesij=maxdist;for(j=0;jn;j+) g.edgesij=0;g.edges02=30;g.edges05=40;g.edges01=20;g.edges15=60;g.edges14=40;g.edges16=30;g.edges23=35;g.edges27=40;g.edges310=20;g.edges38=15;g.edges49=30;g.edges48=35;g.edges410=10;g.edges510=10;g.edges58=45;g.edges52=20;g.edges60=70;g.edges70=50;g.edges89=20;g.edges91=55;g.edges100=125;/clrscr();printf(t -WELCOME TOU USE GUIDE!-n);printf(t*n);printf(t* *n);printf(t*tINFOMATION-itVISIT-vtt*nt*t ABOUT ME-atQUIT-qtt*n);printf(t*ttttt*nt*ttttt*nt*ttttt*nt*ttttt*nt*ttttt*n);printf(t*n);printf(t*PLEASE ENTER AN ORDER:i? v? m? q?t*n);printf(t*CLEARTHE SCREEN:ctt3t*n);printf(t*n);do/*gets(t);*/switch(getchar()casea:printf(NAME:* CLASS:02computer(3)n);printf(PRIVATE EMAIL:devo800126.comn); break;/*caseg:FILE *tp;*/ /* break;*/casei: FILE*tp; charch; if(tp=fopen(d:info.txt,rt)=null) printf(ncant open!); getchar(); exit(1); ch=fgetc(tp); while(ch!=EOF) putchar(ch); ch=fgetc(tp); fclose(tp); break; casec:break; casev:do printf(nINPUT JIE DIAN(0-10):n); scanf(%d,&i); dijkstra(g,n,i,d,p); printf(nnyuandian is v%d:,i); opdijk(i,n,d,p); while(1); break; default: exit(1); while(getchar(); getchar();*-校园导游系统-*/ #include #include #define INT_MAX 1000000 #define n 10 int costnn;/边的值 int shortestnn;/两点间的最短距离 int pathnn;/经过的景点的; void floyed(); int display(int i,int j); void introduce()/introduce of the palce int a; printf(Place 1:凯旋门n); printf(Place 2:图书馆n); printf(Place 3:行政楼n); printf(Place 4:飞翔门n); printf(Place 5:大广场n); printf(Place 6:ABC教学楼n); printf(Place 7:体育场n); printf(Place 8:月亮湾n); printf(Place 9:English Conern); printf(Place 10:树人广场n); do printf(您想查询哪个景点的详细信息?请输入景点编号:); scanf(%d,&a); getchar(); switch(a) case 1: printf(Place 1 introduce:凯旋门n凯旋门-学校北大门,风景秀丽。n学校重要的交通枢纽。nn);break; case 2: printf(Place 2 introduce:图书馆n图书馆-学校信息资源中心,建筑格式新异下沙最大的图书馆n适合学生自习学习。nn);break; case 3: printf(Place 3 introduce:行政楼n行政楼-学校行政中心,是学校标志性的建筑。n在楼顶上可以俯瞰学校全景。nn);break; case 4: printf(Place 4 introduce:飞翔门n飞翔门-学校另一个标志性建筑,象雄鹰展翅。nn);break; case 5: printf(Place 5 introduce:大广场n大广场-学校最大的广场,建筑风格意外鲜明,nn);break; case 6: printf(Place 6 introduce:ABC教学楼n-学校唯一三幢连者着的教学楼n建筑风格独特很方便学生。nn);break; case 7: printf(Place 7 introduce:体育场n-学生运动的好去处,设施齐全。n风景独特。nn);break; case 8: printf(Place 8 introduce:月亮湾n月亮湾-休息的好去处n视野开广,风景意外啊!nn);break; case 9: printf(Place 9 introduce:English Conern学习英语的好去处nnn);break; case 10: printf(Place 10 introduce:树人广场n树人广场-休息学习的好去处也是观光的好地方nn);break; default: printf(Error InputnNo Place!nn); break; while(a=11); void shortestdistance() /要查找的两景点的距离 int i,j; printf(请输入要查询的两个景点的编号(用,间隔):n); scanf(%d,%d,&i,&j); while(in|in|j0) printf(Error(错误)!Error Code:%d,%dnnn,i,j); printf(请输入要查询的两个景点的编号(用,间隔):n); scanf(%d,%d,&i,&j); floyed(); display(i,j); void floyed()/用floyed算法求两个景点的最短路径 int i,j,k; for(i=1;i=n;i+) for(j=1;j=n;j+) shortestij=costij; pathij=0; for(k=1;k=n;k+) for(i=1;i=n;i+) for(j=1;j(shortestik+shortestkj) /用path记录从i到j的最短路径上点j的前驱景点的序号; shortestij=shortestik+shortestkj; pathij=k;pathji=k; /* floyed*/ int display(int i,int j)/打印两个景点的路径及最短距离 int a,b;a=i;b=j; printf(您要查询的两景点间最短路径是:n); if (shortestij!=INT_MAX) if(ij) printf(Palce%d,b); while(pathij!=0)/把i到j的路径上所有经过的景点按逆序打印出来 printf(-Palce%d,pathij); if(ij) j=pathij; else i=pathji; printf(Palce%d)最短距离是:%5d米,a,b,shortestab); else printf(Palce%d,a); while(pathij!=0)/把i到j的路径上所有经过的景点按顺序打印出来 printf(-Palce%d,pathij); if(iPalce%d,b); printf(n); printf(Palce%d-Palce%d)最短距离是:%5d米,a,b,shortestab); else printf(Error!There is no way!); printf(nnnn); return 1; /*display*/ void main() int i,j; char k; for(i=0;i=n;i+) for(j=0;j=n;j+) costij=INT_MAX; cost12=36; cost21=36; cost15=36; cost51=36; cost23=24; cost32=24; cost24=12; cost42=12; cost310=19; cost103=19; cost45=12; cost54=12; cost59=34; cost95=34; cost67=24; cost76=24; cost68=25; cost86=25; cost610=20; cost106=20; cost63=17; cost36=17; cost79=32; cost97=32; cost87=28; cost78=28; cost11=cost22=cost33=cost44=cost55=0; cost66=cost77=cost88=cost99=cost1010=0; while(1) printf(-欢迎使用校园导游查询系统!-n); printf(1.景点信息查询请按s键n); printf(2.景点最短路径查询请按b键n); printf(3.退出系统请按e键n); printf(校园平面图如下:n); printf( 5-9-7-8 n); printf( | | / n); printf( | 4 | / n); printf( | | / n); printf( 1-2-3-6 n); printf( | / n); printf( | / n); printf( 10 nn); printf(请选择服务:);scanf(n%c,&k); switch(k) case s:printf(进入景点信息查询:n);introduce();break; case b: printf(进入最短路径查询:n);shortestdistance();break; case e:exit(0); default:printf(Error Inputn请输入字母s或b或e.nn);break;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


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

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


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