2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩100頁(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、<p><b>  C語(yǔ)言課程設(shè)計(jì)報(bào)告</b></p><p>  題目:交通模擬導(dǎo)航系統(tǒng)</p><p><b>  目 錄</b></p><p><b>  引言3</b></p><p><b>  1.1背景3</b></p&

2、gt;<p><b>  1.2參考資料3</b></p><p><b>  需求分析3</b></p><p><b>  2.1需求分析3</b></p><p><b>  2.2運(yùn)行環(huán)境3</b></p><p><b

3、>  系統(tǒng)設(shè)計(jì)3</b></p><p><b>  3.1模塊劃分3</b></p><p><b>  3.2功能簡(jiǎn)介3</b></p><p><b>  3.3時(shí)間安排3</b></p><p>  3.4程序簡(jiǎn)要流程圖3</p>

4、<p><b>  3.5核心算法3</b></p><p><b>  源代碼3</b></p><p><b>  引言</b></p><p><b>  1.1背景</b></p><p><b>  車載GPS導(dǎo)航儀:

5、</b></p><p>  隨著汽車的普及和道路的建設(shè),城際間的經(jīng)濟(jì)往來(lái)更加頻繁,活動(dòng)的區(qū)域也越來(lái)越大;為了提高生活質(zhì)量,大量的休閑活動(dòng)、探險(xiǎn)活動(dòng)的舉行使我們并不局限在自己認(rèn)識(shí)的一小塊區(qū)域中,不認(rèn)識(shí)道路,找不到目的地的情況也屢有發(fā)生,就此,車載GPS導(dǎo)航儀將會(huì)以合適的價(jià)位走入車主的世界,成為車上的基本裝備。車載GPS導(dǎo)航儀解決方案,其實(shí)是最靈活和最復(fù)雜的,車載GPS導(dǎo)航儀有很多種解決方案可以滿足車載

6、的需要。</p><p>  GPS汽車導(dǎo)航是將GPS和地理信息系統(tǒng)、現(xiàn)代通訊技術(shù)綜合在一起,研制成的一種新型汽車導(dǎo)航定位設(shè)備,具備監(jiān)控、調(diào)度、報(bào)警、遙控熄火和遙控?cái)嘤?、自?dòng)存檔、系統(tǒng)自檢等功能。它可將汽車的任何動(dòng)態(tài)位置隨時(shí)準(zhǔn)確無(wú)誤地顯示在儀器的電子地圖上。導(dǎo)航儀的電子地圖自動(dòng)跟蹤顯示汽車當(dāng)前位置及周邊情況,駕駛員可隨時(shí)在導(dǎo)航儀上查詢周邊一定半徑地區(qū)內(nèi)的地理信息。</p><p>  交通

7、模擬導(dǎo)航系統(tǒng)能夠簡(jiǎn)單地模擬GPS汽車導(dǎo)航系統(tǒng)。在建立一個(gè)簡(jiǎn)單的小型化城市地圖的基礎(chǔ)上,能對(duì)該城市內(nèi)指定的車輛提供導(dǎo)航。</p><p><b>  1.2參考資料</b></p><p>  王士元. C高級(jí)實(shí)用程序設(shè)計(jì). 北京: 清華大學(xué)出版社. 1996</p><p>  周純杰,劉正林等. 標(biāo)準(zhǔn)C語(yǔ)言程序及應(yīng)用. 武漢: 華中科技大學(xué)出

8、版社. 2005</p><p>  姚遠(yuǎn). 高級(jí)C語(yǔ)言程序設(shè)計(jì)技巧與實(shí)例. 北京: 機(jī)械工業(yè)出版社, 1995</p><p>  陳清華, 朱紅. C語(yǔ)言課程設(shè)計(jì). 南京: 東南大學(xué)出版社, 2003</p><p>  潭浩強(qiáng). C語(yǔ)言程序設(shè)計(jì). 北京: 清華大學(xué)出版社, 2000</p><p>  劉振安 ,蘇仕華 . C語(yǔ)言圖形

9、設(shè)計(jì) 北京:人民郵電出版社,1995</p><p>  潘建華 ,衛(wèi)躍文. C語(yǔ)言實(shí)用軟件界面設(shè)計(jì) 西安:西安電子科大出版社,1995</p><p>  鴻健編譯. c語(yǔ)言高級(jí)程序員編程指南 北京:北京希望電腦公司公司,1991 好友指導(dǎo): 彭軍才 程攀 </p><p><b>  需求分析</b></p>&

