版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 廣東海洋大學(xué)信息學(xué)院</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 目錄</b></p><p> 一、課程設(shè)計(jì)主要內(nèi)容………………………………………P3</p><p> 1.1 概況…………………………………………………………….P3&l
2、t;/p><p> 1.2 主要內(nèi)容……………………………..………………….…P4</p><p> 1.3 開發(fā)環(huán)境和工具………………………………..…………….P4</p><p> 二、功能和結(jié)構(gòu)設(shè)計(jì)………………………………………….P4</p><p> 三、流程圖和算法設(shè)計(jì)……………………………………………P4</p&g
3、t;<p> 四、源程序代碼………………………………………….…..P9</p><p> 五、課程設(shè)計(jì)總結(jié)………………………………………….…..P17</p><p> 5.1 優(yōu)點(diǎn)……………………………………………………P17</p><p> 5.2 缺點(diǎn)……………………………………………………P17</p><p&
4、gt; 5.3 自我總結(jié)……………………………………………P17</p><p> 六、參考資料……………………………………………….…..P18</p><p> 一、課程設(shè)計(jì)主要內(nèi)容</p><p><b> 1.1 概況</b></p><p><b> 名稱:公交換乘系統(tǒng)</b>&
5、lt;/p><p> 用途:交通運(yùn)輸公司、乘客</p><p> 功能:實(shí)現(xiàn)最優(yōu)路線的顯示</p><p><b> 1.2 主要內(nèi)容</b></p><p> 公交換乘在一個(gè)城市的公共交通系統(tǒng)設(shè)計(jì)中占據(jù)著極其重要的地位,公交換乘的過程將直接影響居民出行時(shí)間的長(zhǎng)短,公交換乘的過程如下:指定一起始公交站點(diǎn)與目的公交站點(diǎn)
6、,依據(jù)參考因素,例如:換乘路線的路徑最短、耗費(fèi)時(shí)間最短、所需車資最少等,經(jīng)過分析處理得到可達(dá)目的站點(diǎn)換乘次數(shù)最少的乘車方案,具體可分為: </p><p> ?。?)零次換乘 起始站點(diǎn)和目的站點(diǎn)之間存在可直達(dá)的公交線路,即出行居民無需轉(zhuǎn)乘就可以直接到達(dá)目的站點(diǎn),這也是較為理想的方案。 </p><p> ?。?)一次換乘 起始站點(diǎn)和目的站點(diǎn)之間沒有公交車直接往返,即兩站點(diǎn)之間不存在可直達(dá)的
7、公交線路,則出行居民需要在途經(jīng)的某個(gè)站點(diǎn)下車,然后轉(zhuǎn)乘另一線路公交車才能達(dá)到目的站點(diǎn)。 </p><p> ?。?)多次換乘 在起始站點(diǎn)和目的站點(diǎn)之間沒有可直達(dá)的公交線路,出行居民需要經(jīng)過一次以上的轉(zhuǎn)乘才能達(dá)到目的站點(diǎn),則得到多次換乘方案。多次換乘方案可通過一次換乘的遞歸計(jì)算得到,一般情況下,超過兩次轉(zhuǎn)乘的方案對(duì)于出行居民來說是難以接受的,本課程設(shè)計(jì)只要求計(jì)算零次和一次換乘方案,對(duì)于一次以上的公交換乘不作要求。&
8、lt;/p><p> 下面以圖所示的公交線路圖為例,來看一下公交換乘方案的選擇。</p><p> 在該交通公交線路圖網(wǎng)中共有1線、2線、3線3條公交線路,每條線路各布有若干個(gè)公交站點(diǎn)(與公交線路對(duì)應(yīng)顏色的小圓點(diǎn)標(biāo)示),其中黑色圓點(diǎn)表示換乘站點(diǎn),即不同線路共同經(jīng)過的公交站點(diǎn)。例如,某一居民在灣橋站乘車前往目的站點(diǎn)建新東路站,則該居民可乘坐2線公交車即可直達(dá)目的站點(diǎn),即零次換乘;如果該居民前
9、往目的站點(diǎn)海運(yùn)集團(tuán)公司站,分析該公交線路可知該居民有兩種一次換乘的乘車方案:其一是該居民在灣橋站乘坐2線公車到農(nóng)墾醫(yī)院站,然后再換乘1線公交車直到海運(yùn)集團(tuán)公司站;其二是該居民在灣橋站乘坐2線公車直到霞湖醫(yī)院站,再換乘1線公交車到海運(yùn)集團(tuán)公司站;同理,仿照一次換乘的方法可得到其他多次換乘的乘車方案,用戶可以自行分析。</p><p> 1.3 開發(fā)環(huán)境和工具</p><p> 開發(fā)語言:
10、C++程序設(shè)計(jì)語言</p><p> 開發(fā)軟件:Visual C++ 6.0</p><p><b> 二、功能和結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> 1)輸入出發(fā)點(diǎn):</b></p><p><b> 2)輸入終點(diǎn):</b></p><p&g
11、t;<b> 3)查詢結(jié)果:</b></p><p> 三、流程圖和算法設(shè)計(jì)</p><p> 用戶通過輸入起始站點(diǎn)和終點(diǎn)站來獲取公交線路信息,流程圖如下:</p><p><b> 算法:</b></p><p> ?。?)首先建立3個(gè)一位數(shù)組保存各個(gè)站點(diǎn)信息。具體算法如下:</p&
12、gt;<p> Busline::Busline(string p[],int n) //構(gòu)造函數(shù),初始化公交線路站點(diǎn)信息</p><p><b> { </b></p><p> if(n>pathlen) throw"上溢"; </p><p> for(int i=0;i<pathl
13、en;i++) </p><p><b> { </b></p><p> bus[i]=p[i]; </p><p><b> } </b></p><p><b> } </b></p><p> string path1[path
14、len]={"農(nóng)墾醫(yī)院站","潛水運(yùn)動(dòng)學(xué)校站","海濱賓館站","海上城市站","市旅游總公司站","霞湖醫(yī)院站","海運(yùn)集團(tuán)公司站"}; </p><p> string path2[pathlen]={"東華站","灣橋站",&q
15、uot;農(nóng)墾醫(yī)院站","啤酒廠站","俱樂部站","廣醫(yī)附院站","國(guó)貿(mào)站","廣州灣站","建新東路站","霞湖醫(yī)院站","霞山汽車運(yùn)輸總站"}; </p><p> string path3[pathlen]={"海濱醫(yī)院站&qu
16、ot;,"海濱賓館站","兒童公園站","廣州灣站","建設(shè)路站","湛江汽車南站","人民大道中巴專線","世紀(jì)廣場(chǎng)站"};</p><p> Busline a(path1,7); </p><p> Busline b(path2,11);
17、</p><p> Busline c(path3,8);</p><p> ?。?)判斷乘客是否需要換乘,即起點(diǎn)和終點(diǎn)是否位于同一條公交線上:</p><p> 1)如果可以直達(dá),起點(diǎn)和終點(diǎn)位于同一條公交線上,算法如下:</p><p> void Busline::through(int i,string sp,string fp,
18、string p[],int l) //l為公交專線,i是站點(diǎn)下標(biāo),sp是出發(fā)點(diǎn),fp是終點(diǎn)</p><p><b> {</b></p><p> qd=i; int count1=0,count2=0,sum1=0;//count1,count2用于記錄經(jīng)過的站點(diǎn)數(shù)</p><p> for(int j=0;j<pathle
19、n;j++) </p><p> if(fp==p[j]) </p><p><b> {</b></p><p> cout<<"可以直達(dá),乘坐"<<l<<"號(hào)車!"<<endl; </p><p> if(i<
20、;j) //起點(diǎn)下標(biāo)小于終點(diǎn)下標(biāo) </p><p><b> { </b></p><p> cout<<"該路線為:"<<endl; </p><p> for(int k=i;k<=j-1;k++) </p><p><
21、b> { </b></p><p> cout<<p[k]<<"-->"; </p><p><b> count1++;</b></p><p><b> }</b></p><p> cout<<p[j]
22、;</p><p><b> } </b></p><p> else //起點(diǎn)下標(biāo)大于終點(diǎn)下標(biāo)</p><p><b> {</b></p><p> cout<<"該路線為:"<<endl; </p><p>
23、for(int k=i;k>=j+1;k--) </p><p><b> {</b></p><p> cout<<p[k]<<"-->"; </p><p><b> count2++;</b></p><p><b>
24、; } </b></p><p> cout<<p[j];</p><p><b> }</b></p><p><b> } </b></p><p> sum1=count1+count2+1;//統(tǒng)計(jì)經(jīng)過的站點(diǎn)個(gè)數(shù)</p><p>
25、cout<<endl;</p><p> cout<<"共經(jīng)過站點(diǎn)數(shù)為:";</p><p> cout<<sum1<<endl;</p><p><b> } </b></p><p> 2)如果需要換乘,起點(diǎn)和終點(diǎn)位于不同一條公交線上,若有多
26、種換乘方案,則選取經(jīng)過站點(diǎn)數(shù)最少的方案,即最優(yōu)路線作為輸出,算法如下:</p><p> void Busline::transfer(int i,int j,string sp,string fp,string p1[],string p2[]) </p><p><b> { </b></p><p> qd=i; zd=j;
27、int count1=0,count2=0,count3=0,count4=0;//i是起點(diǎn)下標(biāo),j是終點(diǎn)下標(biāo)</p><p> int sum1=0,sum2=0;</p><p> for(int k=0;k<pathlen;k++) </p><p> for(int h=0;h<pathlen;h++) </p>
28、<p> if(fp==p1[h]&&sp==p2[k]) </p><p><b> { </b></p><p> for(int x=0;x<4;x++) </p><p> for(int l=0;l<pathlen;l++) </p><
29、;p> for(int l1=0;l1<pathlen;l1++) </p><p><b> { </b></p><p> if(a[x]==p2[l]&&a[x]==p1[l1]) //a[x]為換乘前后路線的交點(diǎn)</p><p><b> { </b></p>
30、<p> if(i<=l) //起點(diǎn)下標(biāo)小于交點(diǎn)下標(biāo) </p><p> { cout<<"該路線為:"<<endl; </p><p> for(int y=i;y<l;y++) </p><p><b> { </b>&
31、lt;/p><p> cout<<p2[y]<<"-->"; //輸出換乘之前的站點(diǎn)</p><p> count1++;//統(tǒng)計(jì)站點(diǎn)個(gè)數(shù)</p><p><b> } </b></p><p> if(j<=l1) //終點(diǎn)下標(biāo)小于交點(diǎn)下標(biāo)
32、</p><p><b> { </b></p><p> cout<<a[x]<<endl;</p><p> cout<<"然后在"<<a[x]<<"轉(zhuǎn)乘"<<endl; </p>&l
33、t;p> for(int z=l1;z>j;z--) </p><p><b> { </b></p><p> count2++;//統(tǒng)計(jì)站點(diǎn)個(gè)數(shù)</p><p> cout<<p1[z]<<"-->"; //輸出換乘后的站點(diǎn) </p>&
34、lt;p><b> } </b></p><p> cout<<fp<<endl; //輸出終點(diǎn)</p><p><b> } </b></p><p> else if(j>l1) //終點(diǎn)下標(biāo)大于交點(diǎn)下標(biāo) </p><p><b>
35、; { </b></p><p> cout<<a[x]<<endl; </p><p> cout<<"然后在"<<a[x]<<"轉(zhuǎn)乘"<<endl; </p><p> for(int z=l1;z<j;z++)
36、 </p><p><b> { </b></p><p><b> count2++;</b></p><p> cout<<p1[z]<<"-->"; </p><p><b> } </b>&l
37、t;/p><p> cout<<fp<<endl; </p><p><b> } </b></p><p> sum1=count1+count2+1;//換乘前后總共經(jīng)過的站點(diǎn)數(shù)</p><p> cout<<"共經(jīng)過站點(diǎn)數(shù)為:";</p>&
38、lt;p> cout<<sum1<<endl;</p><p> cout<<"------------------------------------"<<endl;</p><p><b> } </b></p><p> else if(i>
39、l) //起點(diǎn)下標(biāo)大于交點(diǎn)下標(biāo) </p><p><b> { </b></p><p> cout<<"該路線為:"<<endl;</p><p> for(int y=i;y>l;y--) </p><p><b> { &l
40、t;/b></p><p><b> count3++;</b></p><p> cout<<p2[y]<<"-->"; </p><p><b> } </b></p><p> if(j<=l1) //終
41、點(diǎn)下標(biāo)小于交點(diǎn)下標(biāo) </p><p> { cout<<a[x]<<endl;</p><p> cout<<"然后在"<<a[x]<<"轉(zhuǎn)乘"<<endl; </p><p> for(int z=l1;z>j;z--) &l
42、t;/p><p><b> { </b></p><p><b> count4++;</b></p><p> cout<<p1[z]<<"-->"; </p><p><b> } </b></p&
43、gt;<p> cout<<fp<<endl;</p><p><b> } </b></p><p> else if(j>l1) //終點(diǎn)下標(biāo)大于交點(diǎn)下標(biāo)</p><p><b> { </b></p><p> cout<<
44、;a[x]<<endl;</p><p> cout<<"然后在"<<a[x]<<"轉(zhuǎn)乘"<<endl; </p><p> for(int z=l1;z<j;z++) </p><p><b> { </b&g
45、t;</p><p><b> count4++;</b></p><p> cout<<p1[z]<<"-->"; </p><p><b> } </b></p><p> cout<<fp<<endl; <
46、/p><p><b> } </b></p><p> sum2=count3+count4+1;</p><p> cout<<"共經(jīng)過站點(diǎn)數(shù)為:";</p><p> cout<<sum2<<endl;</p><p> cout
47、<<"------------------------------------"<<endl;</p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p&
48、gt;<b> }</b></p><p> if(sum1!=0&&sum2!=0)</p><p><b> {</b></p><p> if(sum1<=sum2)</p><p> cout<<"同一轉(zhuǎn)乘方式下,最優(yōu)路線為:共經(jīng)過站點(diǎn)數(shù)
49、為"<<sum1<<"的路線!"<<endl;</p><p><b> else</b></p><p> cout<<"同一轉(zhuǎn)乘方式下,最優(yōu)路線為:共經(jīng)過站點(diǎn)數(shù)為"<<sum2<<"的路線!"<<endl;}
50、</p><p><b> } </b></p><p><b> 四、源程序代碼</b></p><p> #include<iostream> </p><p> #include<string> </p><p> using nam
51、espace 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ī)院站","廣州灣站","霞湖醫(yī)院站","海濱賓館站"}; //轉(zhuǎn)乘站點(diǎn)<
52、;/p><p> //int const count1=0,count2=0,count3=0,count4=0;</p><p> //int const sum1=0,sum2=0; </p><p> class Busline</p><p><b> {</b></p><p>
53、<b> public:</b></p><p> Busline(string p[],int n); </p><p> void through(int i,string sp,string fp,string p[],int l); </p><p> void transfer(int i,int j,string sp,st
54、ring fp,string p1[],string p2[]); </p><p> void map(); </p><p><b> private: </b></p><p> string bus[pathlen]; </p><p><b> }; </b></p>
55、<p> Busline::Busline(string p[],int n) //構(gòu)造函數(shù),初始化公交線路站點(diǎn)信息</p><p><b> { </b></p><p> if(n>pathlen) throw"上溢"; </p><p> for(int i=0;i<pathlen;i
56、++) </p><p><b> { </b></p><p> bus[i]=p[i]; </p><p><b> } </b></p><p><b> } </b></p><p> void Busline::through
57、(int i,string sp,string fp,string p[],int l) //l為公交專線,i是站點(diǎn)下標(biāo),sp是出發(fā)點(diǎn),fp是終點(diǎn)</p><p><b> {</b></p><p> qd=i; int count1=0,count2=0,sum1=0;</p><p> for(int j=0;j<path
58、len;j++) </p><p> if(fp==p[j]) </p><p><b> {</b></p><p> cout<<"可以直達(dá),乘坐"<<l<<"號(hào)車!"<<endl; </p><p> if(i&
59、lt;j) </p><p><b> { </b></p><p> cout<<"該路線為:"<<endl; </p><p> for(int k=i;k<=j-1;k++) </p><p><b> { &
60、lt;/b></p><p> cout<<p[k]<<"-->"; </p><p><b> count1++;</b></p><p><b> }</b></p><p> cout<<p[j];</p>
61、;<p><b> } </b></p><p><b> else </b></p><p><b> {</b></p><p> cout<<"該路線為:"<<endl; </p><p> for
62、(int k=i;k>=j+1;k--) </p><p><b> {</b></p><p> cout<<p[k]<<"-->"; </p><p><b> count2++;</b></p><p><b>
63、} </b></p><p> cout<<p[j];</p><p><b> }</b></p><p><b> } </b></p><p> sum1=count1+count2+1;</p><p> cout<<en
64、dl;</p><p> cout<<"共經(jīng)過站點(diǎn)數(shù)為:";</p><p> cout<<sum1<<endl;</p><p><b> } </b></p><p> void Busline::transfer(int i,int j,string
65、sp,string fp,string p1[],string p2[]) </p><p><b> { </b></p><p> qd=i; zd=j; int count1=0,count2=0,count3=0,count4=0;</p><p> int sum1=0,sum2=0;</p><p
66、> for(int k=0;k<pathlen;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>
67、for(int x=0;x<4;x++) </p><p> 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]
68、==p2[l]&&a[x]==p1[l1]) </p><p><b> { </b></p><p> if(i<=l) </p><p> { cout<<"該路線為:"<<endl; </p><p> fo
69、r(int y=i;y<l;y++) </p><p><b> { </b></p><p> cout<<p2[y]<<"-->"; </p><p><b> count1++;</b></p><p><
70、;b> } </b></p><p> if(j<=l1) </p><p><b> { </b></p><p> cout<<a[x]<<endl;</p><p> cout<<"然后在"&
71、lt;<a[x]<<"轉(zhuǎn)乘"<<endl; </p><p> for(int z=l1;z>j;z--) </p><p><b> { </b></p><p><b> count2++;</b></p><p
72、> cout<<p1[z]<<"-->"; </p><p><b> } </b></p><p> cout<<fp<<endl;</p><p><b> } </b></p><p> el
73、se if(j>l1) </p><p><b> { </b></p><p> cout<<a[x]<<endl; </p><p> cout<<"然后在"<<a[x]<<"轉(zhuǎn)乘"<<endl
74、; </p><p> for(int z=l1;z<j;z++) </p><p><b> { </b></p><p><b> count2++;</b></p><p> cout<<p1[z]<<"-->";
75、 </p><p><b> } </b></p><p> cout<<fp<<endl; </p><p><b> } </b></p><p> sum1=count1+count2+1;</p><p> cout<&l
76、t;"共經(jīng)過站點(diǎn)數(shù)為:";</p><p> cout<<sum1<<endl;</p><p> cout<<"------------------------------------"<<endl;</p><p><b> } </b>
77、</p><p> else if(i>l) </p><p><b> { </b></p><p> cout<<"該路線為:"<<endl;</p><p> for(int y=i;y>l;y--) </p><
78、;p><b> { </b></p><p><b> count3++;</b></p><p> cout<<p2[y]<<"-->"; </p><p><b> } </b></p><p>
79、; if(j<=l1) </p><p> { cout<<a[x]<<endl;</p><p> cout<<"然后在"<<a[x]<<"轉(zhuǎn)乘"<<endl; </p><p> for(int z=l1;z>
80、;j;z--) </p><p><b> { </b></p><p><b> count4++;</b></p><p> cout<<p1[z]<<"-->"; </p><p><b> } </
81、b></p><p> cout<<fp<<endl;</p><p><b> } </b></p><p> else if(j>l1) </p><p><b> { </b></p><p> cout<<
82、;a[x]<<endl;</p><p> cout<<"然后在"<<a[x]<<"轉(zhuǎn)乘"<<endl; </p><p> for(int z=l1;z<j;z++) </p><p><b> { </b&g
83、t;</p><p><b> count4++;</b></p><p> cout<<p1[z]<<"-->"; </p><p><b> } </b></p><p> cout<<fp<<endl; <
84、/p><p><b> } </b></p><p> sum2=count3+count4+1;</p><p> cout<<"共經(jīng)過站點(diǎn)數(shù)為:";</p><p> cout<<sum2<<endl;</p><p> cout
85、<<"------------------------------------"<<endl;</p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p&
86、gt;<b> }</b></p><p> if(sum1!=0&&sum2!=0)</p><p> {if(sum1<=sum2)</p><p> cout<<"同一轉(zhuǎn)乘方式下,最優(yōu)路線為:共經(jīng)過站點(diǎn)數(shù)為"<<sum1<<"的路線!"
87、;<<endl;</p><p><b> else</b></p><p> cout<<"同一轉(zhuǎn)乘方式下,最優(yōu)路線為:共經(jīng)過站點(diǎn)數(shù)為"<<sum2<<"的路線!"<<endl;}</p><p><b> } </b&
88、gt;</p><p> void Busline::map() { </p><p> cout<<" 湛江公交路線圖 "<<endl; </p><p> cout<<"
89、 2線| "<<endl; </p><p> cout<<" | "<<endl; &
90、lt;/p><p> cout<<" 東華站○ "<<endl; </p><p> cout<<" | |
91、 "<<endl; </p><p> cout<<" 灣橋站○ 潛水運(yùn)動(dòng) ○海濱醫(yī)院站 "<<endl; </p><p> cout<<" | 學(xué)校站
92、 | 海上城市站 "<<endl; </p><p> cout<<" ̄農(nóng)墾醫(yī)院站● ̄ ̄○ ̄ ̄ ̄●海濱賓館站 ̄ ̄ ̄○ ̄ ̄ ̄| "<<endl; </p><p> cout<<"
93、 | | | "<<endl; </p><p> cout<<" 啤酒廠站○ ○兒童公園站 ○市旅游總公司站 "<<endl; </p><p>
94、 cout<<" | | | "<<endl; </p><p> cout<<" 俱樂部站○ | | "
95、;<<endl; </p><p> cout<<" | 廣州|灣站 霞湖|醫(yī)院站 "<<endl; </p><p> cout<<"  ̄○ ̄○ ̄ ̄ ● ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄● ̄ ̄○ ̄ ̄
96、 "<<endl; </p><p> cout<<" 廣醫(yī)附院站 國(guó)貿(mào)站 | 建新東路站 | 霞山汽車運(yùn)輸總站 "<<endl; </p><p> cout<<" |
97、 | "<<endl; </p><p> cout<<" 3線 | | "<<endl; </p><p> cout<<&quo
98、t;  ̄ ̄○ ̄ ̄○ ̄ ̄ ̄○ ̄○建設(shè)路站 ○海運(yùn)集團(tuán)公司站 "<<endl; </p><p> cout<<"世紀(jì)廣場(chǎng)站 人民大道 湛江汽車南站 | "<<endl; </p><p> cout<
99、<" 中巴專線 |1線 "<<endl; </p><p> cout<<" (●為換乘站點(diǎn),○為普通站點(diǎn)) "<<endl; &l
100、t;/p><p> cout<<endl; } </p><p> void main() </p><p><b> { </b></p><p> string path1[pathlen]={"農(nóng)墾醫(yī)院站","潛水運(yùn)動(dòng)學(xué)校站","海濱賓館站&qu
101、ot;,"海上城市站","市旅游總公司站","霞湖醫(yī)院站","海運(yùn)集團(tuán)公司站"}; </p><p> string path2[pathlen]={"東華站","灣橋站","農(nóng)墾醫(yī)院站","啤酒廠站","俱樂部站","廣醫(yī)
102、附院站","國(guó)貿(mào)站","廣州灣站","建新東路站","霞湖醫(yī)院站","霞山汽車運(yùn)輸總站"}; </p><p> string path3[pathlen]={"海濱醫(yī)院站","海濱賓館站","兒童公園站","廣州灣站",&
103、quot;建設(shè)路站","湛江汽車南站","人民大道中巴專線","世紀(jì)廣場(chǎng)站"}; </p><p> Busline a(path1,7); </p><p> Busline b(path2,11); </p><p> Busline c(path3,8); </p>&l
104、t;p> a.map(); </p><p> string sp,fp; </p><p><b> begin:</b></p><p> cout<<"請(qǐng)輸入出發(fā)點(diǎn):"<<endl; </p><p><b> cin>>sp;
105、</b></p><p><b> begin1:</b></p><p> cout<<"請(qǐng)輸入終點(diǎn):"<<endl; </p><p> cin>>fp; </p><p> int j1=1,jj=1; </p><
106、;p> for(int d=0;d<7;d++) </p><p><b> { </b></p><p> if(sp==path1[d]) </p><p><b> j1=2; </b></p><p> if(fp==path1[d]) </p>
107、<p><b> jj=2; </b></p><p><b> } </b></p><p> for( d=0;d<11;d++) </p><p><b> { </b></p><p> if(sp==path2[d]) </
108、p><p><b> j1=2; </b></p><p> if(fp==path2[d]) </p><p><b> jj=2; </b></p><p><b> } </b></p><p> for( d=0;d<8;d
109、++) </p><p><b> { </b></p><p> if(sp==path3[d]) </p><p><b> j1=2; </b></p><p> if(fp==path3[d]) </p><p><b> jj=2;
110、</b></p><p><b> } </b></p><p> if(j1==1) </p><p><b> { </b></p><p> cout<<"輸入的出發(fā)點(diǎn)有錯(cuò),請(qǐng)重新輸入:"<<endl; </p
111、><p> goto begin;</p><p><b> } </b></p><p> if(jj==1) </p><p><b> { </b></p><p> cout<<"輸入的終點(diǎn)點(diǎn)有錯(cuò),請(qǐng)重新輸入:"<
112、<endl; </p><p> goto begin1; </p><p><b> } </b></p><p><b> else </b></p><p> {cout<<"--------------查詢結(jié)果--------------"&l
113、t;<endl;</p><p> for(int i=0;i<pathlen;i++) </p><p><b> { </b></p><p> for(int k1=0;k1<pathlen;k1++) </p><p> if(fp==path1[k1]) <
114、;/p><p><b> { </b></p><p> if(sp==path1[i]) </p><p><b> { </b></p><p> a.through(i,sp,fp,path1,1);</p><p> cout
115、<<endl;break;</p><p><b> } </b></p><p> else if(sp!=path1[i]) </p><p> { </p><p> if(sp==path2[i]) </p><p><b
116、> {</b></p><p> cout<<"需要換乘,轉(zhuǎn)乘方式為:2路轉(zhuǎn)1路線"<<endl; </p><p> a.transfer(i,k1,sp,fp,path1,path2); </p><p> cout<<endl; </p><
117、p><b> } </b></p><p> if(sp==path3[i]) </p><p><b> { </b></p><p> cout<<"需要換乘,轉(zhuǎn)乘方式:3路轉(zhuǎn)1路線"<<endl; </p><
118、;p> a.transfer(i,k1,sp,fp,path1,path3); </p><p> cout<<endl;</p><p><b> } </b></p><p><b> //break;</b></p><p><b> } </b&
119、gt;</p><p><b> } </b></p><p> else if(fp==path2[k1]) </p><p> { </p><p> if(sp==path2[i]) </p><p><b> { </b>
120、;</p><p> b.through(i,sp,fp,path2,2);</p><p> cout<<endl;break;</p><p><b> } </b></p><p> else if(sp!=path2[i]) </p><p><b>
121、 { </b></p><p> if(sp==path1[i])</p><p><b> {</b></p><p> cout<<"需要換乘,轉(zhuǎn)乘方式:1路轉(zhuǎn)2路線"<<endl; </p><p> b.transfer(
122、i,k1,sp,fp,path2,path1);</p><p> cout<<endl;</p><p><b> }</b></p><p> else if(sp==path3[i]) </p><p><b> { </b></p>&l
123、t;p> cout<<"需要換乘,轉(zhuǎn)乘方式:3路轉(zhuǎn)2路線"<<endl; </p><p> b.transfer(i,k1,sp,fp,path2,path3); </p><p> cout<<endl; </p><p><b> } </b><
124、;/p><p><b> // break;</b></p><p><b> }</b></p><p><b> } </b></p><p> else if(fp==path3[k1]) </p><p> { &
125、lt;/p><p> if(sp==path3[i]) </p><p> { </p><p> c.through(i,sp,fp,path3,3); cout<<endl;break;</p><p><b> } </b></p><p> el
126、se if(sp!=path3[i]) </p><p><b> { </b></p><p> if(sp==path1[i]) </p><p><b> { </b></p><p> cout<<"需要換乘,轉(zhuǎn)乘方式:1路轉(zhuǎn)3路線&q
127、uot;<<endl; </p><p> c.transfer(i,k1,sp,fp,path3,path1); </p><p> cout<<endl;</p><p><b> } </b></p><p> else if(sp==path2[i]) &l
128、t;/p><p><b> { </b></p><p> cout<<"需要換乘,轉(zhuǎn)乘方式:2路轉(zhuǎn)3路線"<<endl; </p><p> c.transfer(i,k1,sp,fp,path3,path2);</p><p> cout<
129、<endl;</p><p><b> } </b></p><p><b> //break;</b></p><p><b> } ;</b></p><p><b> }</b></p><p><b&
130、gt; }</b></p><p><b> } </b></p><p> cout<<"\n"<<"是否繼續(xù)?繼續(xù)請(qǐng)輸入y或者Y!"<<endl; </p><p><b> char t; </b></p>
131、<p><b> cin>>t; </b></p><p> if(t=='y'||t=='Y')</p><p><b> {a.map();</b></p><p> goto begin;}</p><p><b>
132、 else</b></p><p> exit(1); }</p><p><b> 五、課程設(shè)計(jì)總結(jié)</b></p><p><b> 5.1 優(yōu)點(diǎn)</b></p><p> 1)路線清晰,簡(jiǎn)單明了;</p><p> 2)查詢出最短路徑,實(shí)用性高等。
133、</p><p><b> 5.2 缺點(diǎn):</b></p><p> 1)本系統(tǒng)為用戶查找出最短到達(dá)目的地的路徑,具有實(shí)用性;</p><p> 2)本系統(tǒng)中僅提供了一次換乘功能,有局限性;</p><p> 3)沒有設(shè)置用戶權(quán)限設(shè)置,安全性不高;</p><p> 4)只有查詢功能,沒
134、有提供路線更新功能等。</p><p><b> 5.3 自我總結(jié)</b></p><p> 通過這次課程設(shè)計(jì),使我學(xué)到了一些以前沒有掌握和一知半解的知識(shí),使我對(duì)數(shù)據(jù)結(jié)構(gòu)算法和C++程序設(shè)計(jì)有了更深層次的認(rèn)識(shí)和理解,只有在通過親身實(shí)踐操作,才能真切的發(fā)現(xiàn)自己的問題,有哪些不懂的,有哪些掌握不太好的,又有哪些之前的理解是錯(cuò)誤或片面的。同時(shí),又有哪些在此過程中做起來是
135、得心應(yīng)手的,在獲得知識(shí)的同時(shí)也獲得一點(diǎn)成就感喜悅感。編程道路上,會(huì)有大大小小的困難,只要不放棄,專心研讀,多方請(qǐng)教交流,終會(huì)克服的。我也清醒認(rèn)識(shí)到,只有自己肯努力,愿意花時(shí)間精力去學(xué)習(xí),就能夠得到我們自己所期望的東西。 最后,在此由衷的感謝那些幫助我的同學(xué),感謝他們的悉心指導(dǎo)和慷慨指教,使我受益良多和我的課程設(shè)計(jì)有了較完善的一面,另外,在交流學(xué)習(xí)中,我們也增進(jìn)了友誼之情,更是可貴。在課程設(shè)計(jì)過程中,收獲知識(shí),提高能力的同時(shí),我也學(xué)到
136、了很多人生的哲理,懂得怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學(xué)習(xí)的過程中,我一定會(huì)把課程設(shè)計(jì)的精神帶到生活中,不畏艱難,勇往直前! </p><p><b> 六、參考資料</b></p><p> 《C++程序設(shè)計(jì)教程與實(shí)驗(yàn)》 清華大學(xué)出版社 </p><p> 《數(shù)
溫馨提示
- 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. 眾賞文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東海洋大學(xué)數(shù)據(jù)庫(kù)原理設(shè)計(jì)課程設(shè)計(jì)
- 廣東海洋大學(xué)精品課程
- 蛤仔-廣東海洋大學(xué)
- powerpoint-廣東海洋大學(xué)農(nóng)學(xué)院廣東海洋
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——公交換乘系統(tǒng)(c++)
- 廣東海洋大學(xué)c語言題庫(kù)
- 廣東海洋大學(xué)聽課評(píng)議表
- 專業(yè)名稱植物病理學(xué)-廣東海洋大學(xué)農(nóng)學(xué)院廣東海洋大學(xué)
- 廣東海洋大學(xué)操作系統(tǒng)歷年考題答案
- 廣東海洋大學(xué)學(xué)年第學(xué)期
- 廣東海洋大學(xué)創(chuàng)新強(qiáng)校工程
- 廣東海洋大學(xué)學(xué)年第學(xué)期
- 廣東海洋大學(xué)水產(chǎn)學(xué)科團(tuán)隊(duì)建設(shè)
- 廣東海洋大學(xué)創(chuàng)新強(qiáng)校工程
- 廣東海洋大學(xué)創(chuàng)新強(qiáng)校工程
- 廣東海洋大學(xué)儀器分析考試答案
- 廣東海洋大學(xué)學(xué)年第學(xué)期
- 廣東海洋大學(xué)創(chuàng)新強(qiáng)校工程
- 廣東海洋大學(xué)液壓重點(diǎn)考題庫(kù)
- 廣東海洋大學(xué)數(shù)字電路試題
評(píng)論
0/150
提交評(píng)論