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