版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 《數(shù)據(jù)結(jié)構(gòu)與算法》課程設(shè)計報告</p><p> 一、設(shè)計題目:停車場管理</p><p> 二、問題描述: 設(shè)停車場是一個可停放n輛汽車的狹長通道,且只有一個大門可供汽車進(jìn)出。汽車在停車場內(nèi)按車輛到達(dá)時間的先后順序,依次由北向南排列(大門在南端,最先到達(dá)的第一輛車停放在停車場的最北端),若停車場內(nèi)已停了n輛汽車,則后來的汽車只能在門外的通道上等候,一旦有
2、車開走,收排在通道上的第一輛車即可開入;當(dāng)停車場內(nèi)每輛車要離開時,在它之后進(jìn)入的車輛必須先退出停車場為其讓路,待該輛車開出大門,其他車輛再按原次序進(jìn)入停車場,每輛停放在停車場的車在它離開停車場時必須按它停留在停車場內(nèi)的時間長短交納停車費。試為停車場編寫按上述要求進(jìn)行管理的模擬程序。</p><p><b> 三、基本要求:</b></p><p> 以棧模擬停車場
3、,以隊列模擬車場外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個數(shù)據(jù)項:汽車"到達(dá)"或"離去"信息,汽車牌照號碼以及到達(dá)或離去的時刻。對每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是在停車場內(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'表示到達(dá)(arrival);'D'表示離去(departure);'E'表示輸出
5、(end)。</p><p> 五、實現(xiàn)提示: 需要另設(shè)一個棧,臨時停放為給要離去的汽車讓路而從停車車退出來的汽車,也用順序存儲結(jié)構(gòu)實現(xiàn)。輸入數(shù)據(jù)按到達(dá)的時刻有序。棧中每個元素表示一輛汽車,包含兩個數(shù)據(jù)項:汽車的牌照號碼和進(jìn)入停車車的時刻。</p><p> 六、需求分析:(1)以順序棧來表示停車場,限定停車場的容量n。以鏈隊列來表示便道。限制以實型變量money來存放停車場
6、費率。(2)按照從終端讀入的數(shù)據(jù)序列進(jìn)行模擬管理。每輛車需要三個數(shù)據(jù),其中車輛數(shù)據(jù)為:A表示到達(dá),D表示離去,E表示程序結(jié)束。車輛牌照為整型數(shù)據(jù)。進(jìn)場或離場時間同樣為整型數(shù)據(jù)。(3)對每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場內(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'表示到達(dá)(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è)定鏈?zhǔn)疥犃械某橄髷?shù)據(jù)類型為:typedef struct Qnode{ QelemType data; Struct</p><p> 八、詳細(xì)設(shè)計:1.求停車車管理的詳細(xì)算法#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)進(jìn)入該程序后,首先輸入停車場的容量。(3)輸入車輛數(shù)據(jù):A為到達(dá),D為離去,E為結(jié)束程序。(4)接著輸入車輛的牌照信息(5)若為到達(dá)的車輛,輸入進(jìn)場信息,若為離去的車輛,輸入離場信息。(6)若車輛到達(dá),可得到車輛的停放位置信息,若車輛離去,可得到車輛的停放時
15、間(在便道上的停放時間除外),以及應(yīng)該交納的費用。(7)本程序不斷循環(huán)要求輸入車輛信息,直到輸入的車輛數(shù)據(jù)為E時,程序結(jié)束。</p><p><b> 十、測試結(jié)果</b></p><p> 十一、調(diào)試分析:1)本程序開始運行時出現(xiàn)了一個的錯誤:只能計算車輛的出入,不能對存入的車輛進(jìn)行計費!而且系統(tǒng)不斷提示:NULL的設(shè)定出錯,所以我直接將其定義為程序注釋。經(jīng)
16、過調(diào)試后完全正常。本程序中:車輛到達(dá),離去時的時間復(fù)雜度均為:O(n)。本程序空間復(fù)雜度為:O(n*n)。2)本程序推出了一個人性化設(shè)計:當(dāng)你存車的時間超過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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(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
提交評論