2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩44頁(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>  《校園導(dǎo)航系統(tǒng)》課程設(shè)計(jì)報(bào)告</p><p><b>  目 錄</b></p><p>  摘要……………………………………………………………….……………….1</p><p>  題目…………………………………………………………….……………….1</p><p>  概要設(shè)計(jì)…………………

2、…………………………………………………….1</p><p>  調(diào)試分析……………………………………………………………………….15</p><p>  參考文獻(xiàn)……………………………………………………………………….15</p><p><b>  題目</b></p><p><b>  校園導(dǎo)航系統(tǒng)&l

3、t;/b></p><p>  設(shè)計(jì)一個(gè)校園導(dǎo)游程序,后臺(tái)操作:</p><p>  1、操作員信息管理如修改密碼等</p><p>  2、能根據(jù)學(xué)校的規(guī)模進(jìn)行添加景點(diǎn)信息、修改景點(diǎn)信息等功能,</p><p>  3、若臨時(shí)有交通管制,能進(jìn)行交通管制的設(shè)置和撤銷(如某某時(shí)間段那條路進(jìn)行那個(gè)方向的交通管制等)</p>&

4、lt;p>  前臺(tái)為來(lái)訪的客人提供各種信息查詢服務(wù):</p><p>  1、設(shè)計(jì)學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示校內(nèi)各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息;以邊表示路徑,存放路徑長(zhǎng)度等相關(guān)信息。</p><p>  2、為來(lái)訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。</p><p>  3、提供途中任意景點(diǎn)問(wèn)路查詢,即求任意兩個(gè)景點(diǎn)間的一條

5、最短的簡(jiǎn)單路徑。</p><p><b>  1.1 需求分析</b></p><p>  設(shè)計(jì)一個(gè)校園導(dǎo)航系統(tǒng),導(dǎo)航系統(tǒng)又分為游客和管理員。要進(jìn)行管理操作還是游客操作由用戶自己選擇</p><p>  管理員的操作:修改景點(diǎn)信息、增加景點(diǎn)信息、交通管制等。</p><p>  游客的操作:查看景點(diǎn)信息和查最短路徑。&

6、lt;/p><p><b>  概要設(shè)計(jì)</b></p><p>  景點(diǎn)的信息由一維數(shù)組存放,景點(diǎn)關(guān)系由二維數(shù)據(jù)來(lái)存放</p><p>  景點(diǎn)的信息和關(guān)系從文件讀取,進(jìn)而初始化</p><p>  typedef struct //保存單個(gè)景點(diǎn)信息的結(jié)構(gòu)體</p><

7、;p><b>  {</b></p><p>  char code[10]; //存放景點(diǎn)代碼</p><p>  char name[20]; //存放景點(diǎn)名稱</p><p>  char instruction[100]; //存放景點(diǎn)簡(jiǎn)介</p>

8、<p>  }ViewPoint;</p><p>  typedef struct //存放景點(diǎn)關(guān)系的二維數(shù)組</p><p><b>  {</b></p><p>  int edges[MAXV][MAXV]; //兩景點(diǎn)間的距離</p><p>  int

9、number; //景點(diǎn)的數(shù)量</p><p>  ViewPoint V[MAXV]; //保存景點(diǎn)信息的結(jié)構(gòu)體數(shù)組</p><p><b>  }MGraph;</b></p><p><b>  2.1 流程圖</b></p><p><

10、;b>  ↓</b></p><p><b>  ↓</b></p><p><b>  ↓</b></p><p><b>  ↓</b></p><p><b>  ↓</b></p><p><b>

11、;  ↓</b></p><p><b>  ↓</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p>  void MainMenu(); 主菜單,寫界面操作的函數(shù)。 </p><p>  void UserMenu(); 游客菜單,判斷是否非法輸入,不會(huì)死循環(huán)。&

12、lt;/p><p>  void Map(); 輸出民大地圖,由于時(shí)間關(guān)系,沒(méi)有畫出。</p><p>  void ViewAsk(); 游客查詢景點(diǎn)函數(shù),讓游客選擇要查詢的景點(diǎn),判斷是否非法輸入,不會(huì)死循環(huán)。</p><p>  void PathAsk(); 問(wèn)路函數(shù),根據(jù)游客的起點(diǎn)和終點(diǎn)給出最短路徑,判斷是否非法輸入,不會(huì)死循環(huán)。</p><

13、p>  void Dijkstra(MGraph G,int v,int i); 迪杰斯特拉函數(shù)求最短路徑</p><p>  void Ppath(MGraph G,int path[],int i,int v); 輸出最短路徑中的景點(diǎn)</p><p>  void Dispath(MGraph G,int dist[],int path[],int s[],int n,int v

14、,int i); 查找最短路徑。</p><p>  void AdminMenu(); 管理員菜單,判斷是否非法輸入,不會(huì)死循環(huán)。</p><p>  void Password(); 密碼函數(shù),管理員需輸入密碼才能進(jìn)入后臺(tái),輸入一次后無(wú)需再輸入。</p><p>  void AdminAlter(); 修改密碼,需要再次輸入密碼。</p><

15、;p>  void ViewAdd(); 增加景點(diǎn),列出已有景點(diǎn),判斷新景點(diǎn)信息是和與已有景點(diǎn)的沖突,如沖突需重新輸入,判斷是否非法輸入,不會(huì)死循環(huán)。</p><p>  void ViewAlter(); 修改景點(diǎn)信息,由于時(shí)間關(guān)系,沒(méi)有判斷新修改的景點(diǎn)信息是否與已有景點(diǎn)信息沖突。若要做次判斷,應(yīng)與增加景點(diǎn)的判斷算法一致。</p><p>  void ControlMenu();

16、 交通管制菜單,判斷是否非法輸入,不會(huì)死循環(huán)。</p><p>  void PathControl(); 路徑管理,可增加路徑和修改路徑,列出已有路徑,根據(jù)用戶的輸入進(jìn)行管理,判斷是否非法輸入,不會(huì)死循環(huán)。但路徑長(zhǎng)度為整型,沒(méi)有判斷,若輸入非整型,則進(jìn)入死循環(huán),一個(gè)大大的BUG,能力有限。</p><p>  void PathDel(); 刪除路徑,列出已有路徑,用戶根據(jù)提示進(jìn)行刪除。

17、判斷是否非法輸入,不會(huì)死循環(huán)。</p><p>  void Read(MGraph &G); 讀取文件。</p><p>  void White(MGraph &G); 保存文件。</p><p><b>  操作界面</b></p><p>  程序一開(kāi)始登錄主界面:</p><

18、p><b>  游客菜單:</b></p><p><b>  管理員界面</b></p><p><b>  管理員界面</b></p><p><b>  管理員操作界面</b></p><p><b>  查詢景點(diǎn)</b>

19、</p><p><b>  查詢最短路徑</b></p><p><b>  修改密碼</b></p><p><b>  增加景點(diǎn)</b></p><p><b>  修改景點(diǎn)信息</b></p><p><b>  

20、交通管制界面</b></p><p><b>  刪除路徑</b></p><p><b>  管理路徑</b></p><p><b>  3 調(diào)試分析:</b></p><p>  當(dāng)進(jìn)入操作界面進(jìn)行功能的選擇,但非法輸入時(shí),應(yīng)該提示錯(cuò)誤并可以讓用戶重新選擇,

21、我使用的接收選擇的是字符串,判斷字符串長(zhǎng)度是否等于1,如果不等于則是錯(cuò)誤的,等于1后用switch判斷第一個(gè)字符,與case比較,調(diào)用相應(yīng)的函數(shù)。用whlie(1),使之一直循環(huán),直到與case中相同,使用標(biāo)志和break;讓他跳出相應(yīng)的循環(huán)層。在這里經(jīng)常會(huì)出錯(cuò),所以要很小心的判斷每個(gè)標(biāo)志跳出的相應(yīng)的循環(huán),使他不會(huì)跳出不該跳出的循環(huán)。</p><p>  另一個(gè)問(wèn)題是最短路徑。在新增一個(gè)景點(diǎn)后,我選擇不添加相鄰的

22、路徑時(shí)(矩陣的行等于列始終為0,表示同一個(gè)景點(diǎn)到同一個(gè)景點(diǎn)的路徑為0),再次查詢最短路徑時(shí),起點(diǎn)為新增的路徑,終點(diǎn)為任何一個(gè)景點(diǎn)都無(wú)法運(yùn)行;但是起點(diǎn)為除新增景點(diǎn)外的景點(diǎn),而終點(diǎn)為新增景點(diǎn)時(shí),可正確輸出:沒(méi)有路徑。由于時(shí)間原因來(lái)不及調(diào)試了。</p><p><b>  參考文獻(xiàn) </b></p><p>  [1]嚴(yán)蔚敏、吳為民.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版).北京:清華大學(xué)出版

