資源描述:
《中南大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)學(xué)院: 信息科學(xué)與工程學(xué)院專業(yè)班級(jí): 指導(dǎo)老師: 學(xué)號(hào): 姓名: 33目錄校園導(dǎo)游咨詢系統(tǒng)21.1.題目與要求21.2.設(shè)計(jì)與實(shí)現(xiàn)2基本思路2主要數(shù)據(jù)結(jié)構(gòu)3程序的算法和主要流程4程序?qū)崿F(xiàn)過程中的主要難點(diǎn)和解決方法51.3.實(shí)驗(yàn)結(jié)果及分析6實(shí)驗(yàn)的準(zhǔn)備6實(shí)驗(yàn)結(jié)果及分析81.4.總結(jié)9簡單的職工管理系統(tǒng)102.1.題目與要求102.2.設(shè)計(jì)與實(shí)現(xiàn)10基本思路10主要數(shù)據(jù)結(jié)構(gòu)11程序的算法和主要流程11程序?qū)崿F(xiàn)過程中的主要難點(diǎn)和解決方法132.3實(shí)驗(yàn)結(jié)果及分析15實(shí)驗(yàn)的準(zhǔn)備15實(shí)驗(yàn)結(jié)果及分析162.4總結(jié)19附件:2033校園導(dǎo)游咨詢系統(tǒng)1.1.
2、題目與要求1)自己畫一張簡易的校園平面圖,有三個(gè)校區(qū)和三所附屬醫(yī)院,在這些校區(qū)和醫(yī)院內(nèi)選10個(gè)以上的建筑物、辦公室、宿舍等地名。以圖中頂點(diǎn)表示校園內(nèi)各地名,存放地名名稱、代號(hào)、簡介等信息;以邊表示路徑,存放路徑長度等有關(guān)信息。2)為來訪客人提供圖中任意地名相關(guān)信息的查詢。3)為來訪客人提供任意地名的問路查詢,即查詢?nèi)我鈨蓚€(gè)地名之間的一條最短路徑。實(shí)現(xiàn)提示:一般情況下,校園的道路是雙向通行的,可設(shè)計(jì)校園平面圖是一個(gè)無向網(wǎng)。頂點(diǎn)和邊均含有相關(guān)信息。1.2.設(shè)計(jì)與實(shí)現(xiàn)基本思路校園導(dǎo)游拓?fù)鋱D33是由景點(diǎn)和景點(diǎn)之間的路徑組成的,所以這完全可以用數(shù)據(jù)結(jié)構(gòu)中的圖來模擬。用圖的
3、結(jié)點(diǎn)代表景點(diǎn),用圖的邊代表景點(diǎn)之間的路徑。所以首先應(yīng)設(shè)計(jì)一個(gè)圖類。結(jié)點(diǎn)值代表景點(diǎn)信息,邊的權(quán)值代表景點(diǎn)間的距離。結(jié)點(diǎn)值及邊的權(quán)值用順序表存儲(chǔ),所以需要設(shè)計(jì)一個(gè)順序表類。本系統(tǒng)需要查詢景點(diǎn)信息和求一個(gè)景點(diǎn)到另一個(gè)景點(diǎn)的最短路徑長度及路線,為方便操作,所以給每個(gè)景點(diǎn)一個(gè)代碼,用結(jié)構(gòu)體類型實(shí)現(xiàn)。計(jì)算路徑長度和最短路線時(shí)可用弗洛伊德(Floyd)算法實(shí)現(xiàn)。最后用switch選擇語句選擇執(zhí)行瀏覽景點(diǎn)信息或查詢最短路徑。主要數(shù)據(jù)結(jié)構(gòu)鏈接矩陣,相關(guān)代碼typedefstructarc{intadj;//路徑長度}arc,adjmatrix[40][40];//建一個(gè)結(jié)構(gòu)體數(shù)組
4、保存路徑長度typedefstructscenery//存儲(chǔ)景點(diǎn)信息{intnum;//景點(diǎn)編號(hào)charname[20];//景點(diǎn)名稱charintroduction[200];//景點(diǎn)介紹}scenery;typedefstructgraph{sceneryvexs[40];//點(diǎn)adjmatrixarcs;//邊intvexnum,arcnum;//點(diǎn)與邊的個(gè)數(shù)}graph;graphb;33程序的算法和主要流程用弗洛伊德算法實(shí)現(xiàn)最短路徑:voidfloyd(graph*G)//求有向網(wǎng)G中各對頂點(diǎn)v和w之間的最短路徑p[v][w]{intv,u,i,w,k
5、,j,flag=1,//及其帶權(quán)長度D[v][w],若p[v][w][u]為TRUEp[10][10][10],D[10][10];//則u是從v到w當(dāng)前求得最短路徑上的點(diǎn)for(v=0;vvexnum;v++)for(w=0;wvexnum;w++){D[v][w]=G->arcs[v][w].adj;//初始路徑賦值for(u=0;uvexnum;u++)p[v][w][u]=0;if(D[v][w]<9999)//從v到w有直接路徑{p[v][w][v]=1;p[v][w][w]=1;}}for(u=0;uvexnum;u+
6、+)for(v=0;vvexnum;v++)for(w=0;wvexnum;w++)if(D[v][u]+D[u][w]vexnum;i++)p[v][w][i]=p[v][u][i]
7、
8、p[u][w][i];}主要流程:intmain(){b=initgraph();//初始化while(1){Menu();//界面intchoice;//選擇功能cin>>choice;switch(choice)33{case1:查看校園景點(diǎn)showall(&b);
9、system("pause");system("cls");break;case2:查看景點(diǎn)信息showselect(&b);system("pause");system("cls");break;case3:查找最短旅游路線floyd(&b);system("pause");system("cls");break;case4:退出系統(tǒng)exit(1);break;default:cout<<"請?jiān)?-4中選擇操作!"<10、計(jì)的主要難點(diǎn)就是在對結(jié)構(gòu)