廣東海洋大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——公交換乘系統(tǒng)(C++)12頁(yè)_第1頁(yè)
廣東海洋大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——公交換乘系統(tǒng)(C++)12頁(yè)_第2頁(yè)
廣東海洋大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——公交換乘系統(tǒng)(C++)12頁(yè)_第3頁(yè)
廣東海洋大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——公交換乘系統(tǒng)(C++)12頁(yè)_第4頁(yè)
廣東海洋大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——公交換乘系統(tǒng)(C++)12頁(yè)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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)介

1、廣東海洋大學(xué)信息學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目公交換乘課程名稱數(shù)據(jù)結(jié)構(gòu)姓名(學(xué)號(hào))聯(lián)系電話專業(yè)名稱所在班級(jí)指導(dǎo)教師 教師職稱起止時(shí)間評(píng)定成績(jī)一、 課程設(shè)計(jì)的主要內(nèi)容公交換乘在一個(gè)城市的公共交通系統(tǒng)設(shè)計(jì)中占據(jù)著極其重要的地位,公交換乘的過(guò)程將直接影響居民出行時(shí)間的長(zhǎng)短,公交換乘的過(guò)程如下:指定一起始公交站點(diǎn)與目的公交站點(diǎn),依據(jù)參考因素,例如:換乘路線的路徑最短、耗費(fèi)時(shí)間最短、所需車資最少等,經(jīng)過(guò)分析處理得到可達(dá)目的站點(diǎn)換乘次數(shù)最少的乘車方案,具體可分為:(1)零次換乘 起始站點(diǎn)和目的站點(diǎn)之間存在可直達(dá)的公交線路,即出行居民無(wú)需轉(zhuǎn)乘就可以直接到達(dá)目的站點(diǎn),這也是較為理想的方案。(2)一次換乘 起始站點(diǎn)和

2、目的站點(diǎn)之間沒(méi)有公交車直接往返,即兩站點(diǎn)之間不存在可直達(dá)的公交線路,則出行居民需要在途經(jīng)的某個(gè)站點(diǎn)下車,然后轉(zhuǎn)乘另一線路公交車才能達(dá)到目的站點(diǎn)。(3)多次換乘 在起始站點(diǎn)和目的站點(diǎn)之間沒(méi)有可直達(dá)的公交線路,出行居民需要經(jīng)過(guò)一次以上的轉(zhuǎn)乘才能達(dá)到目的站點(diǎn),則得到多次換乘方案。多次換乘方案可通過(guò)一次換乘的遞歸計(jì)算得到,一般情況下,超過(guò)兩次轉(zhuǎn)乘的方案對(duì)于出行居民來(lái)說(shuō)是難以接受的,本課程設(shè)計(jì)只要求計(jì)算零次和一次換乘方案,對(duì)于一次以上的公交換乘不作要求。二、 功能和結(jié)構(gòu)設(shè)計(jì)1、功能設(shè)計(jì)在這里通過(guò)主函數(shù)顯示程序的主頁(yè)版,上面是湛江的公交線路圖在這里輸入出發(fā)站點(diǎn)的名字,回車確定!在這里輸入最終站點(diǎn)的名字!

3、輸入錯(cuò)誤會(huì)提醒重新輸入!輸入要查詢的起點(diǎn)和終點(diǎn)0次換乘,輸出查詢結(jié)果:按y或Y,可以繼續(xù)查詢!輸入出發(fā)點(diǎn)和終點(diǎn),一次換乘的結(jié)果如下:2、結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)一個(gè)實(shí)現(xiàn)公交換乘的算法:指定任一起始站點(diǎn)和目的站點(diǎn),依據(jù)算法得到所有可達(dá)目的站點(diǎn)的的公交線路,包括中間站點(diǎn)的換乘方法以及該公交線路所經(jīng)過(guò)的公交站點(diǎn)。1 分析公交站點(diǎn)和公交線路的數(shù)據(jù)屬性,并依據(jù)公交換乘的功能要求,確定算法設(shè)計(jì)方案;2 設(shè)計(jì)公交站點(diǎn)信息以及公交線路信息的存儲(chǔ)結(jié)構(gòu);3 設(shè)計(jì)公交換乘算法,并畫出程序流程圖;4 使用C+程序設(shè)計(jì)語(yǔ)言編寫實(shí)現(xiàn)公交換乘的程序;三、 流程圖和算法設(shè)計(jì)開(kāi)始搜索經(jīng)過(guò)起始站點(diǎn)的所有公交線路和經(jīng)過(guò)目的站點(diǎn)的所有公交線路判

