版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 課程設(shè)計(jì)的主要內(nèi)容</b></p><p> 公交換乘在一個(gè)城市的公共交通系統(tǒng)設(shè)計(jì)中占據(jù)著極其重要的地位,公交換乘的過(guò)程將直接影響居民出行時(shí)間的長(zhǎng)短,公交換乘的過(guò)程如下:指定一起始公交站點(diǎn)與目的公交站點(diǎn),依據(jù)參考因素,例如:換乘路線的路徑最短、耗費(fèi)時(shí)間最短、所需車資
2、最少等,經(jīng)過(guò)分析處理得到可達(dá)目的站點(diǎn)換乘次數(shù)最少的乘車方案,具體可分為:</p><p> ?。?)零次換乘 起始站點(diǎn)和目的站點(diǎn)之間存在可直達(dá)的公交線路,即出行居民無(wú)需轉(zhuǎn)乘就可以直接到達(dá)目的站點(diǎn),這也是較為理想的方案。</p><p> ?。?)一次換乘 起始站點(diǎn)和目的站點(diǎn)之間沒有公交車直接往返,即兩站點(diǎn)之間不存在可直達(dá)的公交線路,則出行居民需要在途經(jīng)的某個(gè)站點(diǎn)下車,然后轉(zhuǎn)乘另一線路公
3、交車才能達(dá)到目的站點(diǎn)。</p><p> (3)多次換乘 在起始站點(diǎn)和目的站點(diǎn)之間沒有可直達(dá)的公交線路,出行居民需要經(jīng)過(guò)一次以上的轉(zhuǎn)乘才能達(dá)到目的站點(diǎn),則得到多次換乘方案。多次換乘方案可通過(guò)一次換乘的遞歸計(jì)算得到,一般情況下,超過(guò)兩次轉(zhuǎn)乘的方案對(duì)于出行居民來(lái)說(shuō)是難以接受的,本課程設(shè)計(jì)只要求計(jì)算零次和一次換乘方案,對(duì)于一次以上的公交換乘不作要求。</p><p><b> 功
4、能和結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> 1、功能設(shè)計(jì)</b></p><p> 在這里通過(guò)主函數(shù)顯示程序的主頁(yè)版,上面是湛江的公交線路圖</p><p> 在這里輸入出發(fā)站點(diǎn)的名字,回車確定!</p><p> 在這里輸入最終站點(diǎn)的名字!</p><p> 輸入錯(cuò)誤會(huì)
5、提醒重新輸入!</p><p> 輸入要查詢的起點(diǎn)和終點(diǎn)</p><p> 0次換乘,輸出查詢結(jié)果:</p><p> 按y或Y,可以繼續(xù)查詢!</p><p> 輸入出發(fā)點(diǎn)和終點(diǎn),一次換乘的結(jié)果如下:</p><p><b> 2、結(jié)構(gòu)設(shè)計(jì)</b></p><p&g
6、t; 設(shè)計(jì)一個(gè)實(shí)現(xiàn)公交換乘的算法:指定任一起始站點(diǎn)和目的站點(diǎn),依據(jù)算法得到所有可達(dá)目的站點(diǎn)的的公交線路,包括中間站點(diǎn)的換乘方法以及該公交線路所經(jīng)過(guò)的公交站點(diǎn)。</p><p> 分析公交站點(diǎn)和公交線路的數(shù)據(jù)屬性,并依據(jù)公交換乘的功能要求,確定算法設(shè)計(jì)方案;</p><p> 設(shè)計(jì)公交站點(diǎn)信息以及公交線路信息的存儲(chǔ)結(jié)構(gòu);</p><p> 設(shè)計(jì)公交換乘算法,并
7、畫出程序流程圖;</p><p> 使用C++程序設(shè)計(jì)語(yǔ)言編寫實(shí)現(xiàn)公交換乘的程序;</p><p><b> 流程圖和算法設(shè)計(jì)</b></p><p><b> 源程序代碼</b></p><p> #include<iostream></p><p>
8、 #include<string></p><p> using namespace std;</p><p> const int pathlen=11;</p><p> int qd,zd;//起點(diǎn),終點(diǎn)的下標(biāo)</p><p> string a[4]={"農(nóng)墾醫(yī)院站","廣州灣站&qu
9、ot;,"霞湖醫(yī)院站","海濱賓館站"};</p><p> class Busline</p><p><b> { </b></p><p><b> public:</b></p><p> Busline(string p[],int n)
10、;</p><p> void zhida(int i,string sp,string fp,string p[],int l);</p><p> void gjhc(int i,int j,string sp,string fp,string p1[],string p2[]);</p><p> void tu();</p><p&
11、gt;<b> private:</b></p><p> string bus[pathlen];</p><p><b> };</b></p><p> Busline::Busline(string p[],int n)</p><p><b> {</b>&
12、lt;/p><p> if(n>pathlen) throw"上溢";</p><p> for(int i=0;i<pathlen;i++)</p><p><b> {</b></p><p> bus[i]=p[i];</p><p><b>
13、 }</b></p><p><b> }</b></p><p> void Busline::zhida(int i,string sp,string fp,string p[],int l)</p><p><b> { </b></p><p><b> q
14、d=i;</b></p><p> for(int j=0;j<pathlen;j++)</p><p> if(fp==p[j])</p><p><b> {</b></p><p> cout<<"可以直達(dá),乘坐"<<l<<"
15、;號(hào)車!"<<endl;</p><p><b> if(i<j)</b></p><p><b> {</b></p><p> cout<<"該路線為:"<<endl;</p><p> for(int k=i;k
16、<=j;k++)</p><p><b> {</b></p><p> cout<<p[k]<<" ";</p><p><b> }</b></p><p><b> }</b></p><p
17、><b> else</b></p><p> cout<<"該路線為:"<<endl;</p><p> for(int k=i;k>=j;k--)</p><p><b> {</b></p><p> cout<<p
18、[k]<<" ";</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void Busline::gjhc(int i,int j,string sp,
19、string fp,string p1[],string p2[])</p><p><b> { </b></p><p><b> qd=i;</b></p><p><b> zd=j;</b></p><p> for(int k=0;k<pathle
20、n;k++)</p><p> for(int h=0;h<pathlen;h++)</p><p> if(fp==p1[h]&&sp==p2[k])</p><p><b> { </b></p><p> for(int x=0;x<4;x++)</p><p
21、> for(int l=0;l<pathlen;l++)</p><p> for(int l1=0;l1<pathlen;l1++)</p><p><b> { </b></p><p> if(a[x]==p2[l]&&a[x]==p1[l1])</p><p><
22、;b> {</b></p><p><b> if(i<l)</b></p><p><b> {</b></p><p> for(int y=i;y<l;y++)</p><p><b> {</b></p><p
23、> cout<<"經(jīng)"<<p2[y]<<" ";</p><p><b> }</b></p><p><b> if(j<l1)</b></p><p><b> {</b></p><
24、;p> cout<<"在"<<a[x]<<"轉(zhuǎn)程,"<<" ";</p><p> for(int z=l1;z>=j;z--)</p><p><b> {</b></p><p> cout<<&q
25、uot;經(jīng)"<<p1[z]<<" ";</p><p><b> }</b></p><p> cout<<"到"<<fp<<endl;</p><p><b> }</b></p><p
26、> else if(j>l1)</p><p><b> {</b></p><p> cout<<"在"<<a[x]<<"轉(zhuǎn)程,"<<" ";</p><p> for(int z=l1;z<=j;z++)
27、</p><p><b> {</b></p><p> cout<<"經(jīng)"<<p1[z]<<" ";</p><p><b> }</b></p><p> cout<<"到"<
28、;<fp<<endl;</p><p><b> }</b></p><p><b> }</b></p><p> else if(i>l)</p><p><b> {</b></p><p> cout<
29、<"在"<<a[x]<<"轉(zhuǎn)程,"<<" ";</p><p> for(int y=i;y>l;y--)</p><p><b> {</b></p><p> cout<<"經(jīng)"<<
30、;p2[y]<<" ";</p><p><b> }</b></p><p> cout<<"到"<<fp<<endl;</p><p><b> if(j<l1)</b></p><p><
31、b> {</b></p><p> for(int z=l1;z>=j;z--)</p><p><b> {</b></p><p> cout<<"轉(zhuǎn)"<<p1[z]<<" ";</p><p><b&g
32、t; }</b></p><p><b> }</b></p><p> else if(j>l1)</p><p><b> {</b></p><p> cout<<"在"<<a[x]<<"轉(zhuǎn)程,&qu
33、ot;<<" ";</p><p> for(int z=l1;z<=j;z++)</p><p><b> {</b></p><p> cout<<"轉(zhuǎn)"<<p1[z]<<" ";</p><p&g
34、t;<b> }</b></p><p> cout<<"到"<<fp<<endl;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</
35、b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void Busline::tu()</p><p><b> {</b>
36、</p><p> cout<<" 湛江公交路線圖 "<<endl;</p><p> cout<<" 2線|
37、 "<<endl;</p><p> cout<<" | "<<endl;</p><p> cout<<" 東華站○
38、 "<<endl; </p><p> cout<<" | | "<<endl;</p><
39、;p> cout<<" 灣橋站○ 潛水運(yùn)動(dòng) ○海濱醫(yī)院站 "<<endl;</p><p> cout<<" | 學(xué)校站 | 海上城市站 "<<
40、endl;</p><p> cout<<" ̄農(nóng)墾醫(yī)院站● ̄ ̄○ ̄ ̄ ̄●海濱賓館站 ̄ ̄ ̄○ ̄ ̄ ̄| "<<endl;</p><p> cout<<" | | |
41、"<<endl;</p><p> cout<<" 啤酒廠站○ ○兒童公園站 ○市旅游總公司站 "<<endl;</p><p> cout<<" | |
42、 | "<<endl;</p><p> cout<<" 俱樂部站○ | | "<<endl;</p><p> cout<<" |
43、 廣州灣站| |霞湖醫(yī)院站 "<<endl;</p><p> cout<<"  ̄○ ̄○ ̄ ̄ ● ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄● ̄ ̄○ ̄ ̄ "<<endl;</p><p> cout<<"
44、 廣醫(yī)附院站 國(guó)貿(mào)站 | 建新東路站 | 霞山汽車運(yùn)輸總站 "<<endl;</p><p> cout<<" | | "<<endl;</p><p> cout&
45、lt;<" 3線 | | "<<endl;</p><p> cout<<"  ̄ ̄○ ̄ ̄○ ̄ ̄ ̄○ ̄○建設(shè)路站 ○海運(yùn)集團(tuán)公司站 "<<endl;</p>
46、<p> cout<<"世紀(jì)廣場(chǎng)站 人民大道 湛江汽車南站 | "<<endl;</p><p> cout<<" 中巴專線 |1線 "&l
47、t;<endl;</p><p> cout<<" (●為換乘站點(diǎn),○為普通站點(diǎn)) "<<endl;</p><p> cout<<endl;</p><p><b> }</b></p&
48、gt;<p> void main()</p><p><b> { </b></p><p> string path1[pathlen]={"農(nóng)墾醫(yī)院站","潛水運(yùn)動(dòng)學(xué)校站","海濱賓館站","海上城市站","市旅游總公司站","霞
49、湖醫(yī)院站","海運(yùn)集團(tuán)公司站"};</p><p> string path2[pathlen]={"東華站","灣橋站","農(nóng)墾醫(yī)院站","啤酒廠站","俱樂部站","廣醫(yī)附院站","國(guó)貿(mào)站","廣州灣站","建
50、新東路站","霞湖醫(yī)院站","霞山汽車運(yùn)輸總站"};</p><p> string path3[pathlen]={"海濱醫(yī)院站","海濱賓館站","兒童公園站","廣州灣站","建設(shè)路站","湛江汽車南站","人民大道中巴專線&q
51、uot;,"世紀(jì)廣場(chǎng)站"};</p><p> Busline a(path1,7);</p><p> Busline b(path2,11);</p><p> Busline c(path3,8);</p><p><b> a.tu();</b></p><p>
52、; string sp,fp;</p><p><b> begin:</b></p><p> cout<<"請(qǐng)輸入出發(fā)點(diǎn):"<<endl;</p><p><b> cin>>sp;</b></p><p><b> b
53、egin1:</b></p><p> cout<<"請(qǐng)輸入終點(diǎn):"<<endl;</p><p><b> cin>>fp;</b></p><p> int j1=1,jj=1;</p><p> for(int d=0;d<7;d++
54、)</p><p><b> {</b></p><p> if(sp==path1[d])</p><p><b> j1=2;</b></p><p> if(fp==path1[d])</p><p><b> jj=2;</b><
55、/p><p><b> }</b></p><p> for( d=0;d<11;d++)</p><p><b> {</b></p><p> if(sp==path2[d])</p><p><b> j1=2;</b></p&g
56、t;<p> if(fp==path2[d])</p><p><b> jj=2;</b></p><p><b> }</b></p><p> for( d=0;d<8;d++)</p><p><b> {</b></p>&
57、lt;p> if(sp==path3[d])</p><p><b> j1=2;</b></p><p> if(fp==path3[d])</p><p><b> jj=2;</b></p><p><b> }</b></p><p&
58、gt; if(j1==1)</p><p><b> {</b></p><p> cout<<"輸入的出發(fā)點(diǎn)有錯(cuò),請(qǐng)重新輸入:"<<endl;</p><p> goto begin;</p><p><b> }</b></p>
59、;<p><b> if(jj==1)</b></p><p><b> {</b></p><p> cout<<"輸入的終點(diǎn)點(diǎn)有錯(cuò),請(qǐng)重新輸入:"<<endl;</p><p> goto begin1;</p><p><
60、b> }</b></p><p><b> else</b></p><p> for(int i=0;i<pathlen;i++)</p><p><b> { </b></p><p> for(int k1=0;k1<pathlen;k1++)<
61、;/p><p> if(fp==path1[k1]) </p><p><b> { </b></p><p> if(sp==path1[i])</p><p><b> {</b></p><p> a.zhida(i,sp,fp,path1,1);</p
62、><p><b> }</b></p><p> else if(sp!=path1[i])</p><p><b> { </b></p><p> if(sp==path2[i])</p><p><b> {</b></p>
63、<p> cout<<"需要換乘,轉(zhuǎn)程方式為:2路轉(zhuǎn)1路線"<<endl;</p><p> a.gjhc(i,k1,sp,fp,path1,path2);</p><p><b> }</b></p><p> if(sp==path3[i])</p><p&
64、gt;<b> {</b></p><p> cout<<"需要換乘,轉(zhuǎn)程方式:3路轉(zhuǎn)1路線"<<endl;</p><p> a.gjhc(i,k1,sp,fp,path1,path3);</p><p><b> }</b></p><p>&
65、lt;b> }</b></p><p><b> }</b></p><p> else if(fp==path2[k1]) </p><p><b> { </b></p><p> if(sp==path2[i])</p><p><
66、b> {</b></p><p> b.zhida(i,sp,fp,path2,2);</p><p><b> }</b></p><p> else if(sp!=path2[i])</p><p><b> {</b></p><p> i
67、f(sp==path1[i])</p><p><b> {</b></p><p> cout<<"需要換乘,轉(zhuǎn)程方式:1路轉(zhuǎn)2路線"<<endl;</p><p> b.gjhc(i,k1,sp,fp,path2,path1);</p><p><b>
68、}</b></p><p> else if(sp==path3[i])</p><p><b> {</b></p><p> cout<<"需要換乘,轉(zhuǎn)程方式:3路轉(zhuǎn)2路線"<<endl;</p><p> b.gjhc(i,k1,sp,fp,path2
69、,path3);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(fp==path3[k1])</p><p><b> { &l
70、t;/b></p><p> if(sp==path3[i])</p><p><b> {</b></p><p> c.zhida(i,sp,fp,path3,3);</p><p><b> }</b></p><p> else if(sp!=path
71、3[i])</p><p><b> {</b></p><p> if(sp==path1[i])</p><p><b> {</b></p><p> cout<<"轉(zhuǎn)程方式:1路轉(zhuǎn)3路線"<<endl;</p><p&g
72、t; c.gjhc(i,k1,sp,fp,path3,path1);</p><p><b> }</b></p><p> else if(sp==path2[i])</p><p><b> {</b></p><p> cout<<"轉(zhuǎn)程方式:2路轉(zhuǎn)3路線&qu
73、ot;<<endl;</p><p> c.gjhc(i,k1,sp,fp,path3,path2);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
74、<b> } </b></p><p> cout<<"\n"<<"是否繼續(xù)?繼續(xù)請(qǐng)輸入y或者Y?。?!"<<endl;</p><p><b> char t;</b></p><p><b> cin>>t;<
75、/b></p><p> if(t=='y'||t=='Y')</p><p> goto begin;</p><p><b> else </b></p><p><b> exit(1);</b></p><p><b
76、> }</b></p><p><b> 課程設(shè)計(jì)總結(jié)</b></p><p> 在這次關(guān)于公交換乘的課程設(shè)計(jì)中,我了解到了我的不足,如算法的不完善、不細(xì)心和耐心不是很好等等。不細(xì)心的我在調(diào)試程序時(shí),老是因?yàn)槟硞€(gè)書寫錯(cuò)誤導(dǎo)致很多錯(cuò)誤;對(duì)這些錯(cuò)誤,我不得不花大量的時(shí)間去更正,并且還要重復(fù)檢查是否出現(xiàn)雷同的錯(cuò)誤而導(dǎo)致程序不能運(yùn)行。但是通過(guò)這次課程設(shè)
77、計(jì),我的這些缺點(diǎn)有些改善。我在寫新的程序時(shí),首先要考慮的深入一點(diǎn)、仔細(xì)一點(diǎn),這樣修改程序的時(shí)間就會(huì)少很多。并且也不會(huì)因?yàn)樽约翰患?xì)心而導(dǎo)致浪費(fèi)時(shí)間的情況出現(xiàn)。 </p><p> 通過(guò)這次數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì),加強(qiáng)了我的動(dòng)手能力,以及提升了局部和統(tǒng)一考慮問題的思維方式。回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,可以說(shuō)既辛苦,又受益匪淺,學(xué)到很多很多的東西,同時(shí)不僅鞏固了以前
78、所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上沒有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。</p><p> 在設(shè)計(jì)的過(guò)程中遇到很多問題,可以說(shuō)是困難重重,畢竟是第一次做,難免會(huì)遇到各種各樣的問題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)----集合運(yùn)算課程設(shè)計(jì)報(bào)告(c++)
- 數(shù)據(jù)結(jié)構(gòu)c++課程設(shè)計(jì)報(bào)告--拼寫檢測(cè)器
- 數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)報(bào)告——航班信息查詢系統(tǒng)(c++)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----用c++語(yǔ)言實(shí)現(xiàn)圖書管理系統(tǒng)
- 地圖著色問題-c++和數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-中南大學(xué)
- 數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)報(bào)告-北京地鐵查詢系統(tǒng)c++版
- 廣東海洋大學(xué)公交換乘系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)(c++)課程設(shè)計(jì)報(bào)告--教學(xué)計(jì)劃編制問題
- 地圖著色問題-c++和數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-中南大學(xué)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- c數(shù)據(jù)結(jié)構(gòu)迷宮問題課程設(shè)計(jì)
- c++數(shù)據(jù)結(jié)構(gòu)算法演示系統(tǒng)畢業(yè)設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu) --隊(duì)列 --- c++實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目-c類(201206)
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)c++版試題
- c語(yǔ)言與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論