23、社.2007</p><p>  [2]林小茶.C語(yǔ)言程序設(shè)計(jì)(第二版).中國(guó)鐵道出版社.2010</p><p>  [3]杜茂康、李昌兵等.C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版).北京:電子工業(yè)出版社.2011 </p><p><b>  附 錄</b></p><p><b>  源程序</b>

24、</p><p>  <All.h>:頭文件詳細(xì)代碼</p><p>  #include<iostream.h></p><p>  #include<iomanip.h></p><p>  #include<fstream.h></p><p>  #include

25、<string.h></p><p>  #include<conio.h></p><p>  #include<stdlib.h></p><p>  #include<stdio.h></p><p>  #define MAXV 100</p><p>  #de

26、fine INF 10000</p><p>  typedef struct</p><p><b>  {</b></p><p>  char code[10];</p><p>  char name[20];</p><p>  char instruction[100];</p&

27、gt;<p>  }ViewPoint;</p><p>  typedef struct</p><p><b>  {</b></p><p>  int edges[MAXV][MAXV];</p><p>  int number;</p><p>  ViewPoint V

28、[MAXV];</p><p><b>  }MGraph;</b></p><p>  void MainMenu();</p><p>  void UserMenu();</p><p>  void Map();</p><p>  void ViewAsk();</p>&

