學(xué)校超市選址問題_第1頁
學(xué)校超市選址問題_第2頁
學(xué)校超市選址問題_第3頁
學(xué)校超市選址問題_第4頁
學(xué)校超市選址問題_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

題目:學(xué)校超市選址問題目錄第1章需求分析 2第2章總體設(shè)計(jì) 22.1文字描述 22.2程序流程圖 2第3章詳細(xì)設(shè)計(jì) 33.1數(shù)據(jù)結(jié)構(gòu) 3第4章實(shí)現(xiàn)部分 44.1核心代碼 4第5章程序測(cè)試 75.1測(cè)試數(shù)據(jù) 75.2程序運(yùn)行圖 75.3結(jié)果分析 8第6章總結(jié) 8參考文獻(xiàn) 9第1章需求分析我的課程設(shè)計(jì)題目為學(xué)校超市選址問題。對(duì)于某一學(xué)校超市,其他各單位到其的距離不同,同時(shí)各單位人員去超市的頻度也不同,根據(jù)以上這兩個(gè)條件,確定學(xué)校的超市要建在什么地方,才能使得方案達(dá)到最優(yōu)。該程序要能夠確定超市的最優(yōu)地址。而這個(gè)最有地址只能在所有單位所在地中選擇。通過這個(gè)課程設(shè)計(jì),真正理解弗洛伊德算法的思想,鍛煉自主學(xué)習(xí)能力和程序編寫能力,以及能夠處理現(xiàn)實(shí)生活中類似的問題。第2章總體設(shè)計(jì)2.1文字描述首先,建立圖的鄰接矩陣。輸入相關(guān)基本數(shù)據(jù)信息,以單位作為圖的頂點(diǎn),以單位之間的距離與各個(gè)單位去超市的頻率之積作為圖的權(quán)值,建立鄰接矩陣。然后,調(diào)用弗洛伊德算法。單位i與j之間,加入過渡點(diǎn)k,若i、k間距離與k、j間距離之和小于i、j間的距離,修改矩陣。如此反復(fù)執(zhí)行下去。完成后,得到i到j(luò)得最短距離。最后,確定最優(yōu)地點(diǎn)。根據(jù)某單位到各個(gè)單位的最短距離之和最短,該單位所在地即為最優(yōu)地址。2.2程序流程圖開始開始MMain()函數(shù)輸入數(shù)據(jù)輸入數(shù)據(jù)建立圖的鄰接矩陣建立圖的鄰接矩陣 if(i!=j) { cout<<i<<"到"<<j<<"的最短路徑為"<<t.a[i][j]<<":"; intnext=t.path[i][j]; cout<<j; while(next!=i) { cout<<"←"<<next; next=t.path[i][next]; }cout<<"←"<<i<<endl; } }}//計(jì)算最短距離之和voidgraph::add(graph&t){ intsum[n+1]; for(inti=0;i<n+1;i++) sum[i]=0; for(inti=1;i<=n;i++) { for(intj=1;j<=n;j++) { if(i!=j) { sum[i]=sum[i]+t.a[i][j]; } } cout<<endl; cout<<i<<"到各頂點(diǎn)的最短路徑總和為"<<sum[i]<<endl; } sum[0]=sum[1]; intaddress=1; for(inti=2;i<n+1;i++) if(sum[0]>sum[i]) { sum[0]=sum[i]; address=i; } cout<<"所以最短路徑總和為"<<sum[0]<<"學(xué)院超市的最佳選址為頂點(diǎn)"<<address<<endl; }//主函數(shù)voidmain(){ grapht;inti,j,w;for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(i==j) t.arcs[i][j]=0; elset.arcs[i][j]=max;cout<<"***********學(xué)校超市最佳選址************"<<endl<<endl<<endl; cout<<"請(qǐng)輸入請(qǐng)輸入存在路徑的兩個(gè)單位以及相通兩個(gè)單位間的距離(用空格隔開)"; cout<<endl; for(intk=1;k<=e;k++) { cin>>i>>j>>w; t.arcs[i][j]=w; } t.floyd(t,n); t.add(t);system("pause");}第5章程序測(cè)試5.1測(cè)試數(shù)據(jù)輸入:請(qǐng)輸入請(qǐng)輸入存在路徑的兩個(gè)單位以及相通兩個(gè)單位間的距離輸出:最短距離及路徑、某一頂點(diǎn)到各個(gè)頂點(diǎn)的最短路徑之和以及最優(yōu)地址程序設(shè)計(jì)中設(shè)頂點(diǎn)n=4,即4個(gè)頂點(diǎn),e=8即有8條路徑。(如下圖)11234429523685.2程序運(yùn)行圖則輸入如下:得出結(jié)果如下:5.3結(jié)果分析雖然該程序可以求出最優(yōu)地址,但還有很多地方需要改進(jìn)。首先,超市只能選在某個(gè)單位所在地,而不能選在除單位所在地以外。其次,每次運(yùn)行,都要輸入數(shù)據(jù),降低了程序的效率??梢杂梦募肀4孑斎氲臄?shù)據(jù),這樣不必每次運(yùn)行再輸一遍了。最后,該程序只能確定一個(gè)地點(diǎn)。通過比較某單位到其他單位的距離之和,確定最優(yōu)地址。雖然求出了最小的,但兩個(gè)相等的話,卻只能求出最先出現(xiàn)的。可以另外定義幾個(gè)變量,來存放相等時(shí)的行號(hào)。這樣,就能夠確定多個(gè)地址了,而不會(huì)漏掉。第6章總結(jié)這個(gè)程序基本上運(yùn)行成功,能夠?qū)斎氲臄?shù)據(jù)進(jìn)行簡(jiǎn)單地計(jì)算,并確定超市的最優(yōu)地址。但是,程序功能還不夠全面。同時(shí),這次的課程設(shè)計(jì),使我感觸頗多。我們的學(xué)習(xí)不應(yīng)該只局限于課本。掌握了課本上知識(shí)是永遠(yuǎn)不夠的。還需要我們懂得自學(xué),最大限度地利用我們身邊的資源。我不但學(xué)到了知識(shí),更重要的是如何用語言及文字表達(dá)自己的想法。雖然在我的程序代碼中,有一部分是從書本弗洛伊德算法程序中得來的,但我并沒有生搬硬套。我竭力改進(jìn)代碼,力求與原有的相協(xié)調(diào),同時(shí)有所創(chuàng)新突破。從中,我還意識(shí)到自己編程的弱勢(shì)。通過這次課程設(shè)計(jì),也使我認(rèn)識(shí)到:只要有不退縮的精神耐力終能戰(zhàn)勝困難。當(dāng)你獨(dú)自把錯(cuò)誤找出來,把程序調(diào)試出來,你就會(huì)覺得心情有多么的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論