停車場(chǎng)管理系統(tǒng)(完整版)_第1頁(yè)
停車場(chǎng)管理系統(tǒng)(完整版)_第2頁(yè)
停車場(chǎng)管理系統(tǒng)(完整版)_第3頁(yè)
停車場(chǎng)管理系統(tǒng)(完整版)_第4頁(yè)
停車場(chǎng)管理系統(tǒng)(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 成 績(jī) 評(píng) 定 表學(xué)生姓名曹杰班級(jí)學(xué)號(hào)專 業(yè)信息與計(jì)算科學(xué)課程設(shè)計(jì)題目停車場(chǎng)管理系統(tǒng)評(píng)語(yǔ)組長(zhǎng)簽字:成績(jī)?nèi)掌?20 年 月 日課程設(shè)計(jì)任務(wù)書學(xué) 院理學(xué)院專 業(yè)信息與計(jì)算科學(xué)學(xué)生姓名曹杰班級(jí)學(xué)號(hào)課程設(shè)計(jì)題目停車場(chǎng)管理系統(tǒng)實(shí)踐教學(xué)要求與任務(wù):要求:通過(guò)集中性的編程訓(xùn)練,使學(xué)生系統(tǒng)的掌握如何將客觀實(shí)際問(wèn)題與計(jì)算機(jī)的算法對(duì)應(yīng)起來(lái),如何將客觀信息與數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)對(duì)應(yīng)起來(lái),將理論概念的學(xué)習(xí)轉(zhuǎn)變成能夠使用計(jì)算機(jī)高級(jí)語(yǔ)言解決實(shí)際問(wèn)題的方法。任務(wù):以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”“離去”信息、汽車牌照號(hào)碼以及到

2、達(dá)或離去的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若使車輛離去,則輸出汽車在停車場(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)。工作計(jì)劃與進(jìn)度安排:第一、 二天查閱資料、程序設(shè)計(jì) ;第三、四天 程序調(diào)試與測(cè)試 ;第五天、答辯 指導(dǎo)教師:201 年 月 日專業(yè)負(fù)責(zé)人:201 年 月 日學(xué)院教學(xué)副院長(zhǎng):201 年 月 日摘要 本停車管理系統(tǒng)利用C語(yǔ)言結(jié)合數(shù)據(jù)結(jié)構(gòu)建立而成。實(shí)現(xiàn)停車管理的車輛入庫(kù)、車輛出庫(kù)登記、所在車庫(kù)車輛的信息顯示、以及停車的收費(fèi)功能。設(shè)計(jì)目的為如果停車場(chǎng)已放滿n輛車,則后來(lái)的

3、車輛只能在停車場(chǎng)大門外的便道上等待,一旦停車場(chǎng)內(nèi)有車開(kāi)走,則排以便道上的第一輛車就進(jìn)入停車場(chǎng)。停車場(chǎng)內(nèi)如有某輛車要開(kāi)走,在它之后進(jìn)入停車場(chǎng)的車都必須先退出停車場(chǎng)為它讓路,待其開(kāi)出停車場(chǎng)后,這些輛再依原來(lái)的次序進(jìn)場(chǎng)。每輛車在離開(kāi)停車場(chǎng)時(shí),都應(yīng)根據(jù)它在停車場(chǎng)內(nèi)停留的時(shí)間長(zhǎng)短交費(fèi)。如果停留在便道上的車未進(jìn)停車場(chǎng)時(shí),允許其離去,不收停車費(fèi),并且仍然保持在便道上等待的車輛的次序。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以列表結(jié)構(gòu)實(shí)現(xiàn)。利用了棧和隊(duì)列的五項(xiàng)基本知識(shí),實(shí)現(xiàn)插入、刪除、查詢、判斷隊(duì)列和棧是否為空來(lái)實(shí)現(xiàn)功能。關(guān)鍵詞:停車場(chǎng)管理、線性表、棧、隊(duì)列目錄1.題目概述(內(nèi)容及要求)11.1設(shè)計(jì)內(nèi)容12.功能分析12.1功

