停車場管理系統(tǒng)數(shù)據結構課程設計報告_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  數(shù)據結構課程設計</b></p><p>  題目: 停車場管理系統(tǒng) </p><p>  2012年 4月 19 日</p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p

2、><p><b>  關鍵詞1</b></p><p><b>  1 前言2</b></p><p><b>  2 需求分析3</b></p><p><b>  2.1 范圍3</b></p><p>  2.1.1 標識

3、3</p><p>  2.1.2 系統(tǒng)概述3</p><p>  2.2 需求概述3</p><p>  2.2.1 系統(tǒng)目標3</p><p>  2.2.2 運行環(huán)境4</p><p>  2.2.2.1 設備4</p><p>  2.2.2.2 支持程序4</p&g

4、t;<p>  2.2.3 用戶的特點4</p><p><b>  2.3功能需求4</b></p><p>  2.3.1 系統(tǒng)用例圖5</p><p>  2.4實體關系圖5</p><p><b>  3 概要設計7</b></p><p>&

5、lt;b>  3.1 范圍7</b></p><p>  3.1.1 標識7</p><p>  3.1.2 系統(tǒng)概述7</p><p>  3.2 系統(tǒng)結構7</p><p>  3.3 停車場管理系統(tǒng)界面設計7</p><p>  4 系統(tǒng)詳細設計9</p><p&

6、gt;<b>  4.1 范圍9</b></p><p>  4.1.1 標識9</p><p>  4.1.2 系統(tǒng)概述9</p><p>  4.2 詳細設計說明9</p><p>  4.2.1 登錄界面設計9</p><p><b>  5 測試說明20</b&

7、gt;</p><p><b>  5.1 范圍20</b></p><p>  5.1.1 標識20</p><p>  5.1.2 系統(tǒng)概述20</p><p>  5.2 測試計劃及預期結果20</p><p>  5.3 具體測試情況21</p><p>

8、<b>  7總結25</b></p><p><b>  參考文獻26</b></p><p><b>  致 謝27</b></p><p>  停車場管理系統(tǒng)的設計與開發(fā)</p><p><b>  摘 要</b></p><

9、;p><b>  課程設計目的:</b></p><p>  通過課程設計,加深對《數(shù)據結構》這一課程所學內容的進一步理解與鞏固。</p><p>  通過課程設計,加深對結構化設計思想的理解,能對系統(tǒng)功能進行分析,并設計合理的模塊化結構。</p><p>  通過課程設計,提高程序開發(fā)功能,能運用合理的控制流程編寫清晰高效的程序。<

10、;/p><p>  通過課程設計,訓練C程序調試能力,能將一個中小型各級組織系統(tǒng)聯(lián)調通過。</p><p>  通過課程設計,開發(fā)一個中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過程。</p><p>  通話課程設計,培養(yǎng)分析問題、解決實際問題的能力。</p><p>  實現(xiàn)方法:通過建立棧來模擬停車場,當棧未滿時即停車場內車輛未滿時,就可以停放車輛當停車場滿

11、了后車就得??吭诒愕郎系却?。建立一個隊列來實現(xiàn)隊列的功能,</p><p>  最后根據車輛在停車場停靠的時間來收費,而在便道上??康臅r間里是不收費的。</p><p><b>  系統(tǒng)特點:</b></p><p>  采用一用戶一口令的安全機制,只允許管理員輸入正確密碼,才能正常登錄,提高了系統(tǒng)的安全性。</p><p&

12、gt;<b>  關鍵詞</b></p><p><b>  停車場,棧,隊列。</b></p><p><b>  1 前言</b></p><p><b>  [問題描述]</b></p><p>  設停車場內只有一個可停放n輛汽車的狹長通道,且只有

13、一個大門可供汽車進出。汽車在停車場內按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在車場的最北端),若車場內已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當停車場內某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。試為停車場編制按上

14、述要求進行管理的模擬程序。</p><p><b>  [基本要求]</b></p><p>  以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數(shù)據序列進行模擬管理。每一組輸入數(shù)據包括三個數(shù)據項:汽車“到達”或“離去”信息、汽車牌照號碼及到達或離去的時刻,對每一組輸入數(shù)據進行操作后的輸出數(shù)據為:若是車輛到達,則輸出汽車在停車場內或便道上的停車位置;若是車

