資源描述:
《論文資料:嵌入式教學樓宇路徑規(guī)劃導航(ouc-srdp)實驗報告》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術(shù)論文-天天文庫。
1、嵌入式教學樓宇路徑規(guī)劃導航(OUC-SRDP)實驗報告一、設計目的通過簡單的嵌入式系統(tǒng)解決廣大師生教學區(qū)“迷路”問題,達到實際服務同學的目的。該系統(tǒng)通過為用戶提供最短路徑計算以及路徑導航服務,使用戶在最短的時間內(nèi)到達所去地點,提供了極大的方便。并且可以使用戶查詢教室日常課程信息。二、設計思路根據(jù)路徑算法,將教室、樓梯等設置成為圖里面的結(jié)點,以此來確定數(shù)據(jù)結(jié)構(gòu)的存儲方式。typedefstructVertexType{intnumber;//教室、樓梯編號char*sight;//教室名稱char*description;//教室
2、描述}然后將鄰接結(jié)點之間的距離存儲進系統(tǒng),用于最短路徑的計算。之后確定設計模塊,分為(1).查詢教室路徑(2).查詢教室信息分別用于求取最短路徑和查詢教室日常課程信息。三、設計代碼#include"string.h"#include"stdio.h"#include"stdlib.h"#include"iostream.h"#defineMax32767#defineNUM17typedefstructArcCell{intadj;//相鄰接的教室之間的路程char*info;}ArcCell;//定義邊的類型typedefst
3、ructVertexType{intnumber;//教室編號char*sight;//教室名稱char*description;//教室描述}VertexType;//定義頂點的類型typedefstruct{VertexTypevex[NUM];//圖中的頂點,即為教室ArcCellarcs[NUM][NUM];//圖中的邊,即為教室間的距離intvexnum,arcnum;//頂點數(shù),邊數(shù)}MGraph;//定義圖的類型MGraphG;//把圖定義為全局變量intP[NUM][NUM];////longintD[NUM];
4、//輔助變量存儲最短路徑長度intx[13]={0};voidCreateUDN(intv,inta);//創(chuàng)建圖的函數(shù)voidpingmu();//屏幕輸出函數(shù)voidintroduce();voidShortestPath(intnum);//最短路徑函數(shù)voidoutput(intsight1,intsight2);//輸出函數(shù)voidPrintMGraph();charMenu();//主菜單voidsearch();;//查詢教室信息charSearchMenu();//查詢子菜單voidHaMiTonian(int)
5、;//哈密爾頓圖的遍歷voidNextValue(int);voiddisplay();//顯示遍歷結(jié)果voidmain()//主函數(shù){intv0,v1;charck;CreateUDN(NUM,11);do{ck=Menu();switch(ck){case'1':introduce();//介紹函數(shù)printf("ttt%-25s",G.vex[0].description);getchar();getchar();break;case'2':system("cls");pingmu();printf(
6、"ttt請選擇起點(1~16):");scanf("%d",&v0);printf("ttt請選擇終點(1~16):");scanf("%d",&v1);ShortestPath(v0);//計算兩個教室之間的最短路徑output(v0,v1);//輸出結(jié)果printf("tttt請按回車鍵繼續(xù)...");getchar();getchar();break;case'3':search();break;case'4':PrintMGraph();printf("tttt請按
7、回車鍵繼續(xù)...");getchar();getchar();break;};}while(ck!='e');}charMenu()//主菜單//{charc;intflag;do{flag=1;system("cls");pingmu();introduce();printf("tt┏━━━━━━━━━━━━━━━━━━━┑");printf("tt┃┃");printf("tt┃1.學校簡介┃");printf("tt┃2.查詢教室路徑┃");printf("tt┃3.查詢教室信息
8、┃");printf("tt┃e.退出┃");printf("tt┃┃");printf("tt┗━━━━━━━━━━━━━━━━━━━┛");printf("tttt請輸入您的選擇:");scanf("%c",&c);if(