版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《數(shù)據(jù)結(jié)構(gòu)與算法》課程設(shè)計報告</p><p> 一、設(shè)計題目:停車場管理</p><p> 二、問題描述: 設(shè)停車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達時間的先后順序,依次由北向南排列(大門在南端,最先到達的第一輛車停放在停車場的最北端),若停車場內(nèi)已停了n輛汽車,則后來的汽車只能在門外的通道上等候,一旦有
2、車開走,收排在通道上的第一輛車即可開入;當停車場內(nèi)每輛車要離開時,在它之后進入的車輛必須先退出停車場為其讓路,待該輛車開出大門,其他車輛再按原次序進入停車場,每輛停放在停車場的車在它離開停車場時必須按它停留在停車場內(nèi)的時間長短交納停車費。試為停車場編寫按上述要求進行管理的模擬程序。</p><p><b> 三、基本要求:</b></p><p> 以棧模擬停車場
3、,以隊列模擬車場外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進行模擬管理。每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項:汽車"到達"或"離去"信息,汽車牌照號碼以及到達或離去的時刻。對每一組輸入數(shù)據(jù)進行操作后的輸出信息為:若是在停車場內(nèi)停留的時間和應(yīng)交納的費用(在便道上停留的時間不收費)。棧以順序結(jié)構(gòu)實現(xiàn),隊列以鏈表結(jié)構(gòu)實現(xiàn)。四、測試數(shù)據(jù): 設(shè)n=2,輸入數(shù)據(jù):('A',1,5),(
4、'A',2,15),('D',1,15),('A',3,20),('A',4,25),('A',5,30),('D',2,35),('D',4,40),('E',0,0)。其中:'A'表示到達(arrival);'D'表示離去(departure);'E'表示輸出
5、(end)。</p><p> 五、實現(xiàn)提示: 需要另設(shè)一個棧,臨時停放為給要離去的汽車讓路而從停車車退出來的汽車,也用順序存儲結(jié)構(gòu)實現(xiàn)。輸入數(shù)據(jù)按到達的時刻有序。棧中每個元素表示一輛汽車,包含兩個數(shù)據(jù)項:汽車的牌照號碼和進入停車車的時刻。</p><p> 六、需求分析:(1)以順序棧來表示停車場,限定停車場的容量n。以鏈隊列來表示便道。限制以實型變量money來存放停車場
6、費率。(2)按照從終端讀入的數(shù)據(jù)序列進行模擬管理。每輛車需要三個數(shù)據(jù),其中車輛數(shù)據(jù)為:A表示到達,D表示離去,E表示程序結(jié)束。車輛牌照為整型數(shù)據(jù)。進場或離場時間同樣為整型數(shù)據(jù)。(3)對每一組輸入數(shù)據(jù)進行操作后的輸出信息為:若是車輛到達,則輸出汽車在停車場內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場內(nèi)停留的時間和應(yīng)交納的費用(在便道上停留的時間不收費)。(4)該程序可以模擬停車場的管理過程。(5)測試數(shù)據(jù):設(shè)n=2,輸入
7、數(shù)據(jù):('A',1,5),('A',2,15),('D',1,15),('A',3,20),('A',4,25),('A',5,30),('D',2,35),('D',4,40),('E',0,0)。其中:'A'表示到達(arrival);'D'表示離去(depa
8、rture);'E'表示輸出(end)。</p><p> 七、概要設(shè)計:1.設(shè)定棧的抽象數(shù)據(jù)類型定義為: ADT stack{數(shù)據(jù)對象:D={ai|ai∈charset,I=1,2,……,n,n>=0}數(shù)據(jù)關(guān)系:R1={<ai-1,ai>ai-1,ai∈D,I=2……,n}基本操作:Initstack(&S)</p><p> 操作
9、結(jié)果:構(gòu)造一個空棧S。DestroyStack(&S)初始條件:棧S已經(jīng)存在。操作結(jié)果:操作結(jié)果:銷毀棧S。ClaerStack(&S)初始條件:棧S已經(jīng)存在。操作結(jié)果:將S清空為空棧。StackLength(&S)初始條件:棧S已經(jīng)存在。操作結(jié)果:返回棧S的長度。StackEmpty(&S)初始條件:棧S已經(jīng)存在。操作結(jié)果:若S為空棧,則返回TURE,否則返回FALSE。Get
10、Top(S,&e)初始條件:棧S已經(jīng)存在。操作結(jié)果:若棧S不空,則以e返回棧頂元素。Push(&S,e)初始條件:棧S已經(jīng)存在。操作結(jié)果:在棧S的棧頂插入新的棧頂元素e。Pop(&S,&e)初始條件:棧S已經(jīng)存在。操作結(jié)果:刪除S的棧頂元素,并以e返回其值。StackTraverse(S,visit())初始條件:棧S已經(jīng)存在。操作結(jié)果:從棧底到棧頂依次對S中的每個元素調(diào)用函數(shù)vis
11、it( )。}ADT stack2.設(shè)定鏈式隊列的抽象數(shù)據(jù)類型為:typedef struct Qnode{ QelemType data; Struct</p><p> 八、詳細設(shè)計:1.求停車車管理的詳細算法#include "stdio.h"#include "alloc.h"#i
12、nclude "stdlib.h"/*#define NULL 0*/#define ERROR 0#define OK 1#define OVERFLOW 0#define STACK_INIT_SIZE 2/*車庫容量*//*----------------------------------------------------------------------*/typedef struct
13、time{int hour;int min;}Time; /*時間結(jié)點*//*----------------------------------------------------------------------*/typedef struct/*車信息*/{char label;float time;}Car,Car2;typedef struct/*車庫信息*/{Car *top;Car *base
14、;int st</p><p> 九、使用說明:(1)本程序為運行在Windows下的MyTc控制臺程序,執(zhí)行文件為:停車場管理.exe(2)進入該程序后,首先輸入停車場的容量。(3)輸入車輛數(shù)據(jù):A為到達,D為離去,E為結(jié)束程序。(4)接著輸入車輛的牌照信息(5)若為到達的車輛,輸入進場信息,若為離去的車輛,輸入離場信息。(6)若車輛到達,可得到車輛的停放位置信息,若車輛離去,可得到車輛的停放時
15、間(在便道上的停放時間除外),以及應(yīng)該交納的費用。(7)本程序不斷循環(huán)要求輸入車輛信息,直到輸入的車輛數(shù)據(jù)為E時,程序結(jié)束。</p><p><b> 十、測試結(jié)果</b></p><p> 十一、調(diào)試分析:1)本程序開始運行時出現(xiàn)了一個的錯誤:只能計算車輛的出入,不能對存入的車輛進行計費!而且系統(tǒng)不斷提示:NULL的設(shè)定出錯,所以我直接將其定義為程序注釋。經(jīng)
16、過調(diào)試后完全正常。本程序中:車輛到達,離去時的時間復雜度均為:O(n)。本程序空間復雜度為:O(n*n)。2)本程序推出了一個人性化設(shè)計:當你存車的時間超過3個小時我的計費系統(tǒng)將會調(diào)低每小時的計費費率,這樣更加接近現(xiàn)實的生活。</p><p> 停車場系統(tǒng)#include<iostream.h>#include<string.h>#include&
17、amp;lt;iomanip.h>#define StackSize 8typedef struct { char Car_number[StackSize][10];int top;}SqStack;//定義棧的結(jié)構(gòu)void InitStack(SqStack &S)//初始棧的棧頂{
18、S.top=-1;}int StackEmpty(SqStack &S)//判斷棧是否為空{(diào) if(S.top==-1) return 1;else return 0;}int StackFull(SqStack &S)//判斷棧是否為滿{ if
19、(S.top==StackSize-1) return 1;else return 0;}void StackPush(SqStack &S,char e[])//壓棧{ S.top++;strcpy(S.Car_number[S.t</p><p>
20、*停車場管理系統(tǒng)*/ '.+3EA HP, #include<stdio.h> E@Xe, #include<stdlib.h> pT G@IvE #include<string.h> Xbk]!_ }Time; /*時間結(jié)點*/ v:O(EIY{A typedef struct node{ 0}` DqT &
21、#160;char num[10]; nn:r=i5 Time reach; Yze0mDq Time leave; rll1h<{K }CarNode; /*車輛信息結(jié)點*/ b;Rmk6u@ typedef struct NODE{ {su_a?S CarNode *stack[MAX+1]; PW^NFZ ; int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計停車場管理報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---停車場管理系統(tǒng)
- 停車場管理-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-- 停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---停車場管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計《停車場管理系統(tǒng)》
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---停車場仿真
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--- 停車場問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---停車場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--模擬停車場管理問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--停車場管理系統(tǒng) (2)
評論
0/150
提交評論