4、斷是否存在同時(shí)經(jīng)過(guò)其始站點(diǎn)和目的站點(diǎn)的公交線路對(duì)于經(jīng)過(guò)起始站點(diǎn)的公交線路和經(jīng)過(guò)目的站點(diǎn)的公交線路的每對(duì)數(shù)據(jù)結(jié)構(gòu)中,是否經(jīng)過(guò)相同的公交站點(diǎn)當(dāng)前無(wú)法找到可行的換乘方案,打印相關(guān)信息結(jié)束找到一次換乘的乘車方案,打印換乘方案以及換乘路線所覆蓋的站點(diǎn)信息否否是是找到零次換乘(直達(dá))的乘車方案,打印直達(dá)路線所覆蓋的站點(diǎn)信息四、 源程序代碼#include<iostream>#include<string>using namespace std;const int pathlen=11;int qd,zd;/起點(diǎn),終點(diǎn)的下標(biāo)string a4="農(nóng)墾醫(yī)院站",&q

5、uot;廣州灣站","霞湖醫(yī)院站","海濱賓館站"class Busline public:Busline(string p,int n);void zhida(int i,string sp,string fp,string p,int l);void gjhc(int i,int j,string sp,string fp,string p1,string p2);void tu();private:string buspathlen;Busline:Busline(string p,int n)if(n>pathlen) throw

6、"上溢"for(int i=0;i<pathlen;i+)busi=pi;void Busline:zhida(int i,string sp,string fp,string p,int l) qd=i;for(int j=0;j<pathlen;j+)if(fp=pj)cout<<"可以直達(dá),乘坐"<<l<<"號(hào)車!"<<endl;if(i<j)cout<<"該路線為:"<<endl;for(int k=i;k<=j

7、;k+)cout<<pk<<" " elsecout<<"該路線為:"<<endl;for(int k=i;k>=j;k-)cout<<pk<<" "void Busline:gjhc(int i,int j,string sp,string fp,string p1,string p2) qd=i;zd=j;for(int k=0;k<pathlen;k+)for(int h=0;h<pathlen;h+)if(fp=p1h&&

8、sp=p2k) for(int x=0;x<4;x+) for(int l=0;l<pathlen;l+) for(int l1=0;l1<pathlen;l1+) if(ax=p2l&&ax=p1l1)if(i<l)for(int y=i;y<l;y+)cout<<"經(jīng)"<<p2y<<" "if(j<l1)cout<<"在"<<ax<<"轉(zhuǎn)程,"<<" "fo

9、r(int z=l1;z>=j;z-)cout<<"經(jīng)"<<p1z<<" "cout<<"到"<<fp<<endl;else if(j>l1)cout<<"在"<<ax<<"轉(zhuǎn)程,"<<" "for(int z=l1;z<=j;z+)cout<<"經(jīng)"<<p1z<<" &qu

10、ot;cout<<"到"<<fp<<endl;else if(i>l)cout<<"在"<<ax<<"轉(zhuǎn)程,"<<" "for(int y=i;y>l;y-)cout<<"經(jīng)"<<p2y<<" "cout<<"到"<<fp<<endl;if(j<l1)for(int z=l1;z>

11、;=j;z-)cout<<"轉(zhuǎn)"<<p1z<<" "else if(j>l1)cout<<"在"<<ax<<"轉(zhuǎn)程,"<<" "for(int z=l1;z<=j;z+)cout<<"轉(zhuǎn)"<<p1z<<" "cout<<"到"<<fp<<endl; void Buslin

12、e:tu() cout<<" 湛江公交路線圖 "<<endl; cout<<" 2線 "<<endl; cout<<" "<<endl; cout<<" 東華站 "<<endl; cout<<" "<<endl; cout<<" 灣橋站 潛水運(yùn)動(dòng) 海濱醫(yī)院站 "<<endl; cout<<" 學(xué)校站 海上城市站

13、"<<endl; cout<<"農(nóng)墾醫(yī)院站海濱賓館站 "<<endl; cout<<" "<<endl; cout<<" 啤酒廠站 兒童公園站 市旅游總公司站 "<<endl; cout<<" "<<endl; cout<<" 俱樂(lè)部站 "<<endl; cout<<" 廣州灣站 霞湖醫(yī)院站 "<<endl; c