29、lt;p>  void PathAsk();</p><p>  void Dijkstra(MGraph G,int v,int i);</p><p>  void Ppath(MGraph G,int path[],int i,int v);</p><p>  void Dispath(MGraph G,int dist[],int path[],in

30、t s[],int n,int v,int i);</p><p>  void AdminMenu();</p><p>  void Password();</p><p>  void AdminAlter();</p><p>  void ViewAdd();</p><p>  void ViewAlter

31、();</p><p>  void ControlMenu();</p><p>  void PathControl();</p><p>  void PathDel();</p><p>  void Read(MGraph &G);</p><p>  void White(MGraph &G

32、);</p><p>  <Main.cpp>:主函數(shù)</p><p>  #include"All.h"</p><p><b>  main()</b></p><p><b>  {</b></p><p><b>  int

33、pass;</b></p><p>  char name[10],password[10];</p><p>  ifstream indata("Password.txt");</p><p>  indata>>pass>>name>>password;</p><p>

34、;  indata.close();</p><p><b>  pass=0;</b></p><p>  ofstream outdata("Password.txt");</p><p>  outdata<<pass<<endl<<name<<endl<<p

35、assword;</p><p>  outdata.close();</p><p>  MainMenu();</p><p><b>  }</b></p><p>  <Menu.cpp>:菜單功能</p><p>  #include"All.h"<

