c语言数据结构课程设计停车场管理系统,数据结构课程设计报告停车场管理系统...
《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告停車場管理系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告停車場管理系統(tǒng)(8頁珍藏版)》請?jiān)谌巳宋膸炀W(wǎng)上搜索。
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告系 別: 計(jì)算機(jī)信息與技術(shù)系 _班 級(jí):__ _ B080604_ _ __學(xué) 號(hào):______B080605_______實(shí)訓(xùn)日期:2010-08-23至2010-08-27數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告開課實(shí)驗(yàn)室: ROOM-M_ 2010年08月27日班級(jí)B080604學(xué)號(hào)B080605姓名成績課程名稱數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)項(xiàng)目名 稱停車場管理系統(tǒng)指導(dǎo)教師趙亞軍教師評語教師簽名:年 月 日一、實(shí)驗(yàn)?zāi)康?、 通過課程設(shè)計(jì),加深對數(shù)據(jù)結(jié)構(gòu)這一課程所學(xué)內(nèi)容的進(jìn)一步理解與鞏固。2、 通過課程設(shè)計(jì),加深對結(jié)構(gòu)化設(shè)計(jì)思想的理解,能對系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模塊化結(jié)構(gòu)。3、 通過課程設(shè)計(jì),提。
2、高程序開發(fā)功能,能運(yùn)用合理的控制流程編寫清晰高效的程序。4、 通過課程設(shè)計(jì),訓(xùn)練C程序調(diào)試能力,能將一個(gè)中小型各級(jí)組織系統(tǒng)聯(lián)調(diào)通過。5、 通過課程設(shè)計(jì),開發(fā)一個(gè)中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過程。6、 通話課程設(shè)計(jì),培養(yǎng)分析問題、解決實(shí)際問題的能力。二、功能要求設(shè)計(jì)一個(gè)停車場管理系統(tǒng),模擬停車場的運(yùn)作,通過此程序具備以下功能:1、要求以棧模擬停車場,以隊(duì)列模擬車場外的便道,按照從終端讀入的數(shù)據(jù)序列進(jìn)行模擬管理2、要求處理的數(shù)據(jù)元素包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息,汽車牌照號(hào)碼及到達(dá)或離去的時(shí)間3、該系統(tǒng)完成以下功能:若是車輛到達(dá),則輸出汽車在停車場內(nèi)或便道上的停車位置;若是離去,則輸出汽。
3、車在停車場內(nèi)停留的時(shí)間和應(yīng)繳納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))4、要求棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表實(shí)現(xiàn)三、設(shè)計(jì)要求1、獨(dú)立完成全部代碼的設(shè)計(jì)、編寫、調(diào)試與部署,運(yùn)行正確無誤2、編寫設(shè)計(jì)報(bào)告書設(shè)計(jì)報(bào)告書應(yīng)包括:(1) 問題描述和系統(tǒng)要求(2) 系統(tǒng)主要功能模塊設(shè)計(jì)(3) 設(shè)計(jì)中遇到的問題及其解決方法(4) 系統(tǒng)運(yùn)行報(bào)告(5) 總結(jié) 問題描述:設(shè)有一個(gè)可以停放n輛汽車的狹長停車場,它只有一個(gè)大門可以供車輛進(jìn)出。車輛按到達(dá)停車場時(shí)間的早晚依次從停車場最里面向大門口處停放(最先到達(dá)的第一輛車放在停車場的最里面)。如果停車場已放滿n輛車,則后來的車輛只能在停車場大門外的便道上等待,一旦停車場內(nèi)有車開走。
4、,則排以便道上的第一輛車就進(jìn)入停車場。停車場內(nèi)如有某輛車要開走,在它之后進(jìn)入停車場的車都必須先退出停車場為它讓路,待其開出停車場后,這些輛再依原來的次序進(jìn)場。每輛車在離開停車場時(shí),都應(yīng)根據(jù)它在停車場內(nèi)停留的時(shí)間長短交費(fèi)。如果停留在便道上的車未進(jìn)停車場時(shí),允許其離去,不收停車費(fèi),并且仍然保持在便道上等待的車輛的次序。編制一程序模擬該停車場的管理。 基本要求:要求程序輸出每輛車到達(dá)后的停車位置(停車場或便道上),以及某輛車離開停車場應(yīng)交納的費(fèi)用和它在停車場內(nèi)停留的時(shí)間。 實(shí)現(xiàn)提示:汽車的模擬輸入信息格式可以是:(到達(dá)/離去,汽車牌照號(hào)碼,到達(dá)/離去的時(shí)刻)。例如,(A,1,5)表示1號(hào)牌照車在5這。
5、個(gè)時(shí)刻到達(dá),而(D,5,20)表示5號(hào)牌照車在20這個(gè)時(shí)刻離去。整個(gè)程序可以在輸入信息為(E,0,0)時(shí)結(jié)束。本題可用棧和隊(duì)列來實(shí)現(xiàn)。四、運(yùn)行環(huán)境1 Microsoft Visual C+ 6.02 Microsoft Windows XP 操作系統(tǒng)五、實(shí)驗(yàn)步驟(繪制相應(yīng)的流程圖)Interface列表顯示車輛出庫車輛入庫信息消除信息登入檢索輸出返回主界面六、實(shí)驗(yàn)過程原始代碼#include#include#include#define MAX 5 /*車庫容量*/#define price 0.05 /*每車每分鐘費(fèi)用*/typedef struct timeint hour;int min。
6、;Time; /*時(shí)間結(jié)點(diǎn)*/typedef struct nodechar num10;Time reach;Time leave;CarNode; /*車輛信息結(jié)點(diǎn)*/typedef struct NODECarNode *stackMAX+1;int top;SeqStackCar; /*模擬車站*/typedef struct carCarNode *data;struct car *next;QueueNode;typedef struct NodeQueueNode *head;QueueNode *rear;LinkQueueCar; /*模擬通道*/void InitStack。
7、(SeqStackCar *); /*初始化棧*/ int InitQueue(LinkQueueCar *); /*初始化便道*/int Arrival(SeqStackCar *,LinkQueueCar *); /*車輛到達(dá)*/ void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*車輛離開*/void List(SeqStackCar,LinkQueueCar); /*顯示存車信息*/void main()SeqStackCar Enter,Temp;LinkQueueCar Wait;int ch;InitStack(&E。
8、nter); /*初始化車站*/ InitStack(&Temp); /*初始化讓路的臨時(shí)棧*/InitQueue(&Wait); /*初始化通道*/while(1)printf(n*n); printf(n*停 車 場 管 理 系 統(tǒng)*n);printf(n*1.車輛到達(dá)登記 * 2.車輛離開登記*);printf(n * );printf(n*);printf(n * );printf(n*3.車輛列表顯示 * 4. 退 出 系 統(tǒng)*n);printf(n* 歡*迎*使*用 *n);printf(n*n);printf(n*注意:請輸入所需序號(hào)使用本系統(tǒng)*n);while(1)scanf(。
9、%d,&ch);if(ch=1&chtop=0;for(i=0;istacks-top=NULL;int InitQueue(LinkQueueCar *Q) /*初始化便道*/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) /*打印出站車的信息*/ int A1,A2,B1,B2;printf(n車輛離開的時(shí)間為:n);scanf(%d:%d,。
10、&(p-leave.hour),&(p-leave.min);printf(n車牌號(hào)為:n);puts(p-num);printf(n其到達(dá)時(shí)間為: %d:%d,p-reach.hour,p-reach.min);printf(離開時(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 *Ente。
11、r,LinkQueueCar *W) /*車輛到達(dá)*/ CarNode *p;QueueNode *t;p=(CarNode *)malloc(sizeof(CarNode);flushall();printf(n請輸入車牌號(hào)(如:陜A00000):);gets(p-num);if(Enter-toptop+;printf(n車輛在車場第%d位置.,Enter-top);printf(n車輛到達(dá)時(shí)間為:);scanf(%d:%d,&(p-reach.hour),&(p-reach.min);Enter-stackEnter-top=p;return(1);else /*車場已滿,車進(jìn)便道*/p。
12、rintf(n對不起,停車位已滿,請?jiān)诒愕赖却?#xff0c;感謝您的配合);t=(QueueNode *)malloc(sizeof(QueueNode);t-data=p;t-next=NULL; W-rear-next=t;W-rear=t;return(1);void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) /*車輛離開*/ int room;CarNode *p,*t;QueueNode *q;/*判斷車場內(nèi)是否有車*/if(Enter-top0) /*有車*/ while(1) /*輸入離開車輛的信息*/ print。
13、f(n請輸入車在車場的位置/1-%d/:,Enter-top);scanf(%d,&room);if(room=1&roomtop) break;while(Enter-toproom) /*車輛離開*/Temp-top+;Temp-stackTemp-top=Enter-stackEnter-top;Enter-stackEnter-top=NULL;Enter-top-; p=Enter-stackEnter-top;Enter-stackEnter-top=NULL;Enter-top-;while(Temp-top=1)Enter-top+;Enter-stackEnter-top=T。
14、emp-stackTemp-top;Temp-stackTemp-top=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)入車場第%d位置.,t-num,Enter-top);printf(n請輸入車輛進(jìn)入車場的時(shí)間:);scanf(%d:%d,&(t-reach.hour),&(t-reach.min);W-head-next=q-next;if(q=W-rear) W-rear=W-head;E。
15、nter-stackEnter-top=t;free(q);else printf(n便道里沒有車輛.n);else printf(n車場里沒有車輛停放.); /*沒車*/void List1(SeqStackCar *S) /*列表顯示車場信息*/ int i;if(S-top0) /*判斷車站內(nèi)是否有車*/ printf(n車場:);printf(n 位置 到達(dá)時(shí)間 車牌號(hào)n);for(i=1;itop;i+)printf( %d ,i);printf( %d:%d ,S-stacki-reach.hour,S-stacki-reach.min);puts(S-stacki-num);el。
16、se printf(n車場里沒有車);void List2(LinkQueueCar *W) /*列表顯示便道信息*/ QueueNode *p;p=W-head-next;if(W-head!=W-rear) /*判斷通道上是否有車*/printf(n等待車輛的號(hào)碼為:);while(p!=NULL)puts(p-data-num);p=p-next;else printf(n便道里沒有車.);void List(SeqStackCar S,LinkQueueCar W)int flag,tag;flag=1;while(flag)printf(n請選擇 1|2|3:);printf(n1.。
17、車場列表n2.便道列表n3.返回主菜單n);while(1) scanf(%d,&tag);if(tag=1|tag=3) break;else printf(n請選擇 13:);switch(tag)case 1:List1(&S);break; /*列表顯示車場信息*/case 2:List2(&W);break; /*列表顯示便道信息*/case 3:flag=0;break;default: break;七、實(shí)驗(yàn)結(jié)果及分析停車場管理系統(tǒng)主界面 停車場車輛信息錄入界面車輛停滿提示車輛便道等待界面 停車場已停車輛列表顯示界面便道等待車輛信息界面?zhèn)渥?#xff1a;為方便模擬停車場實(shí)驗(yàn),停車場最多停車5輛。
18、,若有車輛需要進(jìn)入則需在編導(dǎo)等待。只有停車場內(nèi)車輛使出后,便道等待車輛才能夠進(jìn)入停車場。停車場內(nèi)車輛使出繳費(fèi)及便道車輛進(jìn)入界面八、實(shí)驗(yàn)體會(huì)與收獲(自己的體會(huì),200字以上;每人一份)這一周的課程設(shè)計(jì),通過對停車場管理系統(tǒng)的開發(fā),使得我將計(jì)算機(jī)課程所學(xué)知識(shí)與實(shí)際問題很好地相連接在了一起。在這次課程設(shè)計(jì)中,不僅培養(yǎng)了我開發(fā)一個(gè)中小型程序的能力,而且也培養(yǎng)了我們團(tuán)獨(dú)合作能力。在這次對停車場管理系統(tǒng)的開發(fā)過程中,我們每個(gè)人互相幫助。在這次課程設(shè)計(jì)中,使得我很好的了解了在開發(fā)程序中合作的重要性。在這周課程設(shè)計(jì)中,我所開發(fā)的停車場管理系統(tǒng),基本上可以完成每一項(xiàng)功能。汽車進(jìn)入停車場的信息、離開停車場的信息以及通道上的信息都可以在程序上一一實(shí)現(xiàn)。但是,該程序也有不足的地方。還有一個(gè)可以改進(jìn)的地方就是紀(jì)錄車倆進(jìn)入停車場以及離開停車場的時(shí)間,應(yīng)該精確到小時(shí)以及分鐘的,可是在程序中,為了簡便起見,我們只是設(shè)置了成了一個(gè)時(shí)刻,所以,在這方面還是有待改進(jìn)的。改進(jìn)的程序中,還應(yīng)該增加時(shí)間的判斷功能,即停車場內(nèi)有可能有車倆停放的時(shí)間超過一天。總之,在這周的課程設(shè)計(jì)中,我的收獲還是挺大的,不僅對于專業(yè)課有了更好的認(rèn)識(shí),而且在合作的過程中更加了解了團(tuán)隊(duì)精神的重要性。
總結(jié)
以上是生活随笔為你收集整理的c语言数据结构课程设计停车场管理系统,数据结构课程设计报告停车场管理系统...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何挑选西瓜
- 下一篇: Vue组件传值、Vue、组件