14、out<<" "<<endl; cout<<" 廣醫(yī)附院站 國(guó)貿(mào)站 建新東路站 霞山汽車運(yùn)輸總站 "<<endl; cout<<" "<<endl; cout<<" 3線 "<<endl; cout<<" 建設(shè)路站 海運(yùn)集團(tuán)公司站 "<<endl; cout<<"世紀(jì)廣場(chǎng)站 人民大道 湛江汽車南站 "<<endl; cout<&

15、lt;" 中巴專線 1線 "<<endl; cout<<" (為換乘站點(diǎn),為普通站點(diǎn)) "<<endl; cout<<endl;void main() string path1pathlen="農(nóng)墾醫(yī)院站","潛水運(yùn)動(dòng)學(xué)校站","海濱賓館站","海上城市站","市旅游總公司站","霞湖醫(yī)院站","海運(yùn)集團(tuán)公司站" string path2pathlen="東華

16、站","灣橋站","農(nóng)墾醫(yī)院站","啤酒廠站","俱樂(lè)部站","廣醫(yī)附院站","國(guó)貿(mào)站","廣州灣站","建新東路站","霞湖醫(yī)院站","霞山汽車運(yùn)輸總站" string path3pathlen="海濱醫(yī)院站","海濱賓館站","兒童公園站","廣州灣站","建設(shè)路站","湛江

17、汽車南站","人民大道中巴專線","世紀(jì)廣場(chǎng)站"Busline a(path1,7);Busline b(path2,11);Busline c(path3,8);a.tu();string sp,fp;begin: cout<<"請(qǐng)輸入出發(fā)點(diǎn):"<<endl;cin>>sp;begin1:cout<<"請(qǐng)輸入終點(diǎn):"<<endl;cin>>fp;int j1=1,jj=1;for(int d=0;d<7;d+)if(sp=pa

18、th1d)j1=2;if(fp=path1d)jj=2;for( d=0;d<11;d+)if(sp=path2d)j1=2;if(fp=path2d)jj=2;for( d=0;d<8;d+)if(sp=path3d)j1=2;if(fp=path3d)jj=2;if(j1=1)cout<<"輸入的出發(fā)點(diǎn)有錯(cuò),請(qǐng)重新輸入:"<<endl;goto begin;if(jj=1)cout<<"輸入的終點(diǎn)點(diǎn)有錯(cuò),請(qǐng)重新輸入:"<<endl;goto begin1;elsefor(int i=0;i&

19、lt;pathlen;i+) for(int k1=0;k1<pathlen;k1+)if(fp=path1k1) if(sp=path1i)a.zhida(i,sp,fp,path1,1);else if(sp!=path1i) if(sp=path2i)cout<<"需要換乘,轉(zhuǎn)程方式為:2路轉(zhuǎn)1路線"<<endl;a.gjhc(i,k1,sp,fp,path1,path2);if(sp=path3i)cout<<"需要換乘,轉(zhuǎn)程方式:3路轉(zhuǎn)1路線"<<endl;a.gjhc(i,k1,sp,fp

20、,path1,path3);else if(fp=path2k1) if(sp=path2i)b.zhida(i,sp,fp,path2,2);else if(sp!=path2i)if(sp=path1i)cout<<"需要換乘,轉(zhuǎn)程方式:1路轉(zhuǎn)2路線"<<endl;b.gjhc(i,k1,sp,fp,path2,path1);else if(sp=path3i)cout<<"需要換乘,轉(zhuǎn)程方式:3路轉(zhuǎn)2路線"<<endl;b.gjhc(i,k1,sp,fp,path2,path3);else if(fp

21、=path3k1) if(sp=path3i)c.zhida(i,sp,fp,path3,3);else if(sp!=path3i)if(sp=path1i)cout<<"轉(zhuǎn)程方式:1路轉(zhuǎn)3路線"<<endl;c.gjhc(i,k1,sp,fp,path3,path1);else if(sp=path2i)cout<<"轉(zhuǎn)程方式:2路轉(zhuǎn)3路線"<<endl;c.gjhc(i,k1,sp,fp,path3,path2); cout<<"n"<<"是否繼續(xù)?繼續(xù)請(qǐng)輸入y或者Y!"<<endl;char t;cin>&

溫馨提示

  • 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)論