10、lt;p><b>  2.1需求分析</b></p><p>  由于GPS技術(shù)所具有的全天候、高精度和自動(dòng)測(cè)量的特點(diǎn),作為先進(jìn)的測(cè)量手段和新的生產(chǎn)力,已經(jīng)融入了國(guó)民經(jīng)濟(jì)建設(shè)、國(guó)防建設(shè)和社會(huì)發(fā)展的各個(gè)應(yīng)用領(lǐng)域?! ?lt;/p><p>  隨著冷戰(zhàn)結(jié)束和全球經(jīng)濟(jì)的蓬勃發(fā)展,美國(guó)政府宣布2000年至2006年期間,在保證美國(guó)國(guó)家安全不受威脅的前提下,取消SA政策,GP

11、S民用信號(hào)精度在全球范圍內(nèi)得到改善,利用C/A碼進(jìn)行單點(diǎn)定位的精度由100米提高到20米,這將進(jìn)一步推動(dòng)GPS技術(shù)的應(yīng)用,提高生產(chǎn)力、作業(yè)效率、科學(xué)水平以及人們的生活質(zhì)量,刺激GPS市場(chǎng)的增長(zhǎng)。據(jù)有關(guān)專家預(yù)測(cè),在美國(guó),單單是汽車GPS導(dǎo)航系統(tǒng),2000年后的市場(chǎng)將達(dá)到30億美元,而在我國(guó),汽車導(dǎo)航的市場(chǎng)也將達(dá)到50億元人民幣??梢?jiàn),GPS技術(shù)市場(chǎng)的應(yīng)用前景非??捎^。</p><p>  我們用TC3.0編寫(xiě)的C語(yǔ)

12、言程序來(lái)模擬導(dǎo)航欄儀的各種操作過(guò)程。</p><p>  GPS導(dǎo)航儀的常用功能大致有:</p><p><b>  1.地圖查詢</b></p><p>  可以在操作終端上搜索你要去的目的地位置。</p><p>  可以記錄你常要去的地方的位置信息,并保留下來(lái)。</p><p><b&

13、gt;  2.路線規(guī)劃</b></p><p>  GPS導(dǎo)航系統(tǒng)會(huì)根據(jù)你設(shè)定的起始點(diǎn)和目的地,自動(dòng)規(guī)劃一條線路。</p><p>  規(guī)劃線路可以設(shè)定是否要經(jīng)過(guò)某些途徑點(diǎn)。</p><p><b>  3.自動(dòng)導(dǎo)航   </b></p><p>  語(yǔ)音導(dǎo)航:用提前向駕駛者提供路口轉(zhuǎn)向,導(dǎo)航系統(tǒng)狀況等行車信

14、息,就像一個(gè)懂路的向?qū)Ц嬖V你如何駕車去目的地一樣。導(dǎo)航中最重要的一個(gè)功能,使你無(wú)需觀看操作終端,通過(guò)語(yǔ)音提示就可以安全到達(dá)目的地。   </p><p>  畫(huà)面導(dǎo)航:在操作終端上,會(huì)顯示地圖,以及車子現(xiàn)在的位置,行車速度,目的地的距離,規(guī)劃的路線提示,路口轉(zhuǎn)向提示的行車信息。   </p><p>  因?yàn)樵贒OS環(huán)境下編程模擬,所以只模擬了部分功能,如下:</p><

15、;p>  交通模擬導(dǎo)航系統(tǒng)提供在華科校園內(nèi)導(dǎo)航的功能;</p><p>  進(jìn)入系統(tǒng)后,可選擇進(jìn)行幫助、退出或?qū)Ш剑?lt;/p><p>  選擇退出,則直接退出程序。</p><p>  選擇導(dǎo)航,則進(jìn)入導(dǎo)航界面:選擇路徑(車輛的起始點(diǎn)自動(dòng)讀取上一次所到達(dá)的目的地,選擇終點(diǎn),可以選擇必經(jīng)地),選完路線后系統(tǒng)將會(huì)在地圖上用粗線標(biāo)出路線圖,選擇導(dǎo)航開(kāi)始,進(jìn)入模擬導(dǎo)航

16、模式,用鍵盤控制小車的運(yùn)動(dòng)。過(guò)程中現(xiàn)實(shí)路程和時(shí)間;</p><p>  周邊查詢:選擇位置,就可以顯示出附近的建筑;</p><p>  幫助,則進(jìn)入幫助界面,幫助如何使用導(dǎo)航系統(tǒng);</p><p><b>  直接退出;</b></p><p>  系統(tǒng)會(huì)提前對(duì)即將經(jīng)過(guò)的紅綠燈進(jìn)行提醒</p><p

