




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第1頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第1頁(yè)。課程設(shè)計(jì)報(bào)告書(shū)課程名稱(chēng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)題目社區(qū)醫(yī)院選址問(wèn)題專(zhuān)業(yè)班級(jí)***************************學(xué)號(hào)****姓名***指導(dǎo)教師****數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第2頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第3頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第3頁(yè)。1設(shè)計(jì)目的:數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)、信息管理專(zhuān)業(yè)的重要的專(zhuān)業(yè)基礎(chǔ)課,是計(jì)算機(jī)系統(tǒng)軟件和應(yīng)用軟件開(kāi)發(fā)的重要理論和技術(shù)。本次課程設(shè)計(jì)內(nèi)容主要用到圖的結(jié)構(gòu)。所以課程設(shè)計(jì)目要求掌握?qǐng)D的理論、圖的鄰接矩陣存儲(chǔ)方式、頂點(diǎn)對(duì)這間的最短路徑算法設(shè)計(jì)、及圖在實(shí)踐中的簡(jiǎn)單應(yīng)用。2設(shè)計(jì)任務(wù):已知有向圖,圖中各頂點(diǎn)代表居民區(qū),有向邊代表交通路線(xiàn)。權(quán)表示路程(公里)。要在居民區(qū)建立一家醫(yī)院。要求各居民區(qū)到醫(yī)院的路徑盡可能短,請(qǐng)?jiān)O(shè)計(jì)醫(yī)院建在哪個(gè)居民區(qū)比較合適。 0341 40341 4 3 13 13 12 12 62 52 15數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第4頁(yè)。3設(shè)計(jì)內(nèi)容:圖中各頂點(diǎn)代表居民區(qū),邊上的權(quán)代表各居民區(qū)的路程。要解決選地址問(wèn)題,必須確定最短路徑。求各頂點(diǎn)到其它頂點(diǎn)的最短路徑,并求各居民區(qū)之間往返路徑的和。對(duì)各居民區(qū)的最短路徑和進(jìn)行比較,和最小的則為首選地址。問(wèn)題的實(shí)現(xiàn),采用頂點(diǎn)對(duì)之間最短路徑算法,對(duì)各居民區(qū)的最短路徑進(jìn)行計(jì)算。1:求出鄰接矩陣2:求出鄰接表3:求出最短路徑的鄰接矩陣4:求各頂點(diǎn)到其它頂點(diǎn)的最短路徑的和5:求出其它頂點(diǎn)到各頂點(diǎn)的最短路徑的和6:求出往返最短路徑的和7:對(duì)各居民區(qū)的最短路徑和進(jìn)行比較,和最小的則為首選地址。4結(jié)果分析:數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第5頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第5頁(yè)。輸出鄰接矩陣 for(i=0;i<n;i++) { for(intj=0;j<n;j++) { cout<<t.arcs[i][j]<<""; } cout<<endl; } cout<<endl;輸出鄰接表 for(i=0;i<n;i++) { for(j=0;j<n;j++) {數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第6頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第6頁(yè)。 { intnext=t.path[i][j]; cout<<j; cout<<"<--"<<i<<""<<t.a[i][j]<<""; } } cout<<endl; }輸出最短路徑的鄰接矩陣for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<t.a[i][j]<<""; } cout<<endl;數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第7頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第7頁(yè)。輸出點(diǎn)到所有點(diǎn)的路程的和 for(i=0;i<n;i++) { sum1[i]=0; for(intj=0;j<n;j++) { if(i!=j) { cout<<t.a[i][j]<<":"; intnext=t.path[i][j]; cout<<j;數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第8頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第8頁(yè)。{ cout<<"<--"<<next; next=t.path[i][next]; } cout<<"<--"<<i<<endl; sum1[i]+=t.a[i][j]; } } cout<<"點(diǎn)"<<i<<"到所有點(diǎn)的路程和為:"<<sum1[i]<<endl; }數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第9頁(yè)。逆輸出所有點(diǎn)到點(diǎn)路徑的和for(i=0;i<n;i++) { sum2[i]=0; for(j=0;j<n;j++) { if(i!=j) { cout<<t.a[j][i]<<":"; intnext=t.path[j][i]; cout<<i;數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第10頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第10頁(yè)。 { cout<<"<--"<<next; next=t.path[j][next]; } cout<<"<--"<<j<<endl; } sum2[i]+=t.a[j][i]; } cout<<"所有的點(diǎn)到"<<i<<"路程和為:"<<sum2[i]<<endl; }輸出所有點(diǎn)往返路程的和for(into=0;o<n;o++) { sum3[o]=sum1[o]+sum2[o]; cout<<"點(diǎn)"<<o<<"的往返路程的和為:"<<sum3[o]<<endl; }數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第11頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第11頁(yè)。 for(inth=0;h<n;h++) { if(sum3[h]<=min) { min=sum3[h]; l=h; } } cout<<"比較可得最短的路程為"<<min<<"應(yīng)該在點(diǎn)"<<l<<"哪里建立醫(yī)院。"<<endl;對(duì)各居民區(qū)的最短路徑和進(jìn)行比較,和最小的則為首選地址5總結(jié):數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第12頁(yè)。通過(guò)這次的課程設(shè)計(jì)我了解到了,C++程序設(shè)計(jì)是一種要求特別細(xì)膩的工作,一個(gè)逗號(hào)或空格都能影響整個(gè)程序的工作運(yùn)行,要求我們非常細(xì)心。深深了解到細(xì)節(jié)決定程序的成敗。它讓我記住了學(xué)習(xí)C++需要認(rèn)真負(fù)責(zé)的態(tài)度去對(duì)待。通過(guò)一個(gè)星期以來(lái)的程序設(shè)計(jì)使我的專(zhuān)業(yè)知識(shí)更加鞏固了,填補(bǔ)了以前不懂得知識(shí)盲點(diǎn)。編程需要興趣和動(dòng)手實(shí)踐,毛澤東也曾說(shuō)過(guò)實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),開(kāi)發(fā)出新的程序,創(chuàng)新思維也非常重要。通過(guò)這次的程序設(shè)計(jì)使我更加喜愛(ài)編程這項(xiàng)工作,雖然很辛苦但是把程序完成之后的那份喜悅。是外人難以感受的。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第12頁(yè)。參考文獻(xiàn)[1]肖宏啟,劉昌明.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].第1版.北京:電子工業(yè)出版社,2010附錄:程序代碼#include<iostream.h>constintn=5;constinte=10;intsum1[5];intsum2[5];intsum3[5];intj=0;intmin;intl;#definemax32767classGraph{數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第13頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第13頁(yè)。 intarcs[n+1][n+1];inta[n+1][n+1]; intpath[n+1][n+1]; voidfloyd(Graph&t,constintn); };voidGraph::floyd(Graph&t,constintn){ for(inti=0;i<n;i++) for(intj=0;j<n;j++) { t.a[i][j]=t.arcs[i][j]; if((i!=j)&&(a[i][j]<max)) t.path[i][j]=i; elset.path[i][j]=0; } for(intk=0;k<n;k++) { for(i=0;i<n;i++) for(intj=0;j<n;j++) if(t.a[i][k]+t.a[k][j]<t.a[i][j]) { t.a[i][j]=t.a[i][k]+t.a[k][j]; t.path[i][j]=t.path[k][j]; } } for(i=0;i<n;i++) {數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第14頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第14頁(yè)。 { if(i!=j) { intnext=t.path[i][j]; cout<<j; cout<<"<--"<<i<<""<<t.a[i][j]<<""; } } cout<<endl; } cout<<endl; for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<t.a[i][j]<<""; } cout<<endl; } cout<<endl;for(i=0;i<n;i++) { sum1[i]=0; for(intj=0;j<n;j++) { if(i!=j) { cout<<t.a[i][j]<<":";數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第15頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第15頁(yè)。 cout<<j; while(next!=i){ cout<<"<--"<<next; next=t.path[i][next]; } cout<<"<--"<<i<<endl; sum1[i]+=t.a[i][j]; } } cout<<"點(diǎn)"<<i<<"到所有點(diǎn)的路程和為:"<<sum1[i]<<endl; } for(i=0;i<n;i++) { sum2[i]=0; for(j=0;j<n;j++) { if(i!=j) { cout<<t.a[j][i]<<":"; intnext=t.path[j][i]; cout<<i; while(next!=j) { cout<<"<--"<<next; next=t.path[j][next]; } cout<<"<--"<<j<<endl;數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第16頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第16頁(yè)。 sum2[i]+=t.a[j][i]; } cout<<"所有的點(diǎn)到"<<i<<"路程和為:"<<sum2[i]<<endl; } for(into=0;o<n;o++) { sum3[o]=sum1[o]+sum2[o]; cout<<"點(diǎn)"<<o<<"的往返路程的和為:"<<sum3[o]<<endl; } min=sum3[0]; for(inth=0;h<n;h++) { if(sum3[h]<=min) { min=sum3[h]; l=h; } } cout<<"比較可得在點(diǎn)"<<l<<"那里建立醫(yī)院"<<min<<"為最短的路程"<<endl;}voidmain(){ 數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第17頁(yè)。數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題全文共19頁(yè),當(dāng)前為第17頁(yè)。 for(i=0;i<n;i++) for(j=0;j<n;j++) if(i==j)t.arcs[i][j]=0; elset.arcs[i][j]=max; for(intk=0;k<e;k++) { cin>>i>>
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)守價(jià)議價(jià)及SP配合培訓(xùn)
- 風(fēng)電技能培訓(xùn)課件圖片素材
- 各種護(hù)理導(dǎo)管防滑脫措施
- 小學(xué)教導(dǎo)處常規(guī)管理匯報(bào)
- 肺炎的公休座談會(huì)
- 頸椎病健康教育課件
- 領(lǐng)航職業(yè)英語(yǔ)課件下載
- 預(yù)防踩踏班會(huì)課件
- 崗前培訓(xùn)結(jié)業(yè)匯報(bào)
- 預(yù)防小學(xué)生溺水課件
- 工程測(cè)量員理論知識(shí)考核要素細(xì)目表
- 2025基層法律服務(wù)試題及答案
- 2024年上海市教育評(píng)估院招聘筆試真題
- 暗夜旅游地光污染治理-洞察及研究
- 2025-2030中國(guó)老舊垃圾填埋場(chǎng)治理行業(yè)前景動(dòng)態(tài)與發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 護(hù)士職業(yè)損傷防護(hù)課件
- 2025汽車(chē)貸款還款合同范本
- 包裝,設(shè)計(jì)合同5篇
- 適用奶茶店兼職合同協(xié)議
- 國(guó)防教育講座課件
- 2025年全國(guó)保密教育線(xiàn)上培訓(xùn)考試試題庫(kù)附答案【考試直接用】含答案詳解
評(píng)論
0/150
提交評(píng)論