4、能模塊12.2程序流程圖23.設(shè)計(jì)33.1結(jié)構(gòu)描述33.2 棧描述43.3 函數(shù)描述44.運(yùn)行與測(cè)試44.1主菜單44.2車輛到達(dá)登記54.3車輛離開(kāi)登記54.4車輛列表顯示64.5退出系統(tǒng)65.總結(jié)7參考文獻(xiàn)81.題目概述(內(nèi)容及要求)1.1設(shè)計(jì)內(nèi)容(1)問(wèn)題描述:設(shè)有一個(gè)可以停放n輛汽車的停車場(chǎng),它只有一個(gè)大門可以供車輛進(jìn)出。車輛按到達(dá)停車場(chǎng)時(shí)間的早晚依次從停車場(chǎng)最里面向大門口處停放(最先到達(dá)的第一輛車放在停車場(chǎng)的最里面)。如果停車場(chǎng)已放滿n輛車,則后來(lái)的車輛只能在停車場(chǎng)大門外的便道上等待,一旦停車場(chǎng)內(nèi)有車開(kāi)走,則排以便道上的第一輛車就進(jìn)入停車場(chǎng)。停車場(chǎng)內(nèi)如有某輛車要開(kāi)走,在它之后進(jìn)入停車

5、場(chǎng)的車都必須先退出停車場(chǎng)為它讓路,待其開(kāi)出停車場(chǎng)后,這些輛再依原來(lái)的次序進(jìn)場(chǎng)。每輛車在離開(kāi)停車場(chǎng)時(shí),都應(yīng)根據(jù)它在停車場(chǎng)內(nèi)停留的時(shí)間長(zhǎng)短交費(fèi)。如果停留在便道上的車未進(jìn)停車場(chǎng)時(shí),允許其離去,不收停車費(fèi),并且仍然保持在便道上等待的車輛的次序。編制一程序模擬該停車場(chǎng)的管理。(2)基本要求:要求程序輸出每輛車到達(dá)后的停車位置(停車場(chǎng)或便道上),以及某輛車離開(kāi)停車場(chǎng)應(yīng)交納的費(fèi)用和它在停車場(chǎng)內(nèi)停留的時(shí)間。實(shí)現(xiàn)提示:汽車的模擬輸入信息格式可以是:(到達(dá)/離去,汽車牌照號(hào)碼,到達(dá)/離去的時(shí)刻)。例如,(A,1,5)表示1號(hào)牌照車在5這個(gè)時(shí)刻到達(dá),而(D,5,20)表示5號(hào)牌照車在20這個(gè)時(shí)刻離去。整個(gè)程序可以在

6、輸入信息為(E,0,0)時(shí)結(jié)束。本題可用棧和隊(duì)列來(lái)實(shí)現(xiàn)1.2設(shè)計(jì)目的(1)棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以列表結(jié)構(gòu)實(shí)現(xiàn)。(2)隊(duì)列的五種要求置空隊(duì)列、進(jìn)隊(duì)、出隊(duì)、取隊(duì)頭元素、判斷空隊(duì)列。(3)棧的五種要求清空堆棧、壓棧、彈出、取棧頂元素、判斷???。2.功能分析2.1功能模塊主菜單車輛離開(kāi)登記車輛列表顯示車輛到達(dá)登記退出系統(tǒng)2.2程序流程圖3.設(shè)計(jì) 程序用了一個(gè)類,五個(gè)結(jié)構(gòu),兩個(gè)棧(其中一個(gè)為臨時(shí)棧),除主函數(shù)外用了八個(gè)函數(shù); 3.1結(jié)構(gòu)描述結(jié)構(gòu):Time-建立時(shí)間結(jié)點(diǎn) CarNode-建立車輛信息結(jié)點(diǎn) SeqStackCar-模擬車站QueueNode-建立數(shù)據(jù)鏈結(jié)點(diǎn) LinkQueueCar-模擬便

7、道typedef struct time /定義時(shí)間結(jié)點(diǎn)int hour;int min;Time;typedef struct node/定義車輛信息結(jié)點(diǎn)char num10; Time reach; Time leave;CarNode;typedef struct NODE/定義車輛模擬結(jié)點(diǎn)CarNode *stackMAX+1; int top;SeqStackCar;typedef struct car/定義數(shù)據(jù)鏈結(jié)點(diǎn)CarNode *data; struct car *next;QueueNode;typedef struct Node/定義便道模擬結(jié)點(diǎn)QueueNode *hea