15、離去;則輸出汽車在停車場內停留的時間和應交納的費用(在便道上停留的時間不收費)。棧以順序結構實現(xiàn),隊列以鏈表實現(xiàn)。</p><p><b>  [實現(xiàn)提示]</b></p><p>  需另設一個棧,臨時停放為給要離去的汽車讓路而從停車場退出來的汽車,也用順序存儲結構實現(xiàn)。輸入數(shù)據按到達或離去的時刻有序。棧中每個元素表示一輛汽車,包含兩個數(shù)據項:汽車的牌照號碼和進入停

16、車場的時刻。</p><p><b>  2 需求分析</b></p><p><b>  2.1 范圍</b></p><p><b>  2.1.1 標識</b></p><p>  2.1.2 系統(tǒng)概述</p><p>  軟件名稱:停車場管理系統(tǒng)

17、</p><p>  軟件功能:為停車場管理員提供記錄車輛進入,車輛離開,修改車輛停車的單價,當車輛離開時,系統(tǒng)輸出該車輛的信息和應交停車費用的功能。</p><p><b>  用戶:停車場管理員</b></p><p><b>  開發(fā)者:鄭鵬</b></p><p><b>  2.

18、2 需求概述</b></p><p>  2.2.1 系統(tǒng)目標</p><p>  系統(tǒng)的開發(fā)目標是實現(xiàn)一個基于在一個狹長的通道上的,而且只有一個大</p><p>  門可以供車輛進出,并且要實現(xiàn)停車場內某輛車要離開時,在它之后進入停車場的車都必須先退出停車場為它讓路,待其開出停車場后,這些輛再依原來的次序進場的功能的停車場的功能,如在此停車場上實現(xiàn)記

19、錄車輛進入,車輛離開,修改車輛停車的單價,以及查看停車場中停車的狀態(tài)和便道上等待車輛的信息,當車輛離開時,系統(tǒng)輸出該車輛的信息和應交停車費用的功能。</p><p>  2.2.2 運行環(huán)境</p><p>  2.2.2.1 設備</p><p><b>  計算機一臺;</b></p><p>  CPU奔騰系列以上

20、;</p><p>  內存512MB以上。</p><p>  2.2.2.2 支持程序</p><p>  Windows XP,Windows 7,DOS,linux等操作系統(tǒng)同時需要支持VC語言。</p><p>  2.2.3 用戶的特點</p><p>  此系統(tǒng)為停車場系統(tǒng)管理人員專用。</p>

21、;<p><b>  2.3功能需求</b></p><p><b>  系統(tǒng)功能:</b></p><p>  停車場是只有一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內按車輛到達時間的先后順序,依次由北向南排列(大門在最南端,最先到達的第一輛車停放在車場的最北端),若車場內已停滿n輛汽車,則后來的汽車只

22、能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當停車場內某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進入車場,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用。</p><p><b>  用戶功能</b></p><p>  記錄車輛進入,車輛離開,修改車輛停車的單價,當車輛離

23、開時,操作系統(tǒng)輸出該車輛的信息和應交停車費用。</p><p>  2.3.1 系統(tǒng)用例圖</p><p>  系統(tǒng)整體用例圖,系統(tǒng)適用于停車場管理員。</p><p><b>  2.3.2用戶登陸</b></p><p>  用戶登陸:停車場管理員要使用本系統(tǒng)就必須先登錄,登錄部分要有完善的驗證機制與防盜機制。<

24、;/p><p><b>  2.4實體關系圖</b></p><p>  1.系統(tǒng)用到實體的關系圖,如某系統(tǒng)有車輛信息,車輛的實體圖如下:</p><p><b>  2.系統(tǒng)E-R圖</b></p><p>  車輛到達信息

25、 車輛離開信息</p><p>  記錄 查看 </p><p><b>  管理員</b></p><p>  修改 </p><p><b>  停車場單價</b></p><p&

26、gt;<b>  3 概要設計</b></p><p><b>  3.1 范圍</b></p><p><b>  3.1.1 標識</b></p><p>  3.1.2 系統(tǒng)概述</p><p>  軟件名稱:停車場管理系統(tǒng)。</p><p>  

27、軟件功能:為停車場管理員提供記錄車輛進入,車輛離開,修改車輛停車的單價,當車輛離開時,系統(tǒng)輸出該車輛的信息和應交停車費用的功能。</p><p><b>  用戶:停車場管理員</b></p><p><b>  開發(fā)者:鄭鵬 。</b></p><p><b>  3.2 系統(tǒng)結構</b></

