數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—機(jī)場(chǎng)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告</p><p><b>  機(jī)場(chǎng)管理系統(tǒng)</b></p><p>  一.機(jī)場(chǎng)管理系統(tǒng)概述</p><p><b>  1 .1項(xiàng)目背景:</b></p><p>  我的課程設(shè)計(jì)選擇了制作一個(gè)機(jī)場(chǎng)管理系統(tǒng),制作周期歷時(shí)將近兩個(gè)月,從C++、數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)的

2、一開始便著手這項(xiàng)工作,完成的作品基本按時(shí)間可以分為兩大塊:第一部分為訂票系統(tǒng),第二部分為停車場(chǎng)管理系統(tǒng)。</p><p><b>  1 .2需求分析:</b></p><p>  訂票系統(tǒng)是基于兩個(gè)線性鏈表(乘客鏈表以及航線鏈表)的一系列操作的實(shí)現(xiàn),業(yè)務(wù)活動(dòng)包括:查詢、添加航線,客票預(yù)訂和辦理退票等。相對(duì)于書上的訂票系統(tǒng),增加了查詢和客票預(yù)訂功能。</p>

3、;<p>  以鏈表來存放航線以及每條航線上的乘客信息,并且實(shí)現(xiàn)一些列關(guān)于鏈表的相關(guān)操作。每條航線涉及的信息有:終點(diǎn)站名、航班號(hào)、飛機(jī)號(hào)、飛行日期(星期幾)、成員定額、機(jī)票價(jià)格、訂票量、已訂票的客戶名單(包括姓名、訂票量、座位號(hào))。</p><p>  停車場(chǎng)管理是基于雙棧(用于構(gòu)造停車場(chǎng))和鏈?zhǔn)疥?duì)列(當(dāng)停車場(chǎng)滿時(shí),用于充當(dāng)便道,停放需要進(jìn)入停車場(chǎng)的車輛)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)進(jìn)行設(shè)計(jì),主要用于專門提供給載

4、有貨物的運(yùn)輸車輛的停放。通過計(jì)時(shí),進(jìn)行收費(fèi),實(shí)現(xiàn)用戶和系統(tǒng)之間的交互式信息傳遞。</p><p>  以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和

5、應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。</p><p>  1 .3系統(tǒng)實(shí)現(xiàn)的操作和功能如下:</p><p>  1.3.1訂票系統(tǒng):</p><p>  1、查詢航線:根據(jù)旅客提出的終點(diǎn)站名輸出下列信息:航班號(hào)、飛機(jī)號(hào)、星期幾飛行、剩余票額等信息。</p><p>  2、承辦訂票業(yè)務(wù):根據(jù)客戶提出的要求(航班號(hào),訂票數(shù)額)查詢?cè)摵桨?/p>

6、的票額情況,若尚有余票,則為客戶辦理訂票手續(xù),輸出座位號(hào),若已經(jīng)滿員或者余票額少于訂票額,則做出相應(yīng)的提示。</p><p>  3、承辦退票業(yè)務(wù):根據(jù)客戶提供的情況(航班以及客戶姓名),為客戶辦理退票手續(xù)</p><p>  1.3.2停車場(chǎng)管理系統(tǒng):</p><p>  1、車輛到達(dá):新來車輛時(shí)如果有空位,按順序?yàn)樵撥嚪峙渫\囄唬?</p><

7、;p>  2、車輛離開:車輛開走時(shí),交納相應(yīng)停車費(fèi)實(shí)現(xiàn)計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn)為:按時(shí)間計(jì)費(fèi),1.5元/每分(車在便道不計(jì)費(fèi));</p><p>  3、打印車場(chǎng)情況:統(tǒng)計(jì)停車場(chǎng)的停車情況。打印停車場(chǎng)內(nèi)所停車輛的信息。</p><p>  1.3.3機(jī)場(chǎng)路徑查詢系統(tǒng):</p><p>  1、顯示機(jī)場(chǎng)地圖信息:在用戶界面繪制機(jī)場(chǎng)重要地點(diǎn)的標(biāo)識(shí)并且用數(shù)字編號(hào)。<