17、> ?。ㄒ陨蠟槌跗谠O(shè)計(jì)思路)</p><p><b>  2.2運(yùn)行環(huán)境 </b></p><p>  交通模擬導(dǎo)航系統(tǒng)是對(duì)GPS汽車導(dǎo)航系統(tǒng)的模擬,系統(tǒng)的開(kāi)發(fā)基于C語(yǔ)言, 其設(shè)計(jì)環(huán)境要求,是在DOS環(huán)境下用C語(yǔ)言編程實(shí)現(xiàn),使用TC或BC開(kāi)發(fā)軟件,因此,交通模擬導(dǎo)航系統(tǒng)能夠在絕大多數(shù)計(jì)算機(jī)系統(tǒng)上運(yùn)行,包括常見(jiàn)的windows XP操作系統(tǒng)及windows 7 3

18、2位機(jī)上運(yùn)行,但是由于BC在64位的windows 7下無(wú)法運(yùn)行,且BC或TC在windows 7下不能較好地解決全屏問(wèn)題,因而,推薦在windows XP的環(huán)境下測(cè)試運(yùn)行此交通模擬導(dǎo)航系統(tǒng)。</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>  3.1模塊劃分</b></p><p>  圖形界面模塊

19、:主要包括動(dòng)畫(huà),主界面,菜單和地圖,標(biāo)出導(dǎo)航路線。</p><p>  鼠標(biāo)模塊:包括鼠標(biāo)的圖形,鼠標(biāo)狀態(tài)。</p><p>  漢字模塊:漢字輸出。</p><p>  控制模塊:控制小車運(yùn)動(dòng),分為自動(dòng)和手動(dòng)。</p><p>  算法模塊:計(jì)算最優(yōu)路徑,地杰斯特拉算法。</p><p>  文件模塊:保存小車的位置

20、路徑等信息。</p><p><b>  菜單模塊:顯示菜單</b></p><p><b>  主界面功能實(shí)現(xiàn)模塊</b></p><p><b>  3.2功能簡(jiǎn)介</b></p><p>  開(kāi)場(chǎng)動(dòng)畫(huà),顯示“交通模擬導(dǎo)航系統(tǒng) 歡迎使用”,附帶開(kāi)場(chǎng)動(dòng)畫(huà);</p>

21、;<p>  按任意鍵,進(jìn)入主界面,菜單欄顯示“所在地”,“終點(diǎn)選擇”,“導(dǎo)航開(kāi)始”,“查詢”,“幫助”,“退出”選項(xiàng);</p><p>  點(diǎn)擊幫助,進(jìn)入文字說(shuō)明界面,雙擊鼠標(biāo),回到主界面;</p><p>  點(diǎn)擊退出,則退出程序;</p><p>  點(diǎn)擊“查詢”,列出可選地點(diǎn),選擇地點(diǎn)后則顯示選擇地點(diǎn)的信息;</p><p&

22、gt;  點(diǎn)擊“終點(diǎn)選擇”,選擇終點(diǎn),確定終點(diǎn)選擇;</p><p>  點(diǎn)擊導(dǎo)航開(kāi)始,可以選擇手動(dòng)或者自動(dòng)模式,確定模式則進(jìn)入導(dǎo)航界面</p><p>  進(jìn)入導(dǎo)航界面,手動(dòng)控制小車速度、方向、暫停和退出,左邊菜單顯示時(shí)間、速度、距離、下一站和轉(zhuǎn)向等信息</p><p>  如果是自動(dòng)模式,則小車自動(dòng)沿著最優(yōu)路線達(dá)到終點(diǎn)</p><p> 

23、 達(dá)目的地,選擇繼續(xù)或者退出導(dǎo)航。</p><p>  回到這界面可以再次選擇終點(diǎn)重新導(dǎo)航。</p><p><b>  3.3時(shí)間安排</b></p><p>  3.4程序簡(jiǎn)要流程圖</p><p><b>  N</b></p><p><b>  Y<

24、/b></p><p><b>  3.5核心算法</b></p><p><b>  //迪格拉斯算法</b></p><p>  void shortest_path(int beginPointNum,int finishPointNum,double distance[N][N],int n,int path

25、[16])</p><p><b>  {</b></p><p>  POINTSTATE state[N];//定義點(diǎn)的狀態(tài)</p><p><b>  int i,k;</b></p><p>  double min;//最短距離</p><p>  for(

26、i=0;i<n;i++)//初始化所有點(diǎn)的狀態(tài)</p><p><b>  {</b></p><p>  state[i].pre=-1;//前驅(qū)都先為-1</p><p>  state[i].len=INFINITY;</p><p>  state[i].label=0;//0表示沒(méi)有確定,1表

