數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)-醫(yī)院選址問(wèn)題_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ù)據(jù)結(jié)構(gòu)設(shè)計(jì)題目社區(qū)醫(yī)院選址問(wè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ù)、信息管理專業(yè)的重要的專業(yè)基礎(chǔ)課,是計(jì)算機(jī)系統(tǒng)軟件和應(yīng)用軟件開發(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ū),有向邊代表交通路線。權(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ì)使我的專業(yè)知識(shí)更加鞏固了,填補(bǔ)了以前不懂得知識(shí)盲點(diǎn)。編程需要興趣和動(dòng)手實(shí)踐,毛澤東也曾說(shuō)過(guò)實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),開發(fā)出新的程序,創(chuàng)新思維也非常重要。通過(guò)這次的程序設(shè)計(jì)使我更加喜愛編程這項(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)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論