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

下載本文檔

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

文檔簡介

1、<p> 《數(shù)據(jù)結構》課程設計報告</p><p> 姓名學號10級9班組實驗室:</p><p> 提交日期 成績指導教師</p><p> 實驗題目:停車場管理系統(tǒng)</p><p> 問題解析(對問題的分析、理解和解題方法):1.首先確定停車場和便道所用的數(shù)學模型,在此程序中,停車場的情況用二維數(shù)組sspace表示,便道用一維數(shù)

2、組構成的隊列CarQueue表示。2.接著是對整個停車場系統(tǒng)的分析,第一,這個停車場管理系統(tǒng)是模擬了一個30車位的停車場與5車位的便道相結合的系統(tǒng),功能是羅列出一天內停車場內車輛出入情況以及每輛車停泊的位置(系統(tǒng)還會給出車的車牌號)和時間,最后是統(tǒng)計車輛出入的總車次,車輛停泊的總時間,停車場的總收入;第二,明確一些臨界問題。1,若車位已滿,則車必須在便道內等待,不需要付費;2,車輛停留1小時后離開的概率是25%,每多停留1小時后離開概率

3、增加25%,4小時后一定要離開;3,若有空車位,但此時便道上還有車在等待,便道上的車先進入停車場,新到的車仍需在便道上等待;3.對于本系統(tǒng)的設計:通過對停車和離開過程進行模擬即可解決問題。用隨機函數(shù)rand()生成每小時新來的車輛數(shù)目x(x在0-20間)及相應車牌號,調用CarArrived()函數(shù)使車輛逐輛停入編號最小的空車位。以車位為對象記錄停入車輛的車牌號、到達時間及停留時間,存儲在sspace中。對于每</p>&

4、lt;p> 數(shù)據(jù)結構選擇、算法設計:用二維數(shù)組sspace構成的線性表模擬停車場,用一維數(shù)組CarQueue和一個整型變量a作為指針構成循環(huán)隊列,模擬便道。用一維數(shù)組TCarNum儲存每小時新來車輛的車牌號。因為問題規(guī)模較小且車位有序,所以采用遍歷所有車位的方法尋找車位,找到的第一個空車位即為所求,對于每小時進入停車場的x輛車,時間效率最優(yōu)為O(1),最壞為O(M)。隨機數(shù)的產(chǎn)生,采用STL中的rand()和srand()函數(shù)。函

5、數(shù)功能:void OpenForDay()//初始化,打開文件,變量賦初值void NewCars()//通過隨機數(shù)生成每小時新來車輛的數(shù)目及每輛車的車牌號void CarArrived()//車輛到達,停車場空位減少,相應車位記為非空,開始記錄車輛的到達時間、停留時間及車號void CarDeparture()//車輛離開,停車場空位增加,車位初始化,計算車費并輸出提示,累加總時間及總收入int main()//模擬停車場運營過程&l

6、t;/p><p> 任務分工及進度計劃:全部獨立完成,8.15編程,8.16調試程序修改錯誤8.17繼續(xù)調試程序并撰寫課程設計報告,8.18提交報告。</p><p> 用戶手冊程序運行時隨機產(chǎn)生每小時進入車輛數(shù)及相應車牌號碼,相應提示輸出在屏幕上。車輛離開時屏幕會輸出車牌號、停留時間及應付的停車費,同時離開車輛的到達時間、停留時間及車牌號會記錄在文件CarRecord.txt中。一天結束后屏

7、幕輸出全天的統(tǒng)計結果。停車場車位及便道長度在源代碼中以常量形式定義,可以進行改動。</p><p> 測試結果注:因數(shù)據(jù)過多,此處僅截取部分CarRecord.txt //汽車到達和離去的時間及汽車的車號Number is: 10001,Arriving time is: 0,Leaving Time is: 1Number is: 10008,Arriving time is: 0,Leaving Tim

8、e is: 1Number is: 10017,Arriving time is: 1,Leaving Time is: 2Number is: 10004,Arriving time is: 0,Leaving Time is: 2……Number is: 20037,Arriving time is: 3,Leaving Time is: 6Number is: 20038,Arriving time is: 3,L

9、eaving Time is: 6Number is: 20054,Arriving time is: 4,Leaving Time is: 6……Number is: 70327,Arriving time is: 22,Leaving </p><p> 程序清單#include<stdio.h>#include<stdlib.h>#include<time.h>#d

10、efine N 5#define M 30int TotalArCar,TotalDeCar,TotalTime,TotalMoney;int Time,REST,QRest,j,k,a,x,num;//Time記錄當前時間,REST記錄當前停車場的空位數(shù)量,QRest記錄便道中的空位。x是每小時新來的車輛數(shù),num是車號,j、k為循環(huán)控制變量,a為隊列指針int TCarNum[21];//記錄新產(chǎn)生車輛的車牌號int sspace[

11、4][M],CarQueue[N];//sspace記錄所有車位情況,CarQueue記錄便道車輛的車號FILE *fp1;//用于記錄汽車到達和離去的時間及汽車的車號void OpenForDay(){//初始化if((fp1=fopen("CarRecord.txt","w+"))==NULL)printf("cannot open CarRecord!\n");srand

12、((unsigned)time(NULL));TotalArCar</p><p> 總結(對所作程序進行分析、評價運行效果,總結遇到的問題和解決辦法)所作程序數(shù)據(jù)結構和算法都很簡單,但已完整實現(xiàn)題目要求。運行時對普通數(shù)據(jù)及邊緣數(shù)據(jù)0、20皆能產(chǎn)生正確結果。問題規(guī)模較小,在M范圍擴大至一定范圍之前,對于x輛車的操作和為O(M)已經(jīng)足以很快得出結果(測試M=3000000,runtime=0.328s)??紤]到現(xiàn)實

13、中停車場的規(guī)模很難達到更大,且當前規(guī)模(M=30)排序優(yōu)化非常有限,故未采用排序。遇到的問題和解決方法:1、開始時是判斷停車場有空位則直接停入停車場,但車輛離開后便道可能會有等待的車輛,從便道進入停車場和直接進入停車場無法使用同一個函數(shù)完成。后來修改為新來的車輛先進入便道,統(tǒng)一由便道進入停車場,這樣就可以使用共同的函數(shù)CarArrived()了。2、開始時的思考方式是以車輛為對象,用鏈表記錄車輛的停留車位、時間等,后來發(fā)現(xiàn)這樣操作量太大

溫馨提示

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

評論

0/150

提交評論