27、示已經(jīng)求出最短路徑</p><p><b>  }</b></p><p>  state[beginPointNum].len=0;</p><p>  state[beginPointNum].label=1;</p><p>  k=beginPointNum;</p><p><b&

28、gt;  do</b></p><p><b>  {</b></p><p>  for(i=0;i<n;i++)//全部點(diǎn)測(cè)試</p><p><b>  {</b></p><p>  if(distance[k][i]!=0&&state[i].label

29、==0) //選出不是點(diǎn)k本身,且還沒(méi)有確定距離的點(diǎn)i</p><p><b>  {</b></p><p>  if(state[k].len+distance[k][i]<state[i].len)//如果點(diǎn)i和點(diǎn)k相鄰</p><p><b>  {</b></p><p>  s

30、tate[i].len=state[k].len+distance[k][i];//點(diǎn)i的len為點(diǎn)k的len加點(diǎn)i和點(diǎn)k的距離</p><p>  state[i].pre=k;//點(diǎn)i的前驅(qū)為點(diǎn)k</p><p><b>  }</b></p><p><b>  }</b></p><p&g

31、t;<b>  }</b></p><p><b>  k=-1;</b></p><p>  min=INFINITY;</p><p>  for(i=0;i<n;i++)//全部檢測(cè)</p><p><b>  {</b></p><p>

32、  if(state[i].label==0&&state[i].len<min)//選出前面改變了len,但是還沒(méi)有計(jì)算最短距離的點(diǎn)i,</p><p><b>  {</b></p><p>  k=i;//求出所有這些點(diǎn)的len最短的點(diǎn)i,i傳給k</p><p>  min=state[i].len;<

33、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  state[k].label=1;//點(diǎn)i和點(diǎn)k相同,且確定k(i)點(diǎn)已經(jīng)求出最短距離</p><p>  }while(k!=finishPointNum);//再次以點(diǎn)i為點(diǎn)k,開(kāi)始尋找,加

34、入,擴(kuò)充,直到k點(diǎn)為終點(diǎn)</p><p><b>  i=0;</b></p><p>  k=finishPointNum;</p><p><b>  do</b></p><p><b>  {</b></p><p>  path[i++]=k;

35、 //path逆序(終點(diǎn)到起點(diǎn))存儲(chǔ)各點(diǎn),</p><p>  k=state[k].pre;</p><p>  }while(k>=0);</p><p>  path[i]=-1;//為了后面方便判斷,最后存儲(chǔ)-1;</p><p><b>  } </b></p><p>

36、<b>  源代碼</b></p><p>  /*********************************head.h**************************************/</p><p>  #include <graphics.h></p><p>  #include <conio.h&

37、gt;</p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #include <dos.h> </p><p>  #include <stdlib.h></p><p>  #incl

38、ude <io.h></p><p>  #include <fcntl.h></p><p>  #include <time.h></p><p>  #include <math.h></p><p>  #include <bios.h></p><p&g

39、t;  #include <mem.h></p><p>  #define key_LEFT 0x4b00</p><p>  #define key_RIGHT 0x4d00</p><p>  #define key_DOWN 0x5000</p><p>  #define key_UP 0x4800&l

40、t;/p><p>  #define key_ESC 0x011b</p><p>  #define key_ENTER 0x1c0d</p><p>  #define key_A 0x1e61</p><p>  #define key_S 0x1f73</p><p>  #define

41、 key_D 0x2064</p><p>  #define key_W 0x1177</p><p>  #define key_SPACE 0x3920</p><p>  #define PI 3.1415</p><p>  #define N 32</p><p&g

42、t;  #define INFINITY 3000</p><p>  #define SPEED1</p><p>  //pcx圖片顯示的定義</p><p>  #define SCREEN_HEIGHT 200</p><p>  #define SCREEN_WIDTH 320</p><p>  #

43、define PALETTE_MASK 0x3c6</p><p>  #define PALETTE_REGISTER_RD 0x3c7</p><p>  #define PALETTE_REGISTER_WR 0x3c8</p><p>  #define PALETTE_DATA 0x3c9</p><p>  #define VGA

44、256 0x13</p><p>  #define TEXT_MODE 0x03</p><p>  typedef struct RGB_color_typ</p><p><b>  {</b></p><p>  unsigned char red;</p><p>  unsigned

45、char green;</p><p>  unsigned char blue;</p><p>  }RGB_color,*RGB_color_ptr;</p><p>  //定義畫(huà)地圖的結(jié)構(gòu)體</p><p>  typedef struct POINT</p><p><b>  { </b&