8、/p><p>  2、輸入查詢路徑的起點(diǎn)終點(diǎn)。</p><p>  3、顯示最短路徑:在機(jī)場(chǎng)地圖界面繪制兩點(diǎn)之間最短的路徑。</p><p>  1.4涉及數(shù)據(jù)結(jié)構(gòu)知識(shí)點(diǎn)</p><p>  1.結(jié)構(gòu)體、指針、多個(gè)類與方法的定義與使用。</p><p><b>  2.線性表的定義</b></p

9、><p>  3.線性表的存儲(chǔ)(順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ))。</p><p>  4.線性表的查找、插入、刪除、按條件排序、遍歷。</p><p>  5.棧與隊(duì)列的定義。</p><p>  6.入棧出棧以及入隊(duì)。</p><p><b>  二、概要設(shè)計(jì):</b></p><p>

10、;  2.1系統(tǒng)的結(jié)構(gòu)圖:</p><p>  2.2抽象數(shù)據(jù)類型定義:</p><p><b>  航空訂票管理:</b></p><p>  typedef struct Customer /*航線乘客信息*/</p><p><b>  {</b></p>&

11、lt;p>  char Name[10]; /*姓名*/</p><p>  int Amount; /*定票數(shù)*/</p><p>  int IDinfor; /*個(gè)人信息*/</p><p>  struct Customer *Next;

12、 /*指向下一乘客結(jié)點(diǎn)*/</p><p>  }Customer;</p><p>  typedef struct Flight /*航線信息*/</p><p><b>  {</b></p><p>  char Des_Name[10]; /*終點(diǎn)站名*/

13、</p><p>  char Flight_No[6]; /*航班號(hào)*/</p><p>  char Plane_No[3]; /*飛機(jī)號(hào)*/</p><p>  int Price; /*機(jī)票價(jià)格*/</p><p>  int Week_Day;

14、 /*飛行周日*/</p><p>  int Customer_Amount; /*乘員定額*/</p><p>  int Free_Amount; /*剩余票數(shù)*/</p><p>  Customer *CustName; /*該航班的已定票乘客名單*/ </p&

15、gt;<p>  struct Flight *Next; /*指示下一航線結(jié)點(diǎn)*/</p><p>  }Flight,*PFlight;</p><p>  class Flight_Management</p><p><b>  {</b></p><p><b>  p

16、ublic:</b></p><p>  Flight_Management();</p><p>  Flight_Management(Flight_Management &F);</p><p>  ~Flight_Management();</p><p>  void LinemanageMenu();

17、 //航線管理菜單</p><p>  void Display_Reserve(); //訂票乘客信息顯示</p><p>  void BookingMenu(); //訂票菜單</p><p>  void Line_Add();

18、 //添加航線</p><p>  void Line_Search(); </p><p>  //按航班號(hào)查找航線且打印結(jié)果</p><p>  void Line_See(); //顯示所有航線</p><

19、p>  int Empty_Flight(); //判斷航線是否為空</p><p>  int Find_Line(PFlight L,char *key); //核對(duì)航線是否唯一</p><p>  int Find_Line(PFlight L,char *key,PFlight &p2,int &Fl

20、ight_No);</p><p>  //按航班號(hào)查找航線且返回標(biāo)志</p><p>  int ExitSystem(); //系統(tǒng)退出</p><p>  char Continue(); //詢問是否繼續(xù)</p><p>  void

21、ErrorMess(); //報(bào)告出錯(cuò)</p><p>  void Mainflightmenu(); //航空客運(yùn)訂票系統(tǒng)主菜單</p><p><b>  private:</b></p><p>  int Customer_Count;

22、 /*所有航線的定票乘客總數(shù)*/</p><p>  Flight *Head; /*航線頭指針*/</p><p>  Flight *p2; /*航線結(jié)點(diǎn)指針*/</p><p>  Customer *Custp1[MAX]; /*各條航線乘客結(jié)點(diǎn)指針*/</p&

