校園導航系統(tǒng)的兩個代碼.doc
《校園導航系統(tǒng)的兩個代碼.doc》由會員分享,可在線閱讀,更多相關《校園導航系統(tǒng)的兩個代碼.doc(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。
#1 數(shù)據(jù)結構實驗之校園導游咨詢#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();*-校園導游系統(tǒng)-*/ #include #include #define INT_MAX 1000000 #define n 10 int costnn;/邊的值 int shortestnn;/兩點間的最短距離 int pathnn;/經(jīng)過的景點的; 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的路徑上所有經(jīng)過的景點按逆序打印出來 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的路徑上所有經(jīng)過的景點按順序打印出來 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(-歡迎使用校園導游查詢系統(tǒng)!-n); printf(1.景點信息查詢請按s鍵n); printf(2.景點最短路徑查詢請按b鍵n); printf(3.退出系統(tǒng)請按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;- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 校園 導航系統(tǒng) 兩個 代碼
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://www.szxfmmzy.com/p-9356749.html