46、gt;</p><p><b>  double x;</b></p><p><b>  double y;</b></p><p><b>  int num;</b></p><p>  char *notes;</p><p><b>

47、  }POINT;</b></p><p>  typedef struct BUILDING </p><p><b>  {</b></p><p><b>  double x;</b></p><p><b>  double y;</b></

48、p><p><b>  int dx;</b></p><p><b>  int num;</b></p><p>  char *name;</p><p>  char *notes; </p><p>  }BUILDING;</p><p>  

49、typedef struct CAR</p><p><b>  {</b></p><p>  double speed;</p><p>  double angle; //小車轉(zhuǎn)過(guò)的角度</p><p><b>  }CAR;</b></p><p> 

50、 typedef struct ROAD </p><p><b>  {</b></p><p>  double x1;</p><p>  double y1; </p><p>  double x2;</p><p>  double y2; </p><

51、;p><b>  }ROAD;</b></p><p>  typedef struct TREE //定義畫(huà)樹(shù)的結(jié)構(gòu)體</p><p><b>  { </b></p><p><b>  double x;</b></p><p><b>

52、  double y;</b></p><p>  double dx;</p><p>  double dist;</p><p><b>  int num;</b></p><p>  char fangxiang;</p><p><b>  }TREE;</

53、b></p><p>  typedef struct HOUSE</p><p><b>  {</b></p><p><b>  double x;</b></p><p><b>  double y;</b></p><p><b&

54、gt;  int dx;</b></p><p>  int color;</p><p><b>  }HOUSE;</b></p><p>  typedef struct POINTSTATE</p><p><b>  {</b></p><p><

55、b>  int pre;</b></p><p><b>  int len;</b></p><p>  int label;</p><p>  }POINTSTATE;</p><p><b>  //chinese</b></p><p>  voi

56、d out_hz(int x, int y,char *s,int flag,int part,int color);</p><p><b>  //mouse</b></p><p>  void cursor(int x, int y);</p><p>  int initmouse(int xmi, int xma, int ymi

57、, int yma);</p><p>  int readmouse(int *mx, int *my,int *mbutt);</p><p>  void newmouse(int *mx, int*my, int*mbutt);</p><p><b>  //menu</b></p><p>  void m

58、enu_main();</p><p>  void menu_up();</p><p>  void menu_up_1();</p><p>  void auto_menu_left(double myCarSpeed,double *dist,int path[16],POINT allPoint[32],int *path_i,int *flagPath

59、,int *flagOk);</p><p>  void menu_left(double myCarSpeed,double *dist,int path[16],POINT allPoint[32],int *path_i,int *flagPath,int *flagOk);</p><p>  void help_page();</p><p>  voi

60、d zhong_dian(int *pFinishBuilding);</p><p>  void zhong_dian_show();</p><p>  void cha_xun();</p><p>  void cha_xun_show();</p><p>  void cha_xun_information(int i );&l

61、t;/p><p>  void if_start(int *flagStart,int *pFinishBuilding);</p><p>  void mode_select(int *pflagAuto);</p><p>  void shan_shuo(int color,int time,int num);</p><p><b

62、>  //map</b></p><p>  void init_allPoint(POINT allPoint[32]);</p><p>  void init_buildings(BUILDING buildings[15]);</p><p>  void draw_buildings_1(BUILDING *p,double xMapSp

63、eed,double yMapSpeed);</p><p>  void draw_buildings_2(BUILDING *p,double xMapSpeed,double yMapSpeed);</p><p>  void draw_buildings_3(BUILDING *p,double xMapSpeed,double yMapSpeed);</p>&l

64、t;p>  void init_road(ROAD allRoad[17]);</p><p>  void draw_road_shuzhi(ROAD *p,double xMapSpeed,double yMapSpeed);</p><p>  void draw_road_shiping(ROAD *p,double xMapSpeed,double yMapSpeed);&

65、lt;/p><p>  void init_tree(TREE allTree[13]);</p><p>  void draw_tree_y(TREE *p,double xMapSpeed,double yMapSpeed);</p><p>  void draw_tree_x(TREE *p,double xMapSpeed,double yMapSpeed)

66、;</p><p>  void init_house(HOUSE houses[30]);</p><p>  void draw_house(HOUSE *p,double xMapSpeed,double yMapSpeed);</p><p>  void draw_car(CAR *cp);</p><p>  void zhuan

67、_dong(double ang, int *body, int *win, int *head, int *rear, int *L_h_light,int *L_r_light, int *R_h_light,int *R_r_light,int x, int y);</p><p>  void draw_star(int x,int y,int color,int i);</p><