28、p><p>  系統(tǒng)采用順序棧和鏈式隊列結構,用戶界面通過DOS操作來實現(xiàn),主要的業(yè)務邏輯在順序棧和隊列中實現(xiàn)。 </p><p>  3.3 停車場管理系統(tǒng)界面設計</p><p>  這個程序用來實現(xiàn)對停車場內車輛的管理,整個操作界面為中文,更加符合人性化的標準,使得用戶使用方便,而且每一個操作都有提示,使得初次接觸該程序的用戶也能很快適應程序的操作。</p&

29、gt;<p>  這個程序操作簡單,對于車牌號,只需輸入現(xiàn)實中的車牌號就行,對于時間請直接輸入整數(shù)時間,只需輸入當時的小時就行。</p><p><b>  4 系統(tǒng)詳細設計</b></p><p><b>  4.1 范圍</b></p><p><b>  4.1.1 標識</b>&

30、lt;/p><p>  4.1.2 系統(tǒng)概述</p><p>  軟件名稱:停車場管理系統(tǒng)。</p><p>  軟件功能:為停車場管理員提供記錄車輛進入,車輛離開,修改車輛停車的單價,當車輛離開時,系統(tǒng)輸出該車輛的信息和應交停車費用的功能。</p><p><b>  用戶:停車場管理員</b></p>&l

31、t;p><b>  開發(fā)者:鄭鵬</b></p><p>  4.2 詳細設計說明</p><p>  4.2.1 登錄界面設計</p><p>  運行程序,直接進入歡迎界面,在此界面管理員輸入用戶名以及密碼進行登錄,此處采用一用戶一口令的登錄機制,如此完善的驗證機制與防盜機制,使得系統(tǒng)的安全性更高。</p><p&

32、gt;  登陸之后是主菜單界面,在主菜單界面進行選擇,有4個選項,A.車輛到達,D.車輛離開,P.修改單價,E.退出系統(tǒng)。</p><p>  當用戶選擇A時,界面提示輸入車輛車牌,若停車場已滿,系統(tǒng)提示停車場已滿,進入便道等待,否則提示輸入進入時間,接著是提示車輛進入車位。</p><p>  若選擇D,系統(tǒng)提示離開車輛車位,離開時間,系統(tǒng)打印出費用收據以及顯示車輛進場時刻、出場時間、停

33、留時間、應付金額。</p><p>  在主菜單選擇P,則系統(tǒng)提示請輸入單價,輸入單價后修改成功,又返回主菜單。</p><p>  在主菜單中選擇E,則直接退出系統(tǒng)。</p><p>  1.運行后的程序主界面</p><p><b>  2.登陸界面</b></p><p>  3.登陸成功后

34、的主界面</p><p><b>  代碼部分</b></p><p><b>  登入界面</b></p><p>  #include<stdio.h>#include<conio.h>#include<string.h>int main(){char *nUserName

35、="CEO"; //設置的用戶名</p><p>  char *nPassWord="123456"; //設置的密碼</p><p>  char getUserName[20]; //用來臨時保存輸入的用戶名</p><p>  char getPassWord[20]; //用來臨時保存輸入的密碼</p>

