數(shù)據(jù)結(jié)構(gòu)課程設計——公交換乘系統(tǒng)(c++)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計報告</b></p><p><b>  課程設計的主要內(nèi)容</b></p><p>  公交換乘在一個城市的公共交通系統(tǒng)設計中占據(jù)著極其重要的地位,公交換乘的過程將直接影響居民出行時間的長短,公交換乘的過程如下:指定一起始公交站點與目的公交站點,依據(jù)參考因素,例如:換乘路線的路徑最短、耗費時間最短、所需車資

2、最少等,經(jīng)過分析處理得到可達目的站點換乘次數(shù)最少的乘車方案,具體可分為:</p><p> ?。?)零次換乘 起始站點和目的站點之間存在可直達的公交線路,即出行居民無需轉(zhuǎn)乘就可以直接到達目的站點,這也是較為理想的方案。</p><p> ?。?)一次換乘 起始站點和目的站點之間沒有公交車直接往返,即兩站點之間不存在可直達的公交線路,則出行居民需要在途經(jīng)的某個站點下車,然后轉(zhuǎn)乘另一線路公

3、交車才能達到目的站點。</p><p> ?。?)多次換乘 在起始站點和目的站點之間沒有可直達的公交線路,出行居民需要經(jīng)過一次以上的轉(zhuǎn)乘才能達到目的站點,則得到多次換乘方案。多次換乘方案可通過一次換乘的遞歸計算得到,一般情況下,超過兩次轉(zhuǎn)乘的方案對于出行居民來說是難以接受的,本課程設計只要求計算零次和一次換乘方案,對于一次以上的公交換乘不作要求。</p><p><b>  功

4、能和結(jié)構(gòu)設計</b></p><p><b>  1、功能設計</b></p><p>  在這里通過主函數(shù)顯示程序的主頁版,上面是湛江的公交線路圖</p><p>  在這里輸入出發(fā)站點的名字,回車確定!</p><p>  在這里輸入最終站點的名字!</p><p>  輸入錯誤會

5、提醒重新輸入!</p><p>  輸入要查詢的起點和終點</p><p>  0次換乘,輸出查詢結(jié)果:</p><p>  按y或Y,可以繼續(xù)查詢!</p><p>  輸入出發(fā)點和終點,一次換乘的結(jié)果如下:</p><p><b>  2、結(jié)構(gòu)設計</b></p><p&g

6、t;  設計一個實現(xiàn)公交換乘的算法:指定任一起始站點和目的站點,依據(jù)算法得到所有可達目的站點的的公交線路,包括中間站點的換乘方法以及該公交線路所經(jīng)過的公交站點。</p><p>  分析公交站點和公交線路的數(shù)據(jù)屬性,并依據(jù)公交換乘的功能要求,確定算法設計方案;</p><p>  設計公交站點信息以及公交線路信息的存儲結(jié)構(gòu);</p><p>  設計公交換乘算法,并

7、畫出程序流程圖;</p><p>  使用C++程序設計語言編寫實現(xiàn)公交換乘的程序;</p><p><b>  流程圖和算法設計</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;//起點,終點的下標</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<<"可以直達,乘坐"<<l<<"

15、;號車!"<<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ī)院站 "<<endl;</p><p>  cout<<" | 學校站 | 海上城市站 "<<

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ī)附院站 國貿(mào)站 | 建新東路站 | 霞山汽車運輸總站 "<<endl;</p><p>  cout<<" | | "<<endl;</p><p>  cout&

45、lt;<" 3線 | | "<<endl;</p><p>  cout<<"  ̄ ̄○ ̄ ̄○ ̄ ̄ ̄○ ̄○建設路站 ○海運集團公司站 "<<endl;</p>

46、<p>  cout<<"世紀廣場站 人民大道 湛江汽車南站 | "<<endl;</p><p>  cout<<" 中巴專線 |1線 "&l

47、t;<endl;</p><p>  cout<<" (●為換乘站點,○為普通站點) "<<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ī)院站","潛水運動學校站","海濱賓館站","海上城市站","市旅游總公司站","霞

49、湖醫(yī)院站","海運集團公司站"};</p><p>  string path2[pathlen]={"東華站","灣橋站","農(nóng)墾醫(yī)院站","啤酒廠站","俱樂部站","廣醫(yī)附院站","國貿(mào)站","廣州灣站","建

50、新東路站","霞湖醫(yī)院站","霞山汽車運輸總站"};</p><p>  string path3[pathlen]={"海濱醫(yī)院站","海濱賓館站","兒童公園站","廣州灣站","建設路站","湛江汽車南站","人民大道中巴專線&q

51、uot;,"世紀廣場站"};</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<<"請輸入出發(fā)點:"<<endl;</p><p><b>  cin>>sp;</b></p><p><b>  b

53、egin1:</b></p><p>  cout<<"請輸入終點:"<<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ā)點有錯,請重新輸入:"<<endl;</p><p>  goto begin;</p><p><b>  }</b></p>

59、;<p><b>  if(jj==1)</b></p><p><b>  {</b></p><p>  cout<<"輸入的終點點有錯,請重新輸入:"<<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ù)請輸入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>  課程設計總結(jié)</b></p><p>  在這次關(guān)于公交換乘的課程設計中,我了解到了我的不足,如算法的不完善、不細心和耐心不是很好等等。不細心的我在調(diào)試程序時,老是因為某個書寫錯誤導致很多錯誤;對這些錯誤,我不得不花大量的時間去更正,并且還要重復檢查是否出現(xiàn)雷同的錯誤而導致程序不能運行。但是通過這次課程設

77、計,我的這些缺點有些改善。我在寫新的程序時,首先要考慮的深入一點、仔細一點,這樣修改程序的時間就會少很多。并且也不會因為自己不細心而導致浪費時間的情況出現(xiàn)。 </p><p>  通過這次數(shù)據(jù)結(jié)構(gòu)的課程設計,加強了我的動手能力,以及提升了局部和統(tǒng)一考慮問題的思維方式?;仡櫰鸫舜握n程設計,至今我仍感慨頗多,的確,從拿到題目到完成整個編程,從理論到實踐,可以說既辛苦,又受益匪淺,學到很多很多的東西,同時不僅鞏固了以前

78、所學過的知識,而且學到了很多在書本上沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能提高自己的實際動手能力和獨立思考的能力。</p><p>  在設計的過程中遇到很多問題,可以說是困難重重,畢竟是第一次做,難免會遇到各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論