68、p>  void map_2();</p><p>  void draw_map_1(double xMapSpeed,double yMapSpeed,BUILDING buildings[15],ROAD allRoad[17],TREE allTree[13],</p><p>  HOUSE houses[30]);</p><p><b>

69、;  //gps</b></p><p>  void GPS();</p><p>  void init_again(int *flagStart,int *finishBuildingNum,int *flagAuto);</p><p>  void gps_main(int *finishBuildingNum,int flagAtuo);&l

70、t;/p><p>  void mouse_select(int *flagStart, int *pFinishBuilding,int *pflagAuto);</p><p>  void contral_car_map(CAR *cp,int *flagExit);</p><p>  void auto_contral_1(int *flagExit);<

71、;/p><p>  void auto_contral_2(CAR *cp,int path[16],POINT allPoint[32],int *path_i,int *flagPath,BUILDING buildings[15],ROAD allRoad[17],TREE allTree[13],HOUSE houses[30]);</p><p>  void if_zhongdia

72、n();</p><p>  void jisuan_dist(double distance[N][N],int path[16],double *dist);</p><p>  void if_exit(int *flagExit);</p><p>  void if_ok(int finishPointNum,POINT allPoint[32],int

73、*flagOk);</p><p>  void xy_change(POINT allPoint[32],BUILDING buildings[15],ROAD allRoad[17],TREE allTree[13],HOUSE houses[30],double xMap,double yMap);</p><p>  void xy_change_house(HOUSE *p,do

74、uble xMap,double yMap);</p><p>  void xy_change_point(POINT *p,double xMap,double yMap);</p><p>  void xy_change_buildings(BUILDING *b,double xMap,double yMap);</p><p>  void xy_cha

75、nge_road_shuzhi(ROAD *p,double xMap,double yMap);</p><p>  void xy_change_road_shiping(ROAD *p,double xMap,double yMap);</p><p>  void xy_change_tree(TREE *t,double xMap,double yMap);</p>

76、<p>  void point_change_save(POINT allPoint[32],double xMapSpeed,double yMapSpeed);</p><p>  //init_start_end</p><p>  void init_350();</p><p>  void init_480();</p>&

77、lt;p>  void start_page();</p><p>  void start_cartoon();</p><p>  void end_page();</p><p>  void Set_Palette_Register(int index,RGB_color_ptr color);</p><p>  void P

78、CX_Load_Screen(char *filename,int enable_palette);</p><p>  void Set_Video_Mode(int mode);</p><p>  void pcx(char *pcx);</p><p>  void pcx_1(char *pcx);</p><p>  void

79、picture_show_1(int x,int y,int mousekey);</p><p>  void picture_show_2(int i);</p><p>  void show_time();</p><p><b>  //record</b></p><p>  void save_fini

80、sh_building(int finish_building);</p><p>  void get_begin_building(int *p_begin_building);</p><p>  void show_record();</p><p>  //dijkstra</p><p>  void init_point_dis

81、tance(double distance[N][N],POINT allPoint[32]);</p><p>  void init_distance_1(double distance[N][N]);</p><p>  void init_distance_2(POINT point_1,POINT point_2,double distance[N][N]);</p>

82、<p>  void shortest_path(int beginPointNum,int finishPointNum,double distance[N][N],int n,int path[16]);</p><p>  void draw_shortest_path(int path[16],POINT allPoint[32]);</p><p>  void d

83、raw_path(int i,int j,POINT allPoint[32]);</p><p>  /*********************************main.cpp************************************/</p><p>  #include "Head.h"</p><p>  void

84、 main()</p><p><b>  {</b></p><p>  init_480();</p><p>  start_page();</p><p><b>  //主界面</b></p><p>  menu_main();</p><p

85、><b>  //導(dǎo)航界面</b></p><p><b>  GPS();</b></p><p><b>  }</b></p><p>  /**********************init_start_end.cpp*********************************

86、*****/</p><p>  #include "Head.h"</p><p>  //640*350界面初始化</p><p>  void init_350()</p><p><b>  {</b></p><p>  int graphdriver=VGA;&l

87、t;/p><p>  int graphmode=1;</p><p>  initgraph(&graphdriver,&graphmode,"D:\\BORLANDC\\BGI");</p><p><b>  }</b></p><p>  //640*480界面初始化</p

88、><p>  void init_480()</p><p><b>  {</b></p><p>  int graphdriver=DETECT;</p><p>  int graphmode;</p><p>  initgraph(&graphdriver,&graphmo

89、de,"D:\\BORLANDC\\BGI");</p><p><b>  }</b></p><p><b>  //開(kāi)場(chǎng)模塊</b></p><p>  void start_page()</p><p><b>  {</b></p>