36、<p><b>  char ch;</b></p><p><b>  int i,j;</b></p><p>  for(j=0 ; j<3 ; j++)</p><p><b>  {</b></p><p>  while(1) //無限循環(huán),直到用

37、戶名和密碼都正確為止</p><p><b>  {</b></p><p><b>  //輸入用戶名</b></p><p>  printf("\n請輸入您的管理員帳號:");</p><p><b>  i=0;</b></p><

38、;p><b>  while(1)</b></p><p><b>  {</b></p><p>  ch=getch();</p><p><b>  //按回車結束輸入</b></p><p>  if(ch==13)</p><p><

39、;b>  {</b></p><p>  getUserName[i]='\0';</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  //退格鍵刪除</b></p>

40、<p>  else if(ch==8)</p><p><b>  {</b></p><p><b>  if(i>0)</b></p><p><b>  {</b></p><p>  printf("\b \b");</p

41、><p><b>  i--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //只有合法的字符才能被輸入</p><p>  else if( (ch>='A' &

42、& ch<='Z')</p><p>  || (ch>='a' && ch<='z')</p><p>  || (ch>='0' && ch<='9') )</p><p><b>  {</b&g

43、t;</p><p>  getUserName[i++]=ch;</p><p>  putchar(ch);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //輸入密碼</b></p

44、><p>  printf("\n請輸入密碼:");</p><p><b>  i=0;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  ch=getch();&

45、lt;/p><p><b>  //按回車結束輸入</b></p><p>  if(ch==13)</p><p><b>  {</b></p><p>  getPassWord[i]='\0';</p><p><b>  break;</

46、b></p><p><b>  }</b></p><p><b>  //退格鍵刪除</b></p><p>  else if(ch==8)</p><p><b>  {</b></p><p><b>  if(i>0)&

47、lt;/b></p><p><b>  {</b></p><p>  printf("\b \b");</p><p><b>  i--;</b></p><p><b>  }</b></p><p><b>

48、  }</b></p><p>  //只有合法的字符才能被輸入</p><p>  else if( (ch>='A' && ch<='Z')</p><p>  || (ch>='a' && ch<='z')</p>

49、<p>  || (ch>='0' && ch<='9') )</p><p><b>  {</b></p><p>  getPassWord[i++]=ch;</p><p>  putchar('*');</p><p><

50、;b>  }</b></p><p><b>  }</b></p><p>  //只有匹配成功,才能退出循環(huán)</p><p>  if(!strcmp(nUserName,getUserName)</p><p>  && !strcmp(nPassWord,getPassWord)

51、 )</p><p><b>  {</b></p><p>  cout<<endl;</p><p>  printf("\n歡迎進入停車系統(tǒng)!\nPress any key to continue!");</p><p><b>  break;</b><

52、/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("\nPassword error!\n");</p><p><b>

53、;  }</b></p><p><b>  }</b></p><p><b>  getch();</b></p><p><b>  return 0;</b></p><p><b>  if(j==3)</b></p>