8、d; QueueNode *rear;LinkQueueCar;3.2 棧描述(1)、在SeqStackCar中定義創(chuàng)建一個(gè)棧 CarNode *stackMAX+1; int top;(2)、SeqStackCar Enter,Temp InitStack(&Temp) 在車輛離開(kāi)時(shí),應(yīng)用temp臨時(shí)把將要離開(kāi)的車輛后續(xù)車輛壓入,等車輛離開(kāi)后壓回原棧stack void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W)3.3 函數(shù)描述函數(shù):(1)int Arrival(SeqStackCar *Enter,LinkQueu

9、eCar *W)/定義車輛到達(dá)函數(shù)(2)int InitQueue(LinkQueueCar *Q)/定義車輛通道隊(duì)列函數(shù)(3)void InitStack(SeqStackCar *s)/定義車輛位置棧函數(shù)(4)void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W)/定義車輛離開(kāi)函數(shù),調(diào)用棧和隊(duì)列(5)void List(SeqStackCar S,LinkQueueCar W)/定義車輛棧、隊(duì)列函數(shù)(6)void List1(SeqStackCar *S)/定義車輛位置村粗棧函數(shù)(7)void List2(LinkQ

10、ueueCar *W)/定義車輛通道隊(duì)列函數(shù)(8)void PRINT(CarNode *p,int room)/定義車輛收費(fèi)函數(shù)4.運(yùn)行與測(cè)試4.1主菜單主菜單包括(圖4.1):選擇:1:車輛到達(dá)登記,2:車輛離開(kāi)登記3:車輛列表顯示,4:退出系統(tǒng)。圖4.14.2車輛到達(dá)登記 選擇1進(jìn)入“車輛到達(dá)登記”輸入車牌號(hào);系統(tǒng)自動(dòng)分配車輛位置;輸入到達(dá)時(shí)間(圖4.2)。圖4.24.3車輛離開(kāi)登記選擇功能:2車輛離開(kāi)登記輸入離開(kāi)時(shí)間;車輛系統(tǒng)自動(dòng)輸出所繳納費(fèi)用(圖4.3)圖4.34.4車輛列表顯示 車輛列表顯示功能,選擇1:車場(chǎng)列表;2:便道列表;3:返回主菜單;輸入1:顯示車場(chǎng)位置到達(dá)時(shí)間和車牌號(hào);

11、輸入2:顯示車道車輛和車牌號(hào)。(圖4.4)圖4.44.5退出系統(tǒng)功能選擇:4:退出系統(tǒng)。(圖4.5)圖4.55.總結(jié)通過(guò)這一次的課程設(shè)計(jì),加深了我對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程所學(xué)內(nèi)容的進(jìn)一步的理解與掌握,對(duì)C語(yǔ)言也更深的熟悉和應(yīng)用;同時(shí),通過(guò)對(duì)停車場(chǎng)管理系統(tǒng)的開(kāi)發(fā),使得我將以前課程所學(xué)知識(shí)與實(shí)際問(wèn)題很好地相聯(lián)接在了一起。在這次課程設(shè)計(jì)中,培養(yǎng)了我開(kāi)發(fā)一個(gè)中小型程序的能力。在這次課程設(shè)計(jì)中,使得我很好地了解了在開(kāi)發(fā)程序重要性。在這次課程設(shè)計(jì)中,我所開(kāi)發(fā)的停車場(chǎng)管理系統(tǒng),基本上可以完成每一項(xiàng)功能。汽車進(jìn)入停車場(chǎng)的信息、離開(kāi)停車場(chǎng)的信息以及通道上的信息都可以在程序上一一實(shí)現(xiàn)。但是,該程序也有不足的地方。這個(gè)程

12、序中,為了簡(jiǎn)便起見(jiàn),直接運(yùn)用鏈表存儲(chǔ)數(shù)據(jù),沒(méi)有使用C語(yǔ)言中的文本文檔存入數(shù)據(jù),這一點(diǎn)不符合實(shí)際應(yīng)用的情況,這是該程序的主要缺點(diǎn);所以,在這方面還是有待改進(jìn)的。總之,在這次的課程設(shè)計(jì)中,我以及我的收獲還是挺大的,對(duì)于專業(yè)課有了更好的認(rèn)識(shí)。參考文獻(xiàn)【1】數(shù)據(jù)結(jié)構(gòu)與算法嚴(yán)蔚敏 清華大學(xué)出版社,2010【2】譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)(第三版). 北京:清華大學(xué)出版社,2005【3】數(shù)據(jù)結(jié)構(gòu)案例分析與習(xí)題解答李筠、姜學(xué)軍 清華大學(xué)出版社,2013附頁(yè):源代碼#include#include#include#define MAX 200#define price 0.05typedef struct ti

13、me/定義時(shí)間結(jié)點(diǎn)int hour;int min;Time;typedef struct node/定義車輛信息結(jié)點(diǎn)char num10; Time reach; Time leave;CarNode;typedef struct NODE/定義車站結(jié)點(diǎn)CarNode *stackMAX+1; int top;SeqStackCar;typedef struct car/定義數(shù)據(jù)鏈結(jié)點(diǎn)CarNode *data; struct car *next;QueueNode;typedef struct Node/定義便道結(jié)點(diǎn)QueueNode *head; QueueNode *rear;Link