90、<p>  start_cartoon();</p><p>  //pcx_1("D:\\BORLANDC\\B\\pcx\\1.pcx");</p><p>  // delay(4000); </p><p><b>  }</b></p><p><b>  //開(kāi)

91、場(chǎng)動(dòng)畫(huà)</b></p><p>  void start_cartoon()</p><p><b>  {</b></p><p>  int x1,y1;</p><p><b>  int j=2;</b></p><p><b>  int r=

92、0;</b></p><p><b>  double i;</b></p><p>  out_hz(240,80,"歡迎進(jìn)入",3,50,YELLOW);</p><p>  out_hz(100,180,"交通模擬導(dǎo)航系統(tǒng)",3,60,YELLOW);</p><p&

93、gt;  out_hz(170,280,"自動(dòng)化六班",1,30,YELLOW);</p><p>  out_hz(330,280,"彭軍才",1,30,YELLOW);</p><p>  out_hz(430,280,"程攀",1,30,YELLOW);</p><p>  out_hz(270,34

94、0,"請(qǐng)按任意鍵進(jìn)入",1,30,YELLOW);</p><p><b>  //顯示動(dòng)畫(huà)</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  for(i=0;i<310;i=i+

95、1,r++)</p><p><b>  {</b></p><p>  if(bioskey(1))</p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b>

96、</p><p>  x1=(int)r*cos(i);</p><p>  y1=(int)r*sin(i);</p><p>  putpixel(320+x1,240+y1,j);</p><p>  putpixel(320+x1+1,240+y1,j);</p><p><b>  delay(7)

97、;</b></p><p><b>  if(j==14)</b></p><p><b>  {</b></p><p><b>  j=1;</b></p><p><b>  }</b></p><p><

98、b>  }</b></p><p><b>  j++;</b></p><p>  for(i=309;i>=0;i--,r--)</p><p><b>  {</b></p><p>  if(bioskey(1))</p><p><b&

99、gt;  {</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  x1=(int)r*cos(i);</p><p>  y1=(int)r*sin(i);</p><p>  putpixel(3

100、20+x1,240+y1,j);</p><p>  putpixel(320+x1+1,240+y1,j);</p><p><b>  delay(2);</b></p><p><b>  if(j==14)</b></p><p><b>  {</b></p&g

101、t;<p><b>  j=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  j++;</b></p><p>  if(bioskey(1))</p>

102、<p><b>  {</b></p><p><b>  break;</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  getch();</b>

103、</p><p><b>  }</b></p><p><b>  //結(jié)束動(dòng)畫(huà)</b></p><p>  void end_page()</p><p><b>  {</b></p><p><b>  int i;</b>

104、</p><p>  int r=220;</p><p><b>  int x,y;</b></p><p>  int x1,y1,x2,y2;</p><p>  int x0=320;</p><p>  int y0=250;</p><p>  clearde

105、vice();</p><p>  setbkcolor(BLACK);</p><p>  setcolor(BLUE);</p><p>  for(i=0;i<=120;i=i+3)</p><p><b>  {</b></p><p>  arc(x0,y0+r,30+i,30+i

106、+3,r);</p><p><b>  }</b></p><p>  x1=(int)(x0-0.866*r)-5;</p><p>  y1=(int)(y0-0.5*r)+11;</p><p>  for(i=0;i<=120;i=i+3)</p><p><b>  {

107、</b></p><p>  arc(x1,y1,-90+i,-90+i+3,r);</p><p><b>  }</b></p><p>  x2=(int)(x0+0.866*r)-11;</p><p>  y2=(int)(y0-0.5*r);</p><p>  for(i

108、=0;i<=120;i=i+3)</p><p><b>  {</b></p><p>  arc(x2,y2,150+i,150+i+3,r);</p><p><b>  }</b></p><p>  out_hz(200-22,80,"謝",3,25,YELLOW

109、);</p><p>  out_hz(400-22,80,"謝",3,25,YELLOW);</p><p>  delay(200);</p><p>  out_hz(200-22,180,"使",3,25,YELLOW);</p><p>  out_hz(400-22,180,"用&

110、quot;,3,25,YELLOW);</p><p>  out_hz(400-22,180,"用",3,25,YELLOW);</p><p>  out_hz(350,400,"自動(dòng)化六班",0,20,YELLOW);</p><p>  out_hz(480,400,"彭軍才",0,20,YELLO

111、W);</p><p>  out_hz(550,400,"程攀",0,20,YELLOW);</p><p>  setcolor(YELLOW);</p><p>  x=(int)(x0-0.866*r)-5;</p><p>  y=(int)(y0-0.5*r)+11;</p><p> 

112、 for(i=0;i<=120;i=i+3)</p><p><b>  {</b></p><p>  if(bioskey(1))</p><p><b>  {</b></p><p><b>  break;</b></p><p><

113、;b>  }</b></p><p>  arc(x,y,-90+i,-90+i+3,r);</p><p>  delay(30);</p><p><b>  }</b></p><p>  x=(int)(x0+0.866*r)-11;</p><p>  y=(int)(

114、y0-0.5*r);</p><p>  for(i=0;i<=120;i=i+3)</p><p><b>  {</b></p><p>  if(bioskey(1))</p><p><b>  {</b></p><p><b>  break;&l

115、t;/b></p><p><b>  }</b></p><p>  arc(x,y,150+i,150+i+3,r);</p><p>  delay(30);</p><p><b>  }</b></p><p>  for(i=0;i<=120;)&l

116、t;/p><p><b>  {</b></p><p>  if(bioskey(1))</p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b></p&g

117、t;<p>  arc(x0,y0+r,30+i,30+i+3,r);</p><p><b>  i=i+3;</b></p><p>  delay(30);</p><p><b>  }</b></p><p>  delay(200);</p><p>

118、;<b>  }</b></p><p><b>  //pcx圖片顯示</b></p><p>  void Set_Palette_Register(int index,RGB_color_ptr color)</p><p><b>  {</b></p><p>  o

119、utp(PALETTE_MASK,0xff);</p><p>  outp(PALETTE_REGISTER_WR,index);</p><p>  outp(PALETTE_DATA,color->red);</p><p>  outp(PALETTE_DATA,color->green);</p><p>  outp(

120、PALETTE_DATA,color->blue);</p><p><b>  }</b></p><p>  void PCX_Load_Screen(char *filename,int enable_palette)</p><p><b>  {</b></p><p>  // t

121、his function loads a pcx file into a picture structure, the actual image</p><p>  // data for the pcx file is decompressed and expanded into a secondary buffer</p><p>  // within the picture str

122、ucture, the separate images can be grabbed from this</p><p>  // buffer later. also the header and palette are loaded</p><p><b>  FILE *fp;</b></p><p>  unsigned char f

123、ar *video_buffer=(char far *)0xA0000000L;</p><p>  int num_bytes,index;</p><p>  unsigned int count;</p><p>  unsigned char data;</p><p>  RGB_color *palette;</p>

124、<p>  palette=(RGB_color *)malloc(256*sizeof(RGB_color));</p><p>  if(palette!=NULL)</p><p><b>  {</b></p><p>  if((fp = fopen(filename,"rb"))!=NULL)<

125、;/p><p><b>  {</b></p><p>  fseek(fp,128L,SEEK_SET);</p><p>  // load the data and decompress into buffer</p><p><b>  count=0;</b></p><p

126、>  while(count<=(unsigned int)SCREEN_WIDTH * SCREEN_HEIGHT)</p><p><b>  {</b></p><p>  // get the first piece of data</p><p>  data = getc(fp);</p><p>

127、;  // is this a rle?</p><p>  if (data>=192 && data<=255)</p><p><b>  {</b></p><p>  // how many bytes in run?</p><p>  num_bytes = data-192;&

128、lt;/p><p>  // get the actual data for the run</p><p>  data = getc(fp);</p><p>  // replicate data in buffer num_bytes times</p><p>  while(num_bytes-->0)</p>

129、<p><b>  {</b></p><p>  // image->buffer[count++] = data;</p><p>  video_buffer[count++]=data;</p><p>  } // end while</p><p>  } // end

130、 if rle</p><p><b>  else</b></p><p><b>  {</b></p><p>  // actual data, just copy it into buffer at next location</p><p>  //image->buffer[co

131、unt++] = data;</p><p>  video_buffer[count++]=data;</p><p>  } // end else not rle</p><p>  } // end while</p><p>  for (index=0; index<256; index++)</p><

132、p><b>  {</b></p><p>  // get the red component</p><p>  palette[index].red = (getc(fp) >> 2);</p><p>  // get the green component</p><p>  palett

133、e[index].green = (getc(fp) >> 2);</p><p>  // get the blue component</p><p>  palette[index].blue = (getc(fp) >> 2);</p><p>  } // end for index</p><p>  f

134、close(fp);</p><p><b>  fp=NULL;</b></p><p>  // change the palette to newly loaded palette if commanded to do so</p><p>  if (enable_palette)</p><p><b&g

溫馨提示

  • 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ù)僅提供信息存儲(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)論