數據結構—停車場管理系統方案_第1頁
數據結構—停車場管理系統方案_第2頁
數據結構—停車場管理系統方案_第3頁
數據結構—停車場管理系統方案_第4頁
免費預覽已結束,剩余20頁可下載查看

下載本文檔

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

文檔簡介

1、.實訓報告實訓名稱 :停車場管理姓名:nnn院 (系):軟件學院專業班級 :學號:指導教師 :成績:.專業 .專注.時間:2010年6 月21 日至2010年6月25日實訓任務書一、題目1. 停車場管理2. 員工管理系統3. 校園導游程序4. 編寫一個雜貨店排隊模擬程序 。5. 猜動物6. 硬幣游戲7. 編寫程序幫助旅游者找出從一個城市到另一個城市的最短旅行路徑。8. 設計哈希表實現電話號碼查詢系統 。9. 赫夫曼編碼及譯碼.專業 .專注.二、實訓的性質和任務數據結構實訓是在完成理論課程學習之后安排的綜合實踐訓練,要求學生能根據數據結構中所講到的各種數據類型以及它們順序和鏈式存儲,在具體的應用

2、中能運用并實現各種數據的各種不同操作。通過一周的綜合實訓,使學生加深對如何將邏輯關系的數據按一定的存儲方式存儲在計算機內。并為以后的編程打好基礎 。三、實訓的基本要求1、熟悉各種數據類型及它們在計算機中的存儲方式;2、熟悉各種數據類型的基本操作,各基本操作的實現 。3、能綜合運用各種數據類型實現一些具體的問題。四、實訓內容及要求天 /日任務描述通過標準期10 年 6需求分析 ;算法分析完成相關設計內容月21日10 年 6繪制流程圖 ;程序代碼設計完成相關設計內容月22日10 年 6程序代碼設計與實現完成相關設計內容月23日10 年 6程序代碼實現、測試完成相關設計內容月24日10 年 6實訓文

3、檔書寫、作品成績評定完成相關設計內容.專業 .專注.月25日五、考核指標及成績評定實訓成績由下面構成:平時成績 ( 10% ) + 作品( 70% )+ 實訓報告 (20% ) = 總評成績作品成績評定標準:1、全部完成90-1002、主要功能完成70-903、部分功能完成60-704、少部分完成40-605、幾乎沒做0-40完成期限:年月日指導教師簽章:專業負責人簽章 :教學院長簽章年月日.專業 .專注.一、需求說明僅僅認識到棧和隊列是兩種特殊的線性表是遠遠不夠的,本次實習的目的在于使讀者深入了解棧和隊列的特征,以便在實際問題背景下靈活運用它們;同時還將鞏固這兩種結構的構造方法,接觸較復雜問

4、題的遞歸算法設計。以棧模擬停車場 ,以隊列模擬車場外的便道,按照從終端讀入的輸入數據序列進行模擬管理 。 每一組輸入數據包括三個數據項:汽車 “到達 ”或“離去 ”信息、汽車牌照號碼及到達或離去的時刻,對每一組輸入數據進行操作后的輸出數據為 :若是車輛到達 ,則輸出汽車在停車場內或便道上的停車位置;若是車離去 ;則輸出汽車在停車場內停留的時間和應交納的費用(在便道上停留的時間不收費 )。棧以順序結構實現 ,隊列以鏈表實現 。設停車場內只有一個可停放n 輛汽車的狹長通道 ,且只有一個大門可供汽車進出 。汽車在停車場內按車輛到達時間的先后順序,依次由北向南排列(大門在最南端 ,最先到達的第一輛車停

5、放在車場的最北端),若車場內已停滿 n 輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走 ,則排在便道上的第一輛車即可開入;當停車場內某輛車要離開時,在它之后開入的車輛必須先退出車場為它讓路,待該輛車開出大門外 ,其它車輛再按原.專業 .專注.次序進入車場 ,每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費用 。試為停車場編制按上述要求進行管理的模擬程序。二、功能描述停車場管理系統主要有以下幾個功能:1、汽車進入車場添加車輛信息 :車牌號 、進車時間 ,如果停車場已滿 ,則將車輛停入臨時便道內 。2、汽車退出車場根據退出車輛的車牌號,進行優先退出,再根據退出時間計算停車費