14、QueueCar;void InitStack(SeqStackCar *); /定義模擬車站函數(shù)int InitQueue(LinkQueueCar *);/定義便道車輛函數(shù)int Arrival(SeqStackCar *,LinkQueueCar *); /定義車輛到達(dá)結(jié)構(gòu)(存儲(chǔ))函數(shù)void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *);/定義車輛離開(kāi)函數(shù)void List(SeqStackCar,LinkQueueCar); /定義車輛到達(dá)結(jié)構(gòu)(存儲(chǔ))函數(shù)void main()SeqStackCar Enter,Temp; Lin

15、kQueueCar Wait; int ch; InitStack(&Enter); InitStack(&Temp); InitQueue(&Wait); while(1) printf(*停車場(chǎng)管理系統(tǒng)*n);printf(*曹杰()*n);printf(* 1. 車輛到達(dá)登記*n);printf(* 2. 車輛離開(kāi)登記*n);printf(* 3.車輛列表顯示*n);printf(* 4. 退出系統(tǒng)*n);printf(請(qǐng)選擇功能:n);while(1) scanf(%d,&ch);/判斷數(shù)據(jù)是否正確 if(ch=1&chtop=0; for(i=0;istacks-top=NULL;i

16、nt InitQueue(LinkQueueCar *Q)/創(chuàng)建隊(duì)列Q-head=(QueueNode *)malloc(sizeof(QueueNode); if(Q-head!=NULL) Q-head-next=NULL; Q-rear=Q-head; return(1); else return(-1);void PRINT(CarNode *p,int room) /創(chuàng)建計(jì)費(fèi)函數(shù) int A1,A2,B1,B2; printf(n車輛離開(kāi)的時(shí)間:); scanf(%d:%d,&(p-leave.hour),&(p-leave.min); printf(n離開(kāi)車輛的車牌號(hào)為:); pu

17、ts(p-num); printf(n其到達(dá)時(shí)間為: %d:%d,p-reach.hour,p-reach.min); printf(離開(kāi)時(shí)間為: %d:%d,p-leave.hour,p-leave.min); A1=p-reach.hour; A2=p-reach.min; B1=p-leave.hour; B2=p-leave.min; printf(n應(yīng)交費(fèi)用為: %2.1f元,(B1-A1)*60+(B2-A2)*price); free(p);int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /定義車輛到達(dá)函數(shù)CarNode *p;/車

18、站節(jié)點(diǎn)指針 QueueNode *t;/ p=(CarNode *)malloc(sizeof(CarNode); flushall();printf(n請(qǐng)輸入車牌號(hào)(例:遼B1234):); gets(p-num); if(Enter-toptop+;printf(n車輛在車場(chǎng)第%d位置.,Enter-top); printf(n車輛到達(dá)時(shí)間:); scanf(%d:%d,&(p-reach.hour),&(p-reach.min); Enter-stackEnter-top=p;/置空棧 return(1); else printf(n該車須在便道等待!有車位時(shí)進(jìn)入車場(chǎng)); t=(Queu

19、eNode *)malloc(sizeof(QueueNode);/向隊(duì)列中增加一個(gè)結(jié)點(diǎn) t-data=p; t-next=NULL; W-rear-next=t; W-rear=t; return(1); void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) /車輛離開(kāi)函數(shù) int room; CarNode *p,*t; QueueNode *q; if(Enter-top0) /判斷存儲(chǔ)位置是否大于零 while(1) printf(n請(qǐng)輸入車在車場(chǎng)的位置/1-%d/:,Enter-top); scanf(%d,

20、&room); if(room=1&roomtop) break;while(Enter-toproom) Temp-top+;/車位增加1Temp-stack=Enter-stack; Enter-stack=NULL; Enter-top-; p=Enter-stack;/棧中刪除車位元素 Enter-stack=NULL; Enter-top-;while(Temp-top=1) Enter-top+;Enter-stack=Temp-stack;/棧中刪除車輛信息元素 Temp-stack=NULL; Temp-top-;PRINT(p,room);if(W-head!=W-rear)&Enter-tophead-next; t=q-data; Enter-top+;printf(n便道的%s號(hào)車進(jìn)入車場(chǎng)第%d位置.,t-num,Enter-top); printf(n請(qǐng)輸入%s號(hào)車進(jìn)入車場(chǎng)的時(shí)間:);scanf(%d:%d,&(t-reach.hour),&(t-reach.min); W-head-next=q-next; /刪除隊(duì)列元素 if(q=W-rear) W-rear=W-head; Enter-stack=t; free(q);else printf(n便道里沒(méi)有車

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論