數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁(yè))
《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁(yè))》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)故宮導(dǎo)游(最短路徑)(共34頁(yè))(34頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 數(shù)學(xué)與計(jì)算機(jī)學(xué)院 課程設(shè)計(jì)說(shuō)明書(shū) 課 程 名 稱(chēng): 數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì) 課 程 代 碼: 題 目: 故宮導(dǎo)游咨詢(xún) 年級(jí)/專(zhuān)業(yè)/班: 學(xué) 生 姓 名: 學(xué) 號(hào): 開(kāi) 始 時(shí) 間: 2011 年 12 月 9 日 完 成 時(shí) 間: 2011 年 1
2、2 月 23 日 課程設(shè)計(jì)成績(jī): 學(xué)習(xí)態(tài)度及平時(shí)成績(jī)(30) 技術(shù)水平與實(shí)際能力(20) 創(chuàng)新(5) 說(shuō)明書(shū)(計(jì)算書(shū)、圖紙、分析報(bào)告)撰寫(xiě)質(zhì)量(45) 總 分(100) 指導(dǎo)教師簽名: 年 月 日 專(zhuān)心---專(zhuān)注---專(zhuān)業(yè) 目錄 摘 要 隨著計(jì)算機(jī)的普及,涉及計(jì)算機(jī)相關(guān)的科目也越來(lái)越普遍,其中數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專(zhuān)業(yè)重要的專(zhuān)業(yè)
3、基礎(chǔ)課程與核心課程之一,為適應(yīng)我國(guó)計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展和應(yīng)用,學(xué)好數(shù)據(jù)結(jié)構(gòu)非常必要,然而要掌握數(shù)據(jù)結(jié)構(gòu)的知識(shí)非常難,所以對(duì)“數(shù)據(jù)結(jié)構(gòu)”的課程設(shè)計(jì)比不可少。本說(shuō)明書(shū)是對(duì)“故宮導(dǎo)游咨詢(xún)”課程設(shè)計(jì)的說(shuō)明。 首先是對(duì)需求分析的簡(jiǎn)要闡述,說(shuō)明系統(tǒng)要完成的任務(wù)和相應(yīng)的分析,并給出測(cè)試數(shù)據(jù)。其次是概要設(shè)計(jì),說(shuō)明所有抽象數(shù)據(jù)類(lèi)型的定義、主程序的流程以及各程序模塊之間的層次關(guān)系,以及ADT描述。然后是詳細(xì)設(shè)計(jì),描述實(shí)現(xiàn)概要設(shè)計(jì)中定義的基本功操作和所有數(shù)據(jù)類(lèi)型,以及函數(shù)的功能及代碼實(shí)現(xiàn)。再次是對(duì)系統(tǒng)的調(diào)試分析說(shuō)明,以及遇到的問(wèn)題和解決問(wèn)題的方法。然后是用戶(hù)使用說(shuō)明書(shū)的闡述,然后是測(cè)試的數(shù)據(jù)和結(jié)果的分析,最后是對(duì)
4、本次課程設(shè)計(jì)的結(jié)論。 關(guān)鍵詞:計(jì)算機(jī)、課程設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu) 引 言 數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專(zhuān)業(yè)重要的專(zhuān)業(yè)基礎(chǔ)課程與核心課程之一,在計(jì)算機(jī)領(lǐng)域應(yīng)用廣泛,計(jì)算機(jī)離不開(kāi)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)為了能使我們掌握所學(xué)習(xí)的知識(shí)并有應(yīng)用到實(shí)際的設(shè)計(jì)中的能力,對(duì)于掌握這門(mén)課程的學(xué)習(xí)方法有極大的意義。本課程設(shè)計(jì)的題目為“故宮導(dǎo)游咨詢(xún)”,完成相應(yīng)的錄入信息、查找、修改、刪除、計(jì)算功能等等。本課程設(shè)計(jì)采用的編程環(huán)境為Microsoft Visual Stdio 6.0。 1、需求分析 游客游覽某一景點(diǎn)時(shí),對(duì)景點(diǎn)都不熟悉。特別是對(duì)于象故宮這樣
5、的大型景點(diǎn),如果隨便參觀的話(huà),可能會(huì)錯(cuò)過(guò)一些景點(diǎn),也可能走許多冤枉路。為了方便游客,需要一套軟件系統(tǒng),能夠?yàn)橛慰吞峁翰樵?xún)景點(diǎn)信息,給出到某個(gè)景點(diǎn)的最佳路線(xiàn),給出到所有景點(diǎn)的最佳路線(xiàn)。為系統(tǒng)管理員提供以下功能:添加和撤銷(xiāo)景點(diǎn),添加和撤銷(xiāo)旅游線(xiàn)路,修改景點(diǎn)信息。 1.1任務(wù)與分析 此系統(tǒng)要完成對(duì)故宮景點(diǎn)信息的儲(chǔ)存、修改、刪除、添加和查詢(xún)最短路線(xiàn),因?yàn)樯婕暗阶疃搪肪€(xiàn)問(wèn)題,所以數(shù)據(jù)結(jié)構(gòu)優(yōu)先考慮采用圖的鄰接矩陣儲(chǔ)存結(jié)構(gòu), 景點(diǎn)和旅游線(xiàn)路可以構(gòu)成圖狀結(jié)構(gòu),景點(diǎn)作為圖的頂點(diǎn),旅游線(xiàn)路作為圖的邊,邊上的權(quán)值作為景點(diǎn)間的距離。此結(jié)構(gòu)便于完成任務(wù)的各種操作。 1.2測(cè)試數(shù)據(jù)
6、 圖1 測(cè)試數(shù)據(jù)
2 概要設(shè)計(jì)
2.1 ADT描述
ADT Graph{
數(shù)據(jù)對(duì)象:D{故宮景點(diǎn)和路徑}
數(shù)據(jù)關(guān)系:R={VR}
VR={
7、點(diǎn)的最短路徑。 void shortpath2();//查詢(xún)到所有景點(diǎn)的最短路徑。 Void main();//主函數(shù)。 } 2.2程序模塊結(jié)構(gòu) 圖2 程序模塊結(jié)構(gòu) 2.2.1 結(jié)構(gòu)體定義 景點(diǎn)的結(jié)構(gòu)體定義如下: struct ding { string dingdian; string xinxi; } 2.3 各功能模塊 錄入模塊:void Creat()錄入景點(diǎn)和路徑的信息,并儲(chǔ)存。 查詢(xún)景點(diǎn)模塊:void select()查找某景點(diǎn)的信息。 修改模塊:void xiuga
8、i()修改某景點(diǎn)的信息。 插入模塊:void insert()插入新的景點(diǎn)和路徑信息。 刪除模塊:void delet()刪除景點(diǎn)和路徑信息。 查詢(xún)到某景點(diǎn)最佳路徑:void shortpath1():查詢(xún)到某景點(diǎn)的最短路徑。 查詢(xún)到查詢(xún)到所有景點(diǎn)的最短路徑:void shortpath2()查詢(xún)到所有景點(diǎn)的最短路徑 3 詳細(xì)設(shè)計(jì) 3.1結(jié)構(gòu)體定義 景點(diǎn)的結(jié)構(gòu)體定義如下: struct ding { string dingdian; string xinxi; } 3.2 初始化 構(gòu)造函數(shù)初始化變量: Graph::Graph() {
9、 for(int i=0;i 10、 int i,vi,vj,w,x,y;
cout<<"輸入添加路徑的條數(shù)和景點(diǎn)數(shù):";
cin>>x>>y;
cout<<"輸入添加景點(diǎn)名稱(chēng):"< 11、<"輸入添加景點(diǎn)到景點(diǎn)的路徑的長(zhǎng)度(vi,vj,length):";
cin>>vi>>vj>>w;
Edge[vi-1][vj-1]=w;
Edge[vj-1][vi-1]=w;
cout<<"添加成功!"< 12、;
for(i=0;i 13、d Graph::xiugai()
{
string a,c;
int b=0;
cout<<"請(qǐng)輸入要修改的景點(diǎn):";
cin>>a;
for(int i=0;i 14、操作
void Graph::select()
{
string a;
int b=0;
cout<<"請(qǐng)輸入要查詢(xún)的景點(diǎn):";
cin>>a;
for(int i=0;i 15、out<<"請(qǐng)你輸入要撤銷(xiāo)景點(diǎn)數(shù)和路線(xiàn)條數(shù):";
cin>>k>>z;
for(int j=0;j 16、i 17、 int v,v1;
string b,c;
cout<<"輸入你所在的景點(diǎn):";
cin>>b;
cout<<"輸入你所要去的景點(diǎn):";
cin>>c;
for(int i=0;i 18、 if(i!=v&&dist[i] 19、)
if(!s[w]&&Edge[u][w] 20、rtices[i].dingdian<<"的";
cout<<"最佳路徑長(zhǎng)度為:";
cout< 21、
for(int n=j;n>=1;n--)
{
cout< 22、dian==b)
v=i;
for( i=0;i 23、 24、weight)
{
string c[10];
int j=0;
int k=i;
cout<<"從"<
25、gdian;
k=path[k];
}
while(k!=v);
j++;
c[j]=Vertices[k].dingdian;
for(int n=j;n>=1;n--)
{
cout< 26、 string b;
cout<<"輸入你所在的景點(diǎn):";
cin>>b;
for(int i=0;i 27、v]=0;
for(i=0;i 28、Edge[u][w];
path[w]=u;
}
}
for( i=0;i 29、t[i]/100<<"分鐘"<<" ";
cout<<"路徑為:";
do{
j++;
c[j]=Vertices[k].dingdian;
k=path[k];
}
while(k!=v);
j++;
c[j]=Vertices[k].dingdian;
for(int n=j;n>=1;n--)
{
cout< 30、t< 31、理員 ******"< 32、
if(d==123)
{
for(;;)
{
system("cls");
cout<<"********************************"< 33、* C、插入景點(diǎn)和路徑 ***"< 34、ause");
}
if(b==B)
{
a.xiugai();
system("pause");
}
if(b==C)
{
a.insert();
system("pause");
}
if(b==D)
{
a.delet();
system("pause");
}
if(b==E)
break;
}
}
else
{
cout<<"密碼錯(cuò)誤!" 35、< 36、 ***"< 37、 a.select();
system("pause");
}
if(b==B)
{
a.shortpath1();
system("pause");
}
if(b==C)
{
a.shortpath2();
system("pause");
}
if(b==D)
break;
}
}
if(c==C)
break;
}
}
4 調(diào)試分析
4.1測(cè)試數(shù)據(jù)
測(cè)試數(shù)據(jù)見(jiàn)圖1.
4.2調(diào)試問(wèn)題
在調(diào)試 38、過(guò)程中遇到輸出路徑算法有錯(cuò)誤,當(dāng)刪除一條路徑時(shí)時(shí)不能正確輸出相應(yīng)路徑,然后對(duì)輸出路徑的條件進(jìn)行改進(jìn),增加了條件,測(cè)試成功。
4.3算法時(shí)間復(fù)雜度
錄入:時(shí)間復(fù)雜度為O(n);
查詢(xún)景點(diǎn)信息: 時(shí)間復(fù)雜度為O(n);
修改景點(diǎn)信息: 時(shí)間復(fù)雜度為O(n);
插入景點(diǎn)和路徑: 當(dāng)插入的景點(diǎn)和路徑為x,y時(shí),若x>=y時(shí)間復(fù)雜度為O(x)反之為O(y);
刪除景點(diǎn)和路徑: 當(dāng)刪除的景點(diǎn)和路徑為x,y時(shí),若x>=y時(shí)間復(fù)雜度為O(x)反之為O(y);
查詢(xún)到某景點(diǎn)最佳路徑;此算法為迪杰斯特拉算法時(shí)間復(fù)雜度為O(n*n);
查詢(xún)到所有景點(diǎn)的最短路徑: 此算法為迪杰斯特拉算法時(shí)間復(fù)雜度為 39、O(n*n);
4.4經(jīng)驗(yàn)和體會(huì)
在本次課程設(shè)計(jì)中主要是對(duì)圖的數(shù)據(jù)結(jié)構(gòu)操作,所有剛開(kāi)始對(duì)知識(shí)不是很熟悉操作起來(lái)有一定難度,容易在程序的關(guān)鍵地方但經(jīng)過(guò)翻閱教材能較好的解決問(wèn)題。
5用戶(hù)使用說(shuō)明
本系統(tǒng)是關(guān)于故宮的管理系統(tǒng)分為兩類(lèi)用戶(hù),管理員和游客,由于管理員可以對(duì)數(shù)據(jù)進(jìn)行修改,為了保護(hù)數(shù)據(jù),所以管理員登陸需要密碼而游客不需要密碼,管理員有添加景點(diǎn)和路徑、刪除景點(diǎn)和路徑、修改景點(diǎn)信息權(quán)限,游客能查詢(xún)景點(diǎn)信息、查找到某一景點(diǎn)的最佳路徑和到所有景點(diǎn)的最佳路徑。
6 測(cè)試結(jié)果
6.1錄入信息
圖3 錄入信息界面
40、 圖4 錄入信息界面
6.2查詢(xún)景點(diǎn)模塊
圖5 查詢(xún)景點(diǎn)信息界面
6.3修改模塊
圖6 修改景點(diǎn)信息界面
6.4插入模塊
圖7 添加景點(diǎn)信息界面
6.5刪除模塊
圖8 刪除景點(diǎn)信息界面
6.6查詢(xún)到某景點(diǎn)最佳路徑
圖9 查詢(xún)到某景點(diǎn)最佳路徑界面
6.7查詢(xún)到所有景點(diǎn)的最短路徑。
圖10 查詢(xún)到所有景點(diǎn)最 41、佳路徑界面
結(jié) 論
本次課程設(shè)計(jì)“故宮導(dǎo)游咨詢(xún)”按照任務(wù)書(shū)相應(yīng)的要求成功的完成了任務(wù),由于本課程設(shè)計(jì)涉及景點(diǎn)和路徑,采用圖的儲(chǔ)存結(jié)構(gòu)和算法比較方便處理數(shù)據(jù)的儲(chǔ)存、查詢(xún)、刪除等操作。但圖的操作比較難,比如求某景點(diǎn)到所有景點(diǎn)的最佳路徑問(wèn)題,需要使用到迪杰斯特拉算法實(shí)現(xiàn)。
致 謝
在本次課程設(shè)計(jì)過(guò)程中,首先感謝輔導(dǎo)老師周立章,在數(shù)據(jù)結(jié)構(gòu)課堂上為課程設(shè)計(jì)需要的前期知識(shí)打下了基礎(chǔ),在課程設(shè)計(jì)過(guò)程中抽出休息時(shí) 42、間來(lái)做相應(yīng)的課程設(shè)計(jì)指導(dǎo)。同時(shí)在這次課程設(shè)計(jì)中,也要感謝許多樂(lè)意同學(xué)對(duì)我不懂的地方的指導(dǎo)和耐心講解。
參考文獻(xiàn)
[1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu).清華大學(xué)出版社出版。
[2] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)題集(C語(yǔ)言版) .清華大學(xué)出版社.2003年5月。
[3] 楊秀金,數(shù)據(jù)結(jié)構(gòu)(C++版) .高等教育出版社.2009年4月。
[4] 朱戰(zhàn)立.數(shù)據(jù)結(jié)構(gòu)(C++語(yǔ)言描述)(第二版本).高等出版社出版.2004年4月。
[5] 胡學(xué)鋼.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版) .高等教育出版社.2004年8月。
[6] 楊金秀.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).西安電子科技大學(xué)出版社,2004年8月。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會(huì)全文PPT
- 2025年寒假安全教育班會(huì)全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專(zhuān)題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機(jī)關(guān)工委2024年度年終黨建工作總結(jié)述職匯報(bào)
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專(zhuān)題組織生活會(huì)理論學(xué)習(xí)理論學(xué)習(xí)強(qiáng)黨性凝心聚力建新功
- 2024年XX單位個(gè)人述職述廉報(bào)告
- 一文解讀2025中央經(jīng)濟(jì)工作會(huì)議精神(使社會(huì)信心有效提振經(jīng)濟(jì)明顯回升)
- 2025職業(yè)生涯規(guī)劃報(bào)告自我評(píng)估職業(yè)探索目標(biāo)設(shè)定發(fā)展策略
- 2024年度XX縣縣委書(shū)記個(gè)人述職報(bào)告及2025年工作計(jì)劃
- 寒假計(jì)劃中學(xué)生寒假計(jì)劃安排表(規(guī)劃好寒假的每個(gè)階段)
- 中央經(jīng)濟(jì)工作會(huì)議九大看點(diǎn)學(xué)思想強(qiáng)黨性重實(shí)踐建新功