6、用。并將臨時便道中的車輛停入停車場內。3、退出系統三、系統設計及實現軟件規格要求合理 ,基于 C 語言程序設計 ,在有限空間達到效果最優化。3.1 設計要求用 C 語言實現“停車場管理系統 ”。3.2 系統功能(1)系統啟動后 ,出現用戶界面 ,人機交互 。(2)根據提示輸入選項.專業 .專注.1、汽車進入車場2、汽車退出車場3、退出系統(3)進入車場時錄入車輛牌號、和入場時間 ,輸出停靠的停車位置,當停車場車位滿時則停靠在臨時停車便道內。(4)退出車場時錄入車輛牌號、和出場時間 ,輸出停車總時間 ,和所停的費用。3.3 系統性能 :( 1)時間特性需求在網絡連接正常的情況下,查詢響應時間為秒

7、級 。( 2) 靈活性當需求發生某些變化時,機票管理應用軟件操作方式、數據結構 、運行環境基本不會發生變化,變化只是將對應的數據文件內的記錄改變,或改變過濾條件 。( 3)可用性軟件應該盡可能的一目了然,使一般用戶能夠使用 。( 4)安全性本套職工信息系統所涉及的數據存放于文件中,在程序中應盡可能的使用調用存儲過程的方法以免使某人反編譯軟件后或入侵到服務器后對數據的結構了如指掌 ,在程序中應該設置訪問時的密碼,以保證數據不容易.專業 .專注.被錯改 、破壞,而且要經常對數據文件進行備份操作,使得數據一旦受到破壞或是出錯能夠保證及時的恢復數據,將損失降低到最低 。( 5) 可維護性( 6) 應用

8、程序的維護當用戶使用本套職工信息系統軟件時,遇到了軟件本身的邏輯錯誤時,應當有軟件的維護人員對軟件進行修改。( 7)可轉移、可轉換性VisualStudio及 C 編程語言的兼容性很高,在 windows95/98.Windows NT. windows2000. windows XP等操作系統都可以直接運行。輸入項:用戶通過軟件輸入必要的信息,然后保存到數據文件 ,所輸入的信息是經過需求分析限定的內容,同時也是數據文件中每個字段中存儲的內容。輸出項:本套職工信息系統軟件會將所有需要瀏覽的數據顯示在屏幕上,以便使用戶能夠瀏覽到數據文件中的數據或用戶想要瀏覽范圍中的數據算法:1)將用戶輸入的數據

9、 ,按字段保存到數據文件中。2)將數據文件中的數據 ,按字段提取到用戶界面中。3)必要的去除重復項的算法。4)保持文件和輸出數據的一致性。注釋設計 :盡可能的將軟件中插入注釋語句 ,使語句功能明了 。 制作的時候應該制作兩分,一份是標有注釋語句的代碼 ,用來給維護人員 、測試人員和開發人員了.專業 .專注.解開發過程所用 ,另一份是不帶有注釋語句的代碼,用來最后實際應用當中,這樣可以充分的利用有限的時間,降低客戶的計算機打開系統功能的時間,提高客戶的使用速度 。限制條件 :限制必要的條件 ,以排除由于用戶的誤操作造成不必要的錯誤。測試計劃 :在軟件編輯的工作進行當中 ,測試人員便要開始制定測試

10、計劃 ,其中要包括白盒和黑盒的具體測試項目 ,及其必要的測試數據和出錯的信息 。每次測試的結果要寫報告 ,并就發現和懷疑的問題與編輯人員聯系 。 測試的結果要讓編輯人員明白 。通過文件存儲方式將用戶所錄入的數據保存妥當,充分地描述了數據間的內在聯系 ,便于數據修改 、更新與擴充 ,同時保證了數據的獨立性、可靠性 、安全性與完整性 ,減少了數據冗余 ,提高了數據共享程度及數據管理效率。3.4 設計思路及框架停車場的管理流程如下 : 當車輛要進入停車場時 ,檢查停車場是否已滿 ,如果未滿則車輛進入停車場;如果停車場已滿 ,則車輛進入便道等候 。 當車輛要求出棧時 ,先讓在它之后進入停車場的車輛退出