23、gt;<p>  Customer *Replp1[MAX]; /*各條航線候補(bǔ)結(jié)點(diǎn)指針*/</p><p>  int IsEmpty; /*是否有定票乘客*/</p><p>  Customer *prior; /*滿足要求的定票乘客的前結(jié)點(diǎn)以作刪除操作</p><p> 

24、 void RefundticketMenu();</p><p><b>  };</b></p><p><b>  停車場(chǎng)管理:</b></p><p>  struct Time</p><p><b>  { </b></p><p>  in

25、t hour; </p><p><b>  int min; </b></p><p>  Time& operator=(Time &t);</p><p>  }; /*時(shí)間結(jié)點(diǎn)*/</p><p>  struct Car

26、 /*棧內(nèi)停放車輛結(jié)點(diǎn)*/</p><p><b>  { </b></p><p>  string num;</p><p>  Time reach; </p><p>  Time leave; </p><p><b>  };</b>&l

27、t;/p><p>  struct carNode /*隊(duì)列停放車輛結(jié)點(diǎn)*/</p><p><b>  {</b></p><p>  string num;</p><p>  carNode *link;</p><p>  carNode(string str

28、,carNode *ptr=NULL){num=str;link=ptr;}</p><p><b>  };</b></p><p>  class Parkstack 停車棧</p><p><b>  {</b></p><p><b>  priv

29、ate:</b></p><p>  struct Car *elements;</p><p>  int top; </p><p>  int Maxsize; 棧所能容納的最大停放數(shù)</p><p><b>  public:</b>

30、</p><p>  Parkstack():top(-1),Maxsize(Max)</p><p><b>  {</b></p><p>  elements=new Car[Maxsize];</p><p>  if(elements==NULL) </p><p><b> 

31、 {</b></p><p>  cout<<"內(nèi)存分配失敗"<<endl;exit(1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  ~Parkstack(){delete []ele

32、ments;}</p><p>  void Push(Car x); 車輛入棧</p><p>  bool Pop(Car &x); 車輛出站</p><p>  bool IsEmpty() 判斷車場(chǎng)是否為空</p><p>  {return (top==-1)

33、? true:false;}</p><p>  bool IsFull() 判斷車場(chǎng)是否已經(jīng)停滿</p><p>  {return (top==Maxsize-1)? true:false;}</p><p>  int getSize() const{return (top+1);} 計(jì)算停車場(chǎng)已經(jīng)停放的車輛數(shù)</p>

34、<p>  void MakeEmpty(){top=-1;} 停車場(chǎng)置空</p><p>  friend void Parkpush(); //車輛進(jìn)場(chǎng)。</p><p>  friend void Parkpop(); //車輛出場(chǎng)。</p><p>  friend void Waitpop(); //便道上的車輛進(jìn)入

35、停車場(chǎng);</p><p>  friend void Show(Parkstack &x,Waitqueue &y);</p><p>  //顯示停車場(chǎng)和便道車輛信息。</p><p><b>  };</b></p><p>  class Hchstack</p><p> 

36、 //緩沖棧(該站用于停車場(chǎng)內(nèi)車輛退出時(shí)臨時(shí)存放其他車輛,具體定義與停車?;鞠嗤?lt;/p><p><b>  {</b></p><p><b>  private:</b></p><p>  struct Car *elements;</p><p><b>  int top;&

37、lt;/b></p><p>  int Maxsize;</p><p><b>  public:</b></p><p>  Hchstack():top(-1),Maxsize(Max)</p><p><b>  {</b></p><p>  element

38、s=new Car[Maxsize];</p><p>  if(elements==NULL) </p><p>  {cout<<"內(nèi)存分配失敗"<<endl;exit(1);}</p><p><b>  }</b></p><p>  ~Hchstack(){delet

39、e []elements;}</p><p>  void Push(Car x);</p><p>  bool Pop(Car &x);</p><p>  bool IsEmpty() {return (top==-1)? true:false;}</p><p>  bool IsFull(){return (top==Max

40、size-1)? true:false;}</p><p>  int getSize() const{return (top+1);}</p><p>  void MakeEmpty(){top=-1;}</p><p>  friend void Parkpop();//車輛出場(chǎng)。</p><p><b>  };</b

41、></p><p>  class Waitqueue//便道.無頭結(jié)點(diǎn)的鏈?zhǔn)疥?duì)列、</p><p><b>  {</b></p><p><b>  private:</b></p><p>  carNode *front,*rear;</p><p><b

42、>  public:</b></p><p>  Waitqueue():rear(),front(){};</p><p>  ~Waitqueue();</p><p>  bool EnQueue(Car x); 車輛入隊(duì)</p><p>  bool DeQueue(Car &x); 車

43、輛出隊(duì)</p><p>  bool IsEmpty() {return (front==NULL)? true:false;}</p><p>  int getSize(); 獲得隊(duì)列中停放車輛數(shù)目</p><p>  friend void Parkpush(); //車輛進(jìn)場(chǎng)。</p><p>  fri

44、end void Show(Parkstack &x,Waitqueue &y);//打印停車場(chǎng)信息函數(shù)。</p><p>  friend void Waitpop(); //便道上的車輛進(jìn)入停車場(chǎng);</p><p><b>  };</b></p><p><b>  2.3 文件結(jié)構(gòu):</b>&

45、lt;/p><p>  航空訂票管理:ticket.cpp</p><p>  停車場(chǎng)管理: 停車場(chǎng).h,停車場(chǎng).cpp</p><p><b>  三、詳細(xì)設(shè)計(jì):</b></p><p>  3.1系統(tǒng)的模塊劃分</p><p><b>  3.2 E-R圖:</b></

46、p><p><b>  四、系統(tǒng)的實(shí)現(xiàn):</b></p><p>  4.1 系統(tǒng)關(guān)鍵算法</p><p>  4.1.1對(duì)于航空訂票管理有以下主要的方法實(shí)現(xiàn):</p><p>  因?yàn)轫?yè)數(shù)的限制,再者航空訂票系統(tǒng)書上已經(jīng)有程序,雖然有增加內(nèi)容,但是為了節(jié)省空間,所以這里只列出的函數(shù),沒有寫出具體的程序,看程序可以看源程序。

47、</p><p>  1./*-----------------航線添加函數(shù)-------------*/</p><p>  void Flight_Management::Line_Add()</p><p>  2. /*---------------訂票辦理函數(shù)---------------*/</p><p>  void Flig

48、ht_Management::BookingMenu()</p><p>  3. /*-----------------退票辦理函數(shù)-----------------*/</p><p>  void Flight_Management::RefundticketMenu()</p><p>  4. /*--------------航線查找函數(shù)---------

49、----*/</p><p>  /*Find_Line()為重載函數(shù)*/</p><p>  5. /*---------------航班查找函數(shù)---------------*/</p><p>  void Flight_Management::Line_Search()</p><p>  6./*-----------------訂

50、票乘客信息-----------------*/</p><p>  void Flight_Management::Display_Reserve()</p><p>  4.1.2對(duì)于停車場(chǎng)管理系統(tǒng)有四個(gè)主要的函數(shù):</p><p>  1.車輛到達(dá)時(shí),用于進(jìn)行對(duì)車輛的操作,程序代碼如下:</p><p>  void Parkpush(

51、)//車輛進(jìn)場(chǎng)。</p><p><b>  {</b></p><p>  bool gauge=true;</p><p>  cout<<"歡迎光臨!\n請(qǐng)輸入車牌號(hào):(十位以內(nèi))"<<endl;</p><p>  cin>>c.num;</p>

52、<p>  for(int i=0;i<=P.top;i++)//不讓車輛重復(fù)進(jìn)場(chǎng)</p><p><b>  {</b></p><p>  if(c.num==P.elements[i].num) </p><p><b>  {</b></p><p>  cout<

53、<"停車場(chǎng)中已經(jīng)有這輛車,不能重復(fù)進(jìn)場(chǎng)。"<<endl;gauge=false;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(gauge)</b></p><p><

54、;b>  {</b></p><p>  if(!P.IsFull())//場(chǎng)不滿時(shí),車輛進(jìn)場(chǎng),初始化進(jìn)場(chǎng)時(shí)間</p><p><b>  {</b></p><p>  P.Push(c);</p><p>  cout<<"請(qǐng)輸入進(jìn)場(chǎng)時(shí)間。"<<endl;

55、</p><p>  cin>>P.elements[P.top].reach;</p><p>  cout<<"您的車輛已存入停車場(chǎng),請(qǐng)放心!按任意鍵返回"<<endl;</p><p><b>  getch();</b></p><p><b> 

56、 }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"抱歉。停車場(chǎng)已滿,車輛進(jìn)入便道暫時(shí)停放。按任意鍵返回"<<endl;</p><p>  W.EnQueue(

57、c);</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  2.當(dāng)便道車輛進(jìn)入停車場(chǎng),程序

58、代碼如下:</p><p>  void Waitpop()//便道上的車輛進(jìn)入停車場(chǎng);</p><p><b>  {</b></p><p>  if(!W.IsEmpty()&&!P.IsFull())</p><p><b>  {</b></p><p&

59、gt;  W.DeQueue(c);</p><p>  cout<<"停車場(chǎng)有空位,牌號(hào)為:"<<c.num<<"的車從便道上進(jìn)入停車場(chǎng)。"<<endl;</p><p>  P.Push(c);</p><p>  cout<<"便道上的車輛進(jìn)入停車場(chǎng),

60、請(qǐng)輸入進(jìn)場(chǎng)時(shí)間。"<<endl;</p><p>  cin>>P.elements[P.top].reach;</p><p>  //P.elements[P.top].reach=time(NULL);</p><p>  cout<<"車輛停放在"<<P.top+1<<

61、"號(hào)車位,按任意鍵返回"<<endl;</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.車輛出場(chǎng),代碼如下:</p>&l

62、t;p>  void Parkpop()//車輛出場(chǎng)。</p><p><b>  {</b></p><p>  if(P.IsEmpty()) cout<<"停車場(chǎng)中沒有車輛存放。"<<endl;</p><p><b>  else</b></p>&l

63、t;p><b>  {</b></p><p><b>  int i=-1;</b></p><p>  string num;</p><p>  cout<<"請(qǐng)輸入出場(chǎng)車輛的車牌號(hào):"<<endl;</p><p><b>  ci

64、n>>num;</b></p><p>  for(int z=0;z<=P.top;z++)</p><p><b>  {</b></p><p>  if(P.elements[z].num==num) </p><p><b>  i=z;</b></p&

65、gt;<p><b>  }</b></p><p>  if(i==-1) cout<<"停車場(chǎng)中沒有這輛車。"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p><

66、;p>  int j=P.top;</p><p>  for(;j>i;j--)//將要出場(chǎng)車前方車輛移動(dòng)到臨時(shí)棧。</p><p><b>  {</b></p><p><b>  P.Pop(c);</b></p><p>  H.Push(c);</p><

67、p><b>  }</b></p><p><b>  P.Pop(c);</b></p><p>  cout<<"請(qǐng)輸入出場(chǎng)時(shí)間。"<<endl;</p><p>  cin>>c.leave;</p><p>  cout<&

68、lt;"應(yīng)繳車費(fèi)"<<money(c.reach,c.leave)<<"元(1.5元/分鐘)"<<endl; </p><p>  while(!H.IsEmpty())//將臨時(shí)棧中的車輛送回停車場(chǎng)。</p><p><b>  {</b></p><p><b

69、>  H.Pop(c);</b></p><p>  P.Push(c);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  Waitpop();

70、</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  4.顯示停車場(chǎng)信息,代碼如下:</p><p>  void Show(Parkstack &x,Waitqueue &y)</p><p>&

71、lt;b>  {</b></p><p>  if(!P.IsEmpty()) </p><p><b>  {</b></p><p>  if(!x.IsFull())</p><p><b>  {</b></p><p>  cout<<

72、"停車場(chǎng)中現(xiàn)有車位"<<Max-x.getSize()<<"個(gè)。"<<endl;</p><p><b>  }</b></p><p>  cout<<"停車場(chǎng)已停車輛有:"<<endl;</p><p>  for(int

73、 i=0; i<=P.top; i++)</p><p><b>  {</b></p><p>  cout<<P.elements[i].num<<" ";</p><p><b>  }</b></p><p>  cout<<e

74、ndl;</p><p><b>  }</b></p><p>  if(x.IsFull()) </p><p><b>  {</b></p><p>  cout<<"停車場(chǎng)已滿,便道上有"<<y.getSize()<<"輛車

75、等候。"<<endl;</p><p><b>  }</b></p><p>  cout<<"按任意鍵返回"<<endl;</p><p><b>  getch();</b></p><p><b>  }</b

76、></p><p>  4.2 系統(tǒng)調(diào)試過程分析:</p><p>  ●當(dāng)系統(tǒng)提示“請(qǐng)輸入航班日期(請(qǐng)輸入1—7)”時(shí),若輸入45,系統(tǒng)沒有提示錯(cuò)誤,按要求系統(tǒng)應(yīng)該顯示“日期輸入有誤,請(qǐng)重新輸入”的錯(cuò)誤提示。</p><p>  ●經(jīng)過分析代碼得出錯(cuò)誤原因:在結(jié)構(gòu)體的成員變量的定義中,飛行周日的成員變量</p><p>  Week_

77、Day的類型定義有問題,開始定義的是 char 型,所以在用戶輸入數(shù)據(jù)時(shí)輸入45時(shí),代碼中的判斷語(yǔ)句 if(p2->Week_Day<1||p2->Week_Day>7)不能識(shí)別錯(cuò)誤。</p><p>  ●改正:將Week_Day定義為Int 型變量, </p><p>  原語(yǔ)句中的cin>>p2->Week_Day 改為 cin&

78、gt;>&p2->Week_Day;</p><p>  再次運(yùn)行,該問題得到了解決!</p><p>  ●但是又發(fā)現(xiàn)了新的問題:</p><p>  當(dāng)某航線的票已經(jīng)全部定完后,按要求在乘客信息菜單里會(huì)顯示“票已經(jīng)售完”,但是運(yùn)行時(shí)卻顯示的是“還有剩余的票”。</p><p>  經(jīng)過分析代碼得出錯(cuò)誤原因:</p

79、><p>  在訂票乘客信息的函數(shù)Display_Reserve()中的有關(guān)票是否售完的條件語(yǔ)句有問題</p><p>  原來的這段代碼如下:</p><p>  while(p2!=NULL)</p><p><b>  { </b></p><p>  Cout<<p2-&

80、gt;Name<<p1->Flight_No<<p1->Plane_No<<p2->Amount<<p1->Des_Name<<p2->IDinfor;</p><p>  if(p2->Amount >=1)</p><p>  cout<<"還有多余的票!\n&q

81、uot;;</p><p><b>  else</b></p><p>  cout<<"票已售完!\n"; </p><p>  p2=p2->Next; </p><p><b>  }</b></p><p>  其中的有關(guān)票是否

82、售完的條件語(yǔ)句:if(p2->Amount>=1)中的指針p2錯(cuò)誤,</p><p>  p2是乘客信息節(jié)點(diǎn)的指針,p2->Amount表示乘客的訂票數(shù)。</p><p>  應(yīng)把該條件語(yǔ)句改為if( p1->Free_Amount>=1)</p><p>  p1是航線節(jié)點(diǎn)指針,p1->Free_Amount表示剩余票的數(shù)量&l

83、t;/p><p>  4.3系統(tǒng)運(yùn)行界面賞析:</p><p>  航空訂票系統(tǒng)如圖所示:</p><p><b>  添加航線界面:</b></p><p><b>  查看航線界面:</b></p><p><b>  查詢航線界面:</b></p

84、><p><b>  訂票界面:</b></p><p><b>  退票辦理菜單:</b></p><p><b>  停車場(chǎng)系統(tǒng)主界面:</b></p><p><b>  車輛進(jìn)站界面:</b></p><p>  打印停車場(chǎng)信息

85、界面:</p><p>  車輛出站且便道上的車輛入站:</p><p><b>  五.系統(tǒng)評(píng)價(jià)</b></p><p><b>  5.1系統(tǒng)的特點(diǎn)</b></p><p>  本機(jī)場(chǎng)管理系統(tǒng)覆蓋知識(shí)面較廣,基本涵蓋了c++ 所有的知識(shí)點(diǎn),尤其是對(duì)c++ 類和結(jié)構(gòu)體,以及指針方面進(jìn)行了充分的應(yīng)用

86、。同時(shí)體系結(jié)構(gòu)所采用的線性表以及相關(guān)操作廣泛涉及了數(shù)據(jù)結(jié)構(gòu)的知識(shí)。并且雖然書上已經(jīng)有了航空售票系統(tǒng),但是我在書上的基礎(chǔ)上對(duì)系統(tǒng)有了完善和改進(jìn),增加了一些功能,再加上停車場(chǎng)管理系統(tǒng),完善了機(jī)場(chǎng)的知識(shí)。</p><p><b>  5.2系統(tǒng)的缺點(diǎn)</b></p><p>  由于是第一次做這樣大型的程序,雖然付出了很大的努力,但是最終的作品依然是漏洞百出,問題多多。在這

87、里全面反思一下自己的問題:</p><p>  1.在程序中,很難對(duì)數(shù)據(jù)的輸入做出嚴(yán)格的要求限制,因此當(dāng)輸入錯(cuò)誤的數(shù)據(jù)時(shí),程序會(huì)發(fā)生各種各樣意想不到的結(jié)果。</p><p>  2.沒有用到數(shù)據(jù)庫(kù)的相關(guān)知識(shí),所有輸入的數(shù)據(jù)只能臨時(shí)保存在內(nèi)存中間,一旦程序關(guān)閉以后便完全釋放。這給程序的調(diào)試以及使用都帶來了極大的不便。</p><p>  3.程序的整體框架不夠規(guī)范,對(duì)

88、數(shù)據(jù)在內(nèi)存中具體的存放狀態(tài)沒有充分理解,析構(gòu)函數(shù)寫的不是很完美,總會(huì)有一些被指針創(chuàng)建的空間不能夠徹底刪除釋放。</p><p><b>  六.課程設(shè)計(jì)總結(jié)</b></p><p>  在這兩個(gè)月的課程設(shè)計(jì)中,我真的感覺受益匪淺。對(duì)于我們這些正在學(xué)習(xí)階段的學(xué)生來說,課程設(shè)計(jì)是我們知識(shí)掌握程度的階段性驗(yàn)證,也是為自己增添項(xiàng)目設(shè)計(jì)經(jīng)驗(yàn)的很好機(jī)會(huì)。</p>&

89、lt;p>  本次設(shè)計(jì)極大的提高了我的自主學(xué)習(xí),自主解決問題的能力,從一開始學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識(shí),到后來在編程過程中所需要的課外知識(shí),還有選擇C++編程而沒有選擇C語(yǔ)言,絕大部分來源于互聯(lián)網(wǎng)上查找資料以及向老師的請(qǐng)教之中。</p><p>  設(shè)計(jì)的最基本的應(yīng)該是扎實(shí)的專業(yè)知識(shí)掌握,如果沒有良好的基本功,就會(huì)在設(shè)計(jì)的過程中遇到很多的麻煩,這些麻煩的根源就是知識(shí)水平的局限性,當(dāng)然在設(shè)計(jì)中深刻的體會(huì)到了這一點(diǎn)。

90、</p><p>  最基礎(chǔ)的指針部分我就感覺到自己掌握的比較不扎實(shí),經(jīng)常出現(xiàn)錯(cuò)誤的使用指針,導(dǎo)致一系列內(nèi)存出錯(cuò)的問題。</p><p>  還有對(duì)編程的總體思路不夠清晰,導(dǎo)致程序中出現(xiàn)了不少死循環(huán)的情況。</p><p>  我還深切體會(huì)到我所學(xué)習(xí)的知識(shí)的局限性,感到時(shí)間的緊迫感,由于沒有數(shù)據(jù)庫(kù)的相關(guān)知識(shí),對(duì)數(shù)據(jù)的輸入存儲(chǔ)造成了相當(dāng)大的不便。</p>

91、<p>  總之這次的課程設(shè)計(jì),使我進(jìn)一步完善了我的數(shù)據(jù)結(jié)構(gòu)知識(shí),我會(huì)不斷的提升自己的專業(yè)知識(shí)水平,相信我會(huì)在自己的計(jì)劃中成就自己。</p><p><b>  七.參考文獻(xiàn):</b></p><p>  [1] 王暉 編著 《精通Visual C++ 6.0》 電子工業(yè)出版社</p><p>  [2] 鄭莉 董淵 張瑞豐

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論