54、<p><b>  {</b></p><p>  printf("輸入超過三次!請仔細查證!\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&

55、lt;/p><p><b>  主界面代碼:</b></p><p>  void main()</p><p><b>  {</b></p><p>  int pri=2;</p><p>  int zhanghao();</p><p>  in

56、t m=100;</p><p>  char flag; //進入或離開的標識;</p><p>  stackhead sting,slinshi; //停車場和臨時倒車場堆棧的定義;</p><p>  linkqueue line; //隊列的定義;</p><p>  

57、initstack(sting); //構造停車場堆棧sting</p><p>  initstack(slinshi); //構造倒車場堆棧slinshi</p><p>  initqueue(line); //構造便道隊列l(wèi)ine</p><p>  zhanghao();</p>&l

58、t;p>  system("cls");</p><p><b>  while(m)</b></p><p><b>  {</b></p><p>  cout<<"\n ** 停車場管理程序 **

59、 "<<endl;</p><p>  cout<<"================================================================================"<<endl; </p><p>  cout<<&qu

60、ot;**** A --- 汽車 進 車場 D --- 汽車 出 車場 ****"<<endl; </p><p>  cout<<"**** P --- 修改 單價 E --- 退出 程序 ****"<<

61、endl; </p><p>  cout<<"================================================================================"<<endl;</p><p>  cout<<"請選擇 :(A,D,E): ";</p>

62、<p>  cin>>flag;</p><p>  switch(flag)</p><p><b>  {</b></p><p>  case 'A': jinru(sting,line);system("pause");system("cls");break;

63、 //汽車進車場</p><p>  case 'D': likai(sting,slinshi,line,pri);break; //汽車出車場</p><p>  case 'P': pri=xiugaidanjia();break; //修改單價</p><p>  case 'E': system

64、("cls");exit(0);</p><p><b>  }</b></p><p><b>  m--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p&g

65、t;<b>  5 測試說明</b></p><p><b>  5.1 范圍</b></p><p><b>  5.1.1 標識</b></p><p>  5.1.2 系統(tǒng)概述</p><p>  軟件名稱:停車場管理系統(tǒng)。</p><p>  軟

66、件功能:為停車場管理員提供記錄車輛進入,車輛離開,修改車輛停車的單價,系統(tǒng)輸出該車輛的信息和應交停車費用的功能。</p><p>  用戶:停車場管理員。</p><p><b>  開發(fā)者:鄭鵬。</b></p><p>  5.2 測試計劃及預期結果</p><p>  1.在停車場管理系統(tǒng)主界面選P.修改單價(初始

67、為2元),輸入單價:2元。</p><p>  2.在主界面中選A.車輛到達,輸入車牌號:123,輸入到達時間10。</p><p>  3.繼續(xù)選A.車輛到達,輸入車牌號:234,輸入到達時間11。</p><p>  4.繼續(xù)選A.車輛到達,輸入車牌號:345,系統(tǒng)提示:停車場已滿,該車先停在便道的第一個位置。</p><p>  5在主

68、界面中選D.車輛離開,輸入車牌號:123,輸入離開時間12.然后系統(tǒng)顯示該車(車牌123)的收據,收據詳細內容有該‘車進場時刻=10’、‘出場時刻=12’、‘停留時間=2’、‘應付=4’。</p><p>  5.3 具體測試情況</p><p>  1.在停車場管理系統(tǒng)主界面選P.修改單價,輸入單價:1,結果如下圖:</p><p>  2. .在主界面中選A.車

69、輛到達,輸入車牌號:123,輸入到達時間10,</p><p><b>  結果如下圖:</b></p><p>  3. ..繼續(xù)選A.車輛到達,輸入車牌號:234,輸入到達時間11,結果如下圖:</p><p>  4.繼續(xù)選A.車輛到達,輸入車牌號:345,輸入到達時間12,結果如下圖:</p><p>  5.選

70、D.車輛離開,輸入車在車牌號,輸入離開時間:12,結果如下圖:</p><p>  通過程序測試,具體測試結果與測試計劃及預期結果基本相同,說明此停車場管理系統(tǒng)基本達到了設計目的。</p><p><b>  7總結</b></p><p>  通過這次課程設計首先加深了對《數(shù)據結構》這一課程所學內容的進一步理解和鞏固,特別是對順序棧以及鏈式隊

71、列的結構編程的運用這一塊,因為此次停車場管理系統(tǒng)的設計與開發(fā)主要用的就是這兩種數(shù)據結構。在進行系統(tǒng)開發(fā)的準備階段,也就是進行需求分析階段,對系統(tǒng)功能進行分析,并設計合理的模塊化結構,提高了對問題分析和設計的能力。在進行系統(tǒng)開發(fā)的階段能運用合理的控制流程編寫清晰高效的程序,也訓練了C語言程序的調試能力,能將一個小型各級組織系統(tǒng)聯(lián)調通過,基本上可以完成每一項功能。汽車進入停車場的信息、離開停車場的信息以及通道上的信息都可以在程序上一一實現(xiàn)。

72、但是,該程序也有不足的地方,就是管理員賬號無法修改登錄密碼以及不能隨意定義停車場的容量還有一些兼容性不是很好,不過為了簡便代碼,所以未實現(xiàn)這一功能。同時我覺得這一系統(tǒng)也一點可改進的方面在于還應該增加時間的判斷功能,即停車場內有可能有車輛停放時間超過一天。</p><p>  總之,在這次對于停車場管理系統(tǒng)的課程設計中。我的收獲還是挺多的,在系統(tǒng)開發(fā)中,使得我將計算機課程所學知識與實際問題很好的相聯(lián)接在了一起。&l

73、t;/p><p><b>  參考文獻</b></p><p>  數(shù)據結構理論與實踐 楊永斌主編 天津科學技術出版社 </p><p>  Visual C++課程設計與系統(tǒng)開發(fā)案例 伍俊良編著 清華大學出版社</p><p>  C++程序設計 譚浩強編著 清華大學出版社</p>

74、<p>  求實科技. 數(shù)據庫通用模塊及典型系統(tǒng)開發(fā)[M]. 人民郵電出版社, 2006.</p><p>  陳剛. CSS標準網頁布局開發(fā)指南[M]. 清華大學出版社, 2007.</p><p>  尹堃. 淺談ASP.NET技術的應用[J]. 硅谷動力, 2009,(07).</p><p>  蔡義忠. 在ASP.NET應用開發(fā)中驗證碼的設計[J

75、]. 黃岡職業(yè)技術學院學報, 2009,(01). </p><p>  徐安鳳,黃河濤. 基于ASP.NET 2.0的文件上傳研究[J]. 福建電腦, 2009,(03).</p><p>  胡曉慶. 多層架構在WEB程序設計中的應用[J]. 兵工自動化, 2007,(03).</p><p>  廖作斌,徐智. 基于ASP.NET技術的數(shù)據庫訪問通用類設計[

76、J]. 福建電腦, 2006,(11).</p><p>  程宴,徐征. ASP.NET的網站新聞管理系統(tǒng)的設計與開發(fā)[J]. 艦船電子工程, 2008,(08).</p><p><b>  致 謝</b></p><p>  經過二十幾天的忙碌,在老師安排的進度下,雖然完成停車場管理系統(tǒng),但還有有一些不足,還是處于一個草稿的階段。由于是第

溫馨提示

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

評論

0/150

提交評論