36、/p><p>  void MainMenu()</p><p><b>  {</b></p><p>  system("cls");</p><p>  char choose[1];</p><p>  cout<<"\n\n\n"<&

37、lt;setw(56)<<"歡迎光臨廣西民族大學(xué),祝您旅途愉快!"<<endl;</p><p>  cout<<setw(55)<<"廣西民族大學(xué)校園導(dǎo)航系統(tǒng)為您服務(wù)!"<<endl;</p><p>  cout<<endl<<setw(45)<<&q

38、uot;1.進(jìn)入導(dǎo)航系統(tǒng)"<<endl;</p><p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(45)<<"2.登錄操作系統(tǒng)"<<endl;</p><p> 

39、 cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(37)<<"3.退出"<<endl;</p><p>  cout<<setw(45)<<"───────"<<e

40、ndl;</p><p>  cout<<endl<<setw(46)<<"請(qǐng)輸入您的選擇:";</p><p>  cin>>choose;</p><p>  if(strlen(choose)==1)</p><p><b>  {</b><

41、/p><p>  switch(choose[0])</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  UserMenu();break;</p><p><b>  case '

42、2':</b></p><p>  Password();break;</p><p><b>  case '3':</b></p><p><b>  exit(0);</b></p><p><b>  default:</b><

43、/p><p>  system("cls");</p><p>  cout<<"\n\n\n"<<endl<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout<<endl<<setw(52)<

44、;<"按任意鍵返回主菜單重新選擇!";</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p>  MainMenu();</p><p><b>  break;</b></p><

45、p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  system("cls");</p>&l

46、t;p>  cout<<"\n\n\n"<<endl<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout<<endl<<setw(52)<<"按任意鍵返回主菜單重新選擇!";</p><p>  co

47、ut<<endl;</p><p><b>  getch();</b></p><p>  MainMenu();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void UserMen

48、u()</p><p><b>  {</b></p><p>  system("cls");</p><p>  char choose[1];</p><p>  int flag=0;</p><p>  cout<<"\n\n\n"&l

49、t;<setw(45)<<"校園導(dǎo)航系統(tǒng)!"<<endl;</p><p>  cout<<endl<<setw(45)<<"1.查看校園地圖"<<endl;</p><p>  cout<<setw(45)<<"───────"

50、<<endl;</p><p>  cout<<setw(45)<<"2.景點(diǎn)信息查詢"<<endl;</p><p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(

51、45)<<"3.景點(diǎn)問(wèn)路查詢"<<endl;</p><p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(43)<<"4.返回主菜單"<<endl;</p>

52、<p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(37)<<"5.退出"<<endl;</p><p>  cout<<setw(45)<<"───────&qu

53、ot;<<endl;</p><p>  cout<<endl<<setw(46)<<"請(qǐng)輸入您的選擇:";</p><p>  cin>>choose;</p><p>  if(strlen(choose)==1)</p><p><b>  {&l

54、t;/b></p><p>  switch(choose[0])</p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  Map();break;</p><p><b>  cas

55、e '2':</b></p><p>  ViewAsk();break;</p><p><b>  case '3':</b></p><p>  PathAsk();break;</p><p><b>  case '4':</b>

56、</p><p>  MainMenu();break;</p><p><b>  case '5':</b></p><p><b>  exit(0);</b></p><p><b>  default:</b></p><p>

57、  system("cls");</p><p>  cout<<"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout<<endl<<setw(49)<<"按任意鍵返回重新選擇!";

58、</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p>  UserMenu();</p><p><b>  }</b></p><p><b>  }</b></p>

59、<p><b>  else</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!"

60、<<endl;</p><p>  cout<<endl<<setw(49)<<"按任意鍵返回重新選擇!";</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p>  UserMen

61、u();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Password()</p><p><b>  {</b></p><p>  system("cls");&l

62、t;/p><p>  char name[10],password[10];</p><p>  char entername[10],enterpassword[10];</p><p>  char choose[1];</p><p>  int pass,flag=0,flag1=0;</p><p>  ifst

63、ream indata("Password.txt");</p><p>  indata>>pass>>name>>password;</p><p>  indata.close();</p><p><b>  if(pass)</b></p><p>  A

64、dminMenu();</p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\n\n\n"<<setw(40)<<"用戶名:";</p><p>  cin

65、>>entername;</p><p>  cout<<endl<<setw(40)<<"密碼:";</p><p>  cin>>enterpassword;</p><p>  if(strcmp(name,entername)==0&&strcmp(passwor

66、d,enterpassword)==0)</p><p><b>  {</b></p><p><b>  pass=1;</b></p><p>  ofstream outdata("Password.txt");</p><p>  outdata<<pass

67、<<endl<<name<<endl<<password;</p><p>  outdata.close();</p><p>  AdminMenu();</p><p><b>  }</b></p><p><b>  else</b><

68、/p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n";</p><p>  cout<<setw(47)<<"用戶名或密碼錯(cuò)誤!"<<

69、endl;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  if(flag1)</b></p><p><b>  {</b></p><p>  syste

70、m("cls");</p><p>  cout<<"\n\n\n";</p><p><b>  }</b></p><p>  cout<<endl<<setw(45)<<"1.重新輸入密碼"<<endl;</p&g

71、t;<p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(43)<<"2.返回主菜單"<<endl;</p><p>  cout<<setw(45)<<"─────

72、──"<<endl;</p><p>  cout<<setw(37)<<"3.退出"<<endl;</p><p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<e

73、ndl<<setw(46)<<"請(qǐng)輸入您的選擇:";</p><p>  cin>>choose;</p><p>  if(strlen(choose)==1)</p><p><b>  {</b></p><p>  switch(choose[0])<

74、/p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  flag=1;Password();break;</p><p><b>  case '2':</b></p><

75、p>  flag=1;MainMenu();break;</p><p><b>  case '3':</b></p><p><b>  exit(0);</b></p><p><b>  default:</b></p><p><b>

76、  flag1=1;</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout<<endl<<

77、;setw(49)<<"按任意鍵返回重新選擇!";</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  if(flag)</b

78、></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  flag

79、1=1;</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout<<endl<<setw(

80、49)<<"按任意鍵返回重新選擇!";</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }</b></p>

81、;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void AdminMenu()</p><p><b>  {</b></p><p&

82、gt;  system("cls");</p><p>  char choose[1];</p><p>  int flag=0;</p><p>  cout<<"\n\n\n"<<setw(45)<<"后臺(tái)操作系統(tǒng)!"<<endl;</p>

83、<p>  cout<<endl<<setw(46)<<"1.操作員信息管理"<<endl;</p><p>  cout<<setw(46)<<"────────"<<endl;</p><p>  cout<<setw(44)<&l

84、t;"2.增加景點(diǎn)信息"<<endl;</p><p>  cout<<setw(46)<<"────────"<<endl;</p><p>  cout<<setw(44)<<"3.修改景點(diǎn)信息"<<endl;</p><p

85、>  cout<<setw(46)<<"────────"<<endl;</p><p>  cout<<setw(44)<<"4.道路交通管制"<<endl;</p><p>  cout<<setw(46)<<"────────&quo

86、t;<<endl;</p><p>  cout<<setw(42)<<"5.返回主菜單"<<endl;</p><p>  cout<<setw(46)<<"────────"<<endl;</p><p>  cout<<set

87、w(36)<<"6.退出"<<endl;</p><p>  cout<<setw(46)<<"────────"<<endl;</p><p>  cout<<endl<<setw(46)<<"請(qǐng)輸入您的選擇:";</p>

88、<p>  cin>>choose;</p><p>  if(strlen(choose)==1)</p><p><b>  {</b></p><p>  switch(choose[0])</p><p><b>  {</b></p><p&g

89、t;<b>  case '1':</b></p><p>  AdminAlter();break;</p><p><b>  case '2':</b></p><p>  ViewAdd();break;</p><p><b>  case 

90、9;3':</b></p><p>  ViewAlter();break;</p><p><b>  case '4':</b></p><p>  ControlMenu();break;</p><p><b>  case '5':</b>

91、;</p><p>  MainMenu();break;</p><p><b>  case '6':</b></p><p><b>  exit(0);</b></p><p><b>  default:</b></p><p>

92、;  system("cls");</p><p>  cout<<"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout<<endl<<setw(49)<<"按任意鍵返回重新選擇!"

93、;</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p>  AdminMenu();</p><p><b>  }</b></p><p><b>  }</b></p&g

94、t;<p><b>  else</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!&quo

95、t;<<endl;</p><p>  cout<<endl<<setw(49)<<"按任意鍵返回重新選擇!";</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p>  Admin

96、Menu();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void ControlMenu()</p><p><b>  {</b></p><p>  system("cls&quo

97、t;);</p><p>  char choose[1];</p><p>  cout<<"\n\n\n"<<setw(45)<<"道路交通管制!"<<endl;</p><p>  cout<<endl<<setw(41)<<"

98、1.管理路徑"<<endl;</p><p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(41)<<"2.刪除路徑"<<endl;</p><p>  cout<

99、;<setw(45)<<"───────"<<endl;</p><p>  cout<<setw(45)<<"3.返回上級(jí)菜單"<<endl;</p><p>  cout<<setw(45)<<"───────"<<endl;

100、</p><p>  cout<<setw(37)<<"4.退出"<<endl;</p><p>  cout<<setw(45)<<"───────"<<endl;</p><p>  cout<<endl<<setw(46)&l

101、t;<"請(qǐng)輸入您的選擇:";</p><p>  cin>>choose;</p><p>  if(strlen(choose)==1)</p><p><b>  {</b></p><p>  switch(choose[0])</p><p><

102、b>  {</b></p><p><b>  case '1':</b></p><p>  PathControl();break;</p><p><b>  case '2':</b></p><p>  PathDel();break;&l

103、t;/p><p><b>  case '3':</b></p><p>  AdminMenu();break;</p><p><b>  case '4':</b></p><p><b>  exit(0);</b></p>&

104、lt;p><b>  default:</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout&l

105、t;<endl<<setw(49)<<"按任意鍵返回重新選擇!";</p><p>  cout<<endl;</p><p><b>  getch();</b></p><p>  ControlMenu();</p><p><b>  }&l

106、t;/b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<&l

107、t;"\n\n\n"<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p>  cout<<endl<<setw(49)<<"按任意鍵返回重新選擇!";</p><p>  cout<<endl;</p><p&g

108、t;<b>  getch();</b></p><p>  ControlMenu();</p><p><b>  }</b></p><p><b>  }</b></p><p>  <User.cpp>:包涵游客用的函數(shù)</p><p&

109、gt;  #include"All.h"</p><p>  void Map()</p><p><b>  {</b></p><p>  system("cls");</p><p>  cout<<"\n\n\n"<<setw(4

110、2)<<"map!"<<endl;</p><p>  cout<<endl<<setw(47)<<"按任意鍵繼續(xù)...";</p><p>  cout<<endl;</p><p><b>  getch();</b></p

111、><p>  UserMenu();</p><p><b>  }</b></p><p>  void ViewAsk()</p><p><b>  {</b></p><p>  system("cls");</p><p>&

112、lt;b>  MGraph G;</b></p><p>  char viewpoint[20];</p><p>  char choose[1];</p><p>  int i,flag=0,flag1=1,flag2=0;</p><p><b>  Read(G);</b></p>

113、;<p>  cout<<"\n\n\n"<<setw(44)<<"民大景點(diǎn):"<<endl<<endl;</p><p>  for(i=0;i<G.number;i++)</p><p>  cout<<setw(34)<<"(&qu

114、ot;<<G.V[i].code<<")"<<G.V[i].name<<endl;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  cout<<endl<<setw(

115、55)<<"請(qǐng)輸入要查詢的景點(diǎn)代碼或名稱:";</p><p>  cin>>viewpoint;</p><p>  for(i=0;i<G.number;i++)</p><p><b>  {</b></p><p>  flag1=1;flag2=0;</p

116、><p>  if(strcmp(G.V[i].code,viewpoint)==0||strcmp(G.V[i].name,viewpoint)==0)</p><p><b>  {</b></p><p><b>  flag1=0;</b></p><p>  cout<<"

117、;\n\n"<<setw(37)<<"代碼"<<":"<<G.V[i].code<<endl;</p><p>  cout<<setw(37)<<"名稱"<<":"<<G.V[i].name<<endl;

118、</p><p>  cout<<setw(37)<<"簡(jiǎn)介"<<":"<<G.V[i].instruction<<endl<<endl;</p><p><b>  while(1)</b></p><p><b>  {

119、</b></p><p>  cout<<setw(48)<<"是否繼續(xù)查詢(Y/N):";</p><p>  cin>>choose;</p><p>  if(strcmp(choose,"Y")==0||strcmp(choose,"y")==0)&l

120、t;/p><p><b>  {</b></p><p>  flag2=1;break;}</p><p>  else if(strcmp(choose,"N")==0||strcmp(choose,"n")==0)</p><p><b>  {</b>&l

121、t;/p><p>  flag=1;UserMenu();break;</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<endl<<setw(43)<<"選擇錯(cuò)誤!"<&l

122、t;endl;</p><p><b>  }//while</b></p><p><b>  }//if</b></p><p>  if(flag2||flag)</p><p><b>  break;</b></p><p><b>

123、  }//for</b></p><p><b>  if(flag1)</b></p><p><b>  {</b></p><p>  cout<<endl<<setw(46)<<"沒(méi)有要查詢的景點(diǎn)!"<<endl;</p>

124、<p><b>  while(1)</b></p><p><b>  {</b></p><p>  cout<<setw(48)<<"是否繼續(xù)查詢(Y/N):";</p><p>  cin>>choose;</p><p>

125、  if(strcmp(choose,"Y")==0||strcmp(choose,"y")==0)</p><p><b>  {</b></p><p><b>  break;}</b></p><p>  else if(strcmp(choose,"N"

126、;)==0||strcmp(choose,"n")==0)</p><p><b>  {</b></p><p>  UserMenu();break;</p><p><b>  }</b></p><p><b>  else</b></p>

127、;<p>  cout<<endl<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p><b>  }//while</b></p><p><b>  }</b></p><p><b>  }</b>

128、</p><p><b>  }</b></p><p>  void PathAsk()</p><p><b>  {</b></p><p>  system("cls");</p><p><b>  MGraph G;</b>

129、;</p><p>  char choose[1];</p><p>  char start[10],end[10];</p><p>  int i,j,flag=0,flag1=1,flag2=0,flag3=1;</p><p><b>  Read(G);</b></p><p>  

130、cout<<"\n\n\n"<<setw(43)<<"民大景點(diǎn):"<<endl<<endl;</p><p>  for(i=0;i<G.number;i++)</p><p>  cout<<setw(34)<<"("<<G.V

131、[i].code<<")"<<G.V[i].name<<endl;</p><p>  cout<<endl<<setw(45)<<"請(qǐng)輸入景點(diǎn)代碼!"<<endl;</p><p><b>  while(1)</b></p>&

132、lt;p><b>  { </b></p><p>  flag=0,flag1=1,flag2=0,flag3=1;</p><p>  cout<<endl<<setw(40)<<"起點(diǎn):";</p><p>  cin>>start;</p>&l

133、t;p>  for(i=0;i<G.number;i++)</p><p><b>  {</b></p><p>  if(strcmp(G.V[i].code,start)==0)</p><p><b>  {</b></p><p><b>  flag1=0;<

134、/b></p><p>  cout<<setw(40)<<"終點(diǎn):";</p><p><b>  cin>>end;</b></p><p>  for(j=0;j<G.number;j++)</p><p><b>  {</b&g

135、t;</p><p>  if(strcmp(G.V[j].code,end)==0)</p><p><b>  {</b></p><p><b>  flag3=0;</b></p><p>  Dijkstra(G,i,j);</p><p><b>  w

136、hile(1)</b></p><p><b>  {</b></p><p>  cout<<setw(48)<<"是否繼續(xù)查詢(Y/N):";</p><p>  cin>>choose;</p><p>  if(strcmp(choose,&qu

137、ot;Y")==0||strcmp(choose,"y")==0)</p><p><b>  {</b></p><p>  flag2=1;break;}</p><p>  else if(strcmp(choose,"N")==0||strcmp(choose,"n"

138、)==0)</p><p><b>  {</b></p><p>  flag=1;UserMenu();break;</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<e

139、ndl<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p><b>  }//while</b></p><p>  if(flag||flag2)</p><p><b>  break;</b></p><p><b&

140、gt;  }</b></p><p>  if(flag||flag2)</p><p><b>  break;</b></p><p><b>  }//for</b></p><p><b>  if(flag3)</b></p><p&g

141、t;<b>  {</b></p><p>  cout<<endl<<setw(44)<<"沒(méi)有該終點(diǎn)!"<<endl;</p><p><b>  while(1)</b></p><p><b>  {</b></p>

142、;<p>  cout<<setw(48)<<"是否繼續(xù)查詢(Y/N):";</p><p>  cin>>choose;</p><p>  if(strcmp(choose,"Y")==0||strcmp(choose,"y")==0)</p><p>

143、<b>  {</b></p><p>  flag2=1;break;}</p><p>  else if(strcmp(choose,"N")==0||strcmp(choose,"n")==0)</p><p><b>  {</b></p><p>

144、;  flag=1;UserMenu();break;</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<endl<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p>

145、<p><b>  }//while</b></p><p><b>  }</b></p><p>  if(flag2||flag)</p><p><b>  break;</b></p><p><b>  }</b></p>

146、;<p>  if(flag||flag2)</p><p><b>  break;</b></p><p><b>  }//for</b></p><p><b>  if(flag1)</b></p><p><b>  {</b>&

147、lt;/p><p>  cout<<endl<<setw(44)<<"沒(méi)有該起點(diǎn)!"<<endl;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  cout<<

148、;setw(48)<<"是否繼續(xù)查詢(Y/N):";</p><p>  cin>>choose;</p><p>  if(strcmp(choose,"Y")==0||strcmp(choose,"y")==0)</p><p><b>  {</b>&l

149、t;/p><p>  flag2=1;break;}</p><p>  else if(strcmp(choose,"N")==0||strcmp(choose,"n")==0)</p><p><b>  {</b></p><p>  flag=1;UserMenu();brea

150、k;</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<endl<<setw(43)<<"選擇錯(cuò)誤!"<<endl;</p><p><b>  }//w

151、hile</b></p><p><b>  }//if</b></p><p><b>  }//while</b></p><p><b>  }</b></p><p>  void Dijkstra(MGraph G,int v,int i2) //v為出

152、發(fā)頂點(diǎn)</p><p><b>  {</b></p><p>  int dist[MAXV],path[MAXV];</p><p>  int s[MAXV];</p><p>  int mindis,i,j,u;</p><p>  for(i=0;i<G.number;i++)&

153、lt;/p><p><b>  {</b></p><p>  dist[i]=G.edges[v][i]; //賦值</p><p><b>  s[i]=0;</b></p><p>  if(G.edges[v][i]<INF)</p><p>  path[i]=

154、v;</p><p><b>  else</b></p><p>  path[i]=-1;</p><p><b>  }</b></p><p><b>  s[v]=1;</b></p><p>  path[v]=0;</p>&

155、lt;p>  for(i=0;i<G.number;i++)</p><p><b>  {</b></p><p>  mindis=INF;</p><p>  for(j=0;j<G.number;j++)</p><p>  if(s[j]==0&&dist[j]<mind

156、is)</p><p><b>  {</b></p><p><b>  u=j;</b></p><p>  mindis=dist[j];</p><p><b>  }</b></p><p><b>  s[u]=1;</b&g

157、t;</p><p>  for(j=0;j<G.number;j++)</p><p>  if(s[j]==0)</p><p>  if(G.edges[u][j]<INF&&dist[u]+G.edges[u][j]<dist[j])</p><p><b>  {</b><

158、;/p><p>  dist[j]=dist[u]+G.edges[u][j];</p><p>  path[j]=u;</p><p><b>  }</b></p><p><b>  }</b></p><p>  Dispath(G,dist,path,s,G.numb

159、er,v,i2);</p><p><b>  }</b></p><p>  void Ppath(MGraph G,int path[],int i,int v)</p><p><b>  {</b></p><p><b>  int k;</b></p>

160、<p>  k=path[i];</p><p><b>  if(k==v)</b></p><p><b>  return;</b></p><p>  Ppath(G,path,k,v);</p><p>  cout<<G.V[k].name<<&quo

161、t;→";</p><p><b>  }</b></p><p>  void Dispath(MGraph G,int dist[],int path[],int s[],int n,int v,int i)</p><p><b>  {</b></p><p>  if(dist[

162、i]!=0)</p><p><b>  {</b></p><p>  if(s[i]==1)</p><p><b>  {</b></p><p>  cout<<endl<<setw(24)<<"從"<<G.V[v].nam

溫馨提示

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