11、停車場為它讓路,再讓該車退出停車場 ,讓路的所有車輛再按其原來進入停車場的次序進入停車場。之后,再檢查在便道上是否有車等候 ,有車則讓最先等待的那輛車進入停車場。.專業 .專注.四、各功能模塊.專業 .專注.1、 交互菜單2、汽車進入停車場1.專業 .專注.3、汽車退出停車場2.專業 .專注.五、 總結實訓期間 ,讓我學到了很多東西,不僅使我在理論上對軟件行業有了全新的認識 ,在實踐能力上也得到了提高,真正地做到了學以致用,對我來說受益非淺 。除此以外 ,我還學會了如何更好地與別人溝通,如何更好地去陳述自己的觀點 ,如何說服別人認同自己的觀點。第一次親身感受到理論與實際的相結合 ,讓我大開眼界

12、 。也是對以前所學知識的一個初審吧!這次實訓對于我以后學習 、找工作也真是受益菲淺,在這短短的幾天中相信這些寶貴的經驗會成為我今后成功的重要的基石。作為一名大二的學生 ,經過兩年的在校學習 ,對程序設計有了理性的認識和理解 。 在校期間 ,一直忙于理論知識的學習,沒有機會也沒有相應的經驗來參與項目的開發 。所以在實訓之前 ,軟件項目開發對我來說是比較抽象的,一個完整的項目要怎么來分工以及完成該項目所要的基本步驟也不明確。 而經過這次實訓 ,讓我明白一個完整項目的開發它所要經歷的階段包括:規劃和用例.專業 .專注.說明、項目結構 、業務功能說明書 、詳細設計說明書 、代碼實現 、測試、實訓手冊。

13、 一個項目的開發所需要的財力、人力都是大量的 ,如果沒有一個好的遠景規劃 ,對以后的開發進度會產生很大的影響,嚴重時導致在預定時間內不能完成該項目或者完成的項目跟原先計劃所要實現的項目功能不符合。一份好的項目結構 、業務功能和詳細設計說明書對一個項目的開發有明確的指引作用,它可以使開發人員對這個項目所要實現的功能在總體上有具體的認識,并能減少在開發過程中出現不必要的脫節。代碼的實現是一個項目開發成功與否的關鍵,可以說,前面所做的事情就是為代碼的實現做鋪墊。這次實訓也讓我深刻了解到,不管在工作中還是在生活中要和老師,同學保持良好的關系是很重要的。做事首先要學做人 ,要明白做人的道理 ,如何與人相

14、處是現代社會的做人的一個最基本的問題。對于自己這樣一個即將步入社會的人來說 ,需要學習的東西很多,他們就是最好的老師 ,正所謂 “三人行 ,必有我師 ”,我們可以向他們學習很多知識、道理。在此,我應當感謝老師的指導與幫助以及學院提供此次千載難逢的實訓機會。.專業 .專注.六、 附錄#include<stdio.h>#include <stdlib.h>#include<string.h>#include<math.h>#define size 1 /停車場位置數/ 模擬停車場的堆棧的性質 ;typedef struct zanlindint nu

15、mber; /汽車車號float ar_time; /汽車到達時間zanInode;typedef structzanInode *base; /停車場的堆棧底zanInode *top; /停車場的堆棧頂int stacksize_curren;stackhead;/ 堆棧的基本操作 ;void initstack(stackhead &L) /構造一個空棧LL.base=(zanInode*)malloc(size*sizeof(zanlind);if(!L.base) exit(0);/ 存儲分配失敗.專業 .專注.L.top=L.base;L.stacksize_curren=

16、0;void push(stackhead &L,zanInode e) /插入元素e 為新的棧頂元素*L.top+=e;L.stacksize_curren+;void pop(stackhead &L,zanInode &e) /若棧不為空 ,刪除 L 的棧頂元素 ,用 e 返回其值if(L.top=L.base)printf(" 停車場為空 !");return;e=*-L.top;L.stacksize_curren-;/ 模擬便道的隊列的性質;typedef struct duilieint number; /汽車車號float ar_ti

17、me; /汽車到達時間.專業 .專注.struct duilie *next;*queueptr;typedef structqueueptr front; /便道的隊列的對頭queueptr rear; /便道的隊列的隊尾int length;linkqueue;/ 隊列的基本操作 ;void initqueue(linkqueue &q) /構造一個空隊列qq.front=q.rear=(queueptr)malloc(sizeof(duilie);if(!q.front|!q.rear)exit(0);/ 存儲分配失敗q.front->next=NULL;q.length=

18、0;voidenqueue(linkqueue&q,intnumber,intar_time)/ 把元素的插入隊列尾(屬性為.專業 .專注.number , ar_time )queueptr p;p=(queueptr)malloc(sizeof(duilie);if(!p) exit(0);/ 存儲分配失敗p->number=number;p->ar_time=ar_time;p->next=NULL;q.rear->next=p;q.rear=p;q.length+;voidpopqueue(linkqueue&q,queueptr&w)/

19、 刪除q的隊頭元素w (屬性為number , ar_time )queueptr p;if(q.front=q.rear)printf(" 停車場通道為空");return;p=q.front->next;.專業 .專注.w=p;q.front->next=p->next;q.length-;if(q.rear=p) q.front=q.rear;float shijiancha(float x,float y)/ 求時間差的子程序int shix,shiy,fenx,feny;float shijiancha;shix=x;shiy=y;fenx=(i

20、nt)(x-shix)*100);feny=(int)(y-shiy)*100);if(fenx>feny)shijiancha=(shiy-shix-1)+(float)(feny+60-fenx)/100;elseshijiancha=(shiy-shix)+(float)(feny-fenx)/100;return shijiancha;.專業 .專注.void jinru(stackhead &st,linkqueue &q)/ 對進入停車場的汽車的處理;int number;float time_a;printf(" 請輸入車牌號:");sc

21、anf("%d" ,&number);printf(" 請輸入您進車場的時間(比如說 : 8 點半則輸入8.30):"); scanf("%f",&time_a);if(st.stacksize_curren<2)zanInode e;e.number=number;e.ar_time=time_a;push(st,e);printf(" 請把你的車停在%d 號車道 nn",st.stacksize_curren);elseenqueue(q,number,time_a);printf(&qu

22、ot; 停車場已滿 ,請把你的車停在便道的第%d 個位置上 ",q.length);.專業 .專注.void likai(stackhead &st,stackhead &sl,linkqueue &q)/ 對離開的汽車的處理;/st堆棧為停車場, sl 堆棧為倒車場int number,flag=1;/q為便道隊列float sh,time_d,arrivaltime,money1;printf(" 請輸入您的車牌號:"); scanf("%d",&number);printf(" 請輸入您出車場的時

23、間(比如說 : 8 點半則輸入8.30):");scanf("%f",&time_d);zanInode e,q_to_s;queueptr w;while(flag)/ 找到要開出的車,并彈出停車場棧pop(st,e);push(sl,e);if(e.number=number)flag=0;arrivaltime=e.ar_time;sh=shijiancha(arrivaltime,time_d);money1=(int)sh*2+(sh-(int)sh)*100/30;.專業 .專注.pop(sl,e);/ 把臨時堆棧的第一輛車(要離開的 )去掉;

24、while(sl.stacksize_curren)/ 把倒車場的車倒回停車場pop(sl,e);push(st,e);if(st.stacksize_curren<2&&q.length!=0)/ 停車場有空位 ,便道上的車開進入停車場popqueue(q,w);q_to_s.ar_time=time_d;q_to_s.number=w->number;push(st,q_to_s);printf("車 牌為%d的車已從通道進入停車場,所在的停車位為 %d:n",q_to_s.number,st.stacksize_curren);printf("n收據 ");printf(" 車牌號 :%dn",number);printf("+n");printf("進車場時間 :%4.2fn&qu

溫馨提示

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

評論

0/150

提交評論