版權(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ì)》</p><p> 設(shè)計(jì)題目: 停車(chē)場(chǎng)管理系統(tǒng) </p><p> 學(xué) 院: 信息工程學(xué)院 </p><p> 專 業(yè): 醫(yī)學(xué)信息系統(tǒng) </p><p> 班 級(jí): 11級(jí)08班
2、 </p><p> 指導(dǎo)老師: </p><p> 成 績(jī): </p><p><b> 2013年9月7日</b></p><p><b> 目 錄</b>
3、;</p><p> 1項(xiàng)目研究背景與意義………………………………………………… 1</p><p> 2需求分析……………………………………………………………… 3</p><p> 3概要設(shè)計(jì)……………………………………………………………… 3</p><p> 4詳細(xì)設(shè)計(jì)(算法設(shè)計(jì)的思想)………………………………………… 4&l
4、t;/p><p> 5源代碼及調(diào)試………………………………………………………… 6</p><p> 6問(wèn)題及難點(diǎn)所在………………………………………………………15</p><p> 7使用說(shuō)明及測(cè)試結(jié)果…………………………………………………16</p><p> 8總結(jié)與體會(huì)……………………………………………………………19</p
5、><p> 9參考文獻(xiàn)………………………………………………………………20 </p><p> 1 項(xiàng)目研究背景與意義 </p><p><b> 1.1 課題簡(jiǎn)介</b></p><p><b> 課程設(shè)計(jì)題目名稱:</b></p><p><b> 停車(chē)場(chǎng)
6、管理系統(tǒng)</b></p><p><b> 課程設(shè)計(jì)目的:</b></p><p> 通過(guò)《數(shù)據(jù)結(jié)構(gòu)》課程的學(xué)習(xí),將數(shù)據(jù)結(jié)構(gòu)應(yīng)用在具體的編程方面,更加了解課程所學(xué)習(xí)的內(nèi)容及思維邏輯,提高程序開(kāi)發(fā)能力,能運(yùn)用合理的控制流程編寫(xiě)清晰高效的程序。開(kāi)發(fā)一個(gè)中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過(guò)程,培養(yǎng)分析問(wèn)題、解決實(shí)際問(wèn)題的能力。</p><p>
7、;<b> 課程設(shè)計(jì)意義:</b></p><p> 利用數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),了解學(xué)生對(duì)《數(shù)據(jù)結(jié)構(gòu)》的理解和加強(qiáng)學(xué)生對(duì)數(shù)據(jù)結(jié)構(gòu)方面的應(yīng)用知識(shí)。幫助學(xué)生好好利用數(shù)據(jù)結(jié)構(gòu)的知識(shí)和思想,解決各方面的編程難題。</p><p><b> 課程設(shè)計(jì)內(nèi)容:</b></p><p><b> ?。?)問(wèn)題描述:</b
8、></p><p> 設(shè)有一個(gè)可以停放n輛汽車(chē)的狹長(zhǎng)停車(chē)場(chǎng),它只有一個(gè)大門(mén)可以供車(chē)輛進(jìn)出。車(chē)輛按到達(dá)停車(chē)場(chǎng)時(shí)間的早晚依次從停車(chē)場(chǎng)最里面向大門(mén)口處停放(最先到達(dá)的第一輛車(chē)放在停車(chē)場(chǎng)的最里面)。如果停車(chē)場(chǎng)已放滿n輛車(chē),則后來(lái)的車(chē)輛只能在停車(chē)場(chǎng)大門(mén)外的便道上等待,一旦停車(chē)場(chǎng)內(nèi)有車(chē)開(kāi)走,則排以便道上的第一輛車(chē)就進(jìn)入停車(chē)場(chǎng)。停車(chē)場(chǎng)內(nèi)如有某輛車(chē)要開(kāi)走,在它之后進(jìn)入停車(chē)場(chǎng)的車(chē)都必須先退出停車(chē)場(chǎng)為它讓路,待其開(kāi)出停車(chē)場(chǎng)后
9、,這些輛再依原來(lái)的次序進(jìn)場(chǎng)。每輛車(chē)在離開(kāi)停車(chē)場(chǎng)時(shí),都應(yīng)根據(jù)它在停車(chē)場(chǎng)內(nèi)停留的時(shí)間長(zhǎng)短交費(fèi)。如果停留在便道上的車(chē)未進(jìn)停車(chē)場(chǎng)時(shí),允許其離去,不收停車(chē)費(fèi),并且仍然保持在便道上等待的車(chē)輛的次序。編制一程序模擬該停車(chē)場(chǎng)的管理。</p><p><b> ?。?)基本要求:</b></p><p> 以棧模擬停車(chē)場(chǎng),以隊(duì)列模擬車(chē)場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管
10、理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車(chē)“到達(dá)”或“離去”信息、汽車(chē)牌照號(hào)碼、到達(dá)或離去的時(shí)刻,對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出數(shù)據(jù)為:若是車(chē)輛到達(dá),則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)或便道上的停車(chē)位置;若是車(chē)離去;</p><p> 則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表實(shí)現(xiàn)。</p><p><b> (3)測(cè)試數(shù)據(jù):<
11、;/b></p><p> 汽車(chē)的模擬輸入信息格式可以是:(到達(dá)/離去,汽車(chē)牌照號(hào)碼,到達(dá)/離去的時(shí)刻)。例如,(‘A’,1,5)表示1號(hào)牌照車(chē)在5這個(gè)時(shí)刻到達(dá),而(‘D’,5,20)表示5號(hào)牌照車(chē)在20這個(gè)時(shí)刻離去。整個(gè)程序可以在輸入信息為(‘E’,0,0)時(shí)結(jié)束。本題可用棧和隊(duì)列來(lái)實(shí)現(xiàn)。</p><p><b> ?。?)實(shí)現(xiàn)提示 </b></p&g
12、t;<p> 需另設(shè)一個(gè)棧,臨時(shí)停放為給要離去的汽車(chē)讓路而從停車(chē)場(chǎng)退出來(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ǎng)的時(shí)刻。 </p><p> 課程設(shè)計(jì)預(yù)期實(shí)現(xiàn)效果:</p><p> 開(kāi)發(fā)可完成每一項(xiàng)基本功能的小型停車(chē)場(chǎng)管理系統(tǒng)</p><p> 1.2
13、方案及其論證</p><p><b> 語(yǔ)言:C++</b></p><p> 運(yùn)行環(huán)境:Microsoft Visual C++ 6.0</p><p><b> 設(shè)計(jì)進(jìn)度安排:</b></p><p><b> 2需求分析</b></p><p&
14、gt; IT行業(yè)的高速發(fā)展讓計(jì)算機(jī)技術(shù)深入日常生活的每一個(gè)細(xì)節(jié)。隨著城市化程度的加深,房地產(chǎn)行業(yè)日益興盛,越來(lái)越多的小區(qū)散布在城市里,小區(qū)的車(chē)輛也與日俱增,停車(chē)場(chǎng)是小區(qū)里不可缺少的一部分,對(duì)停車(chē)場(chǎng)飛管理變得非常重要。通過(guò)開(kāi)發(fā)小區(qū)停車(chē)場(chǎng)管理系統(tǒng),使小區(qū)里的車(chē)輛能得到有序的管理,這個(gè)系統(tǒng)使用對(duì)象為停車(chē)場(chǎng)的管理人員。</p><p> 系統(tǒng)需要滿足的要求:若是車(chē)輛到達(dá),則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)或便道上的停車(chē)位置;若是車(chē)
15、離去,則輸出汽車(chē)在停車(chē)場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。</p><p> 3概要設(shè)計(jì)(特殊功能) </p><p><b> 1、設(shè)計(jì)思想</b></p><p> 此停車(chē)場(chǎng)管理系統(tǒng)是在一個(gè)狹長(zhǎng)的通道上的,而且只有一個(gè)大門(mén)可以供車(chē)輛進(jìn)出,并且要實(shí)現(xiàn)停車(chē)場(chǎng)內(nèi)某輛車(chē)要離開(kāi)時(shí),在它之后進(jìn)入停車(chē)場(chǎng)的車(chē)都必須先退出停車(chē)場(chǎng)為
16、它讓路,待其開(kāi)出停車(chē)場(chǎng)后,這些輛再依原來(lái)的次序進(jìn)場(chǎng)的功能,就可以設(shè)計(jì)兩個(gè)堆棧,其中一個(gè)堆棧用來(lái)模擬停車(chē)場(chǎng),另一個(gè)堆棧用來(lái)模擬臨時(shí)停車(chē)場(chǎng),該臨時(shí)停車(chē)場(chǎng)用來(lái)存放當(dāng)有車(chē)輛離開(kāi)時(shí),原來(lái)停車(chē)場(chǎng)內(nèi)為其讓路的車(chē)輛。至于當(dāng)停車(chē)場(chǎng)已滿時(shí),需要停放車(chē)輛的通道可以用一個(gè)鏈隊(duì)列來(lái)實(shí)現(xiàn)。當(dāng)停車(chē)場(chǎng)內(nèi)開(kāi)走一輛車(chē)時(shí),通道上便有一輛車(chē)進(jìn)入停車(chē)場(chǎng),此時(shí)只需要改變通道上車(chē)輛結(jié)點(diǎn)的連接方式就可以了,使通道上第一輛車(chē)進(jìn)入停車(chē)場(chǎng)這個(gè)堆棧,并且使通道上原來(lái)的第二輛車(chē)成為通道上的第一
17、輛車(chē),此時(shí)只需將模擬通道的鏈隊(duì)列的頭結(jié)點(diǎn)連到原來(lái)的第二輛車(chē)上就可以了。</p><p><b> 2、實(shí)現(xiàn)方法</b></p><p> 對(duì)于此停車(chē)場(chǎng)管理系統(tǒng)的實(shí)現(xiàn),就是用兩個(gè)堆棧來(lái)分別模擬停車(chē)場(chǎng)以及停車(chē)場(chǎng)內(nèi)車(chē)輛為其它車(chē)輛讓路時(shí)退出停車(chē)的臨時(shí)停放地點(diǎn)。至于通道上車(chē)輛的停放則用一個(gè)鏈隊(duì)列來(lái)實(shí)現(xiàn),此時(shí),通道上車(chē)輛的離開(kāi)或者進(jìn)入停車(chē)場(chǎng)只需改變此鏈隊(duì)</p>
18、<p> 列上的結(jié)點(diǎn)而已。對(duì)于要對(duì)停車(chē)場(chǎng)內(nèi)的車(chē)輛根據(jù)其停放時(shí)間收取相應(yīng)的停車(chē)費(fèi)用,可以記錄下車(chē)輛進(jìn)入以及離開(kāi)停車(chē)場(chǎng)的時(shí)間,再用時(shí)間差乘以相應(yīng)的單價(jià)并且打印出最后的費(fèi)用就可以實(shí)現(xiàn)了。</p><p> 3、功能(函數(shù))設(shè)計(jì) </p><p> 本程序從總體上分為四個(gè)功能模塊,分別為: </p><p> ?。?)程序功能介紹和操作提示模塊 </
19、p><p> (2)汽車(chē)進(jìn)入停車(chē)位的管理模塊 </p><p> ?。?)汽車(chē)離開(kāi)停車(chē)位的管理模塊 </p><p> ?。?)查看停車(chē)場(chǎng)狀態(tài)的查詢模塊 </p><p> 在以上各個(gè)模塊中,出現(xiàn)的調(diào)用的函數(shù)為:</p><p> void InitStack(StackCar *); //初始化棧</p&
20、gt;<p> int InitQueue(LinkQueueCar *); //初始化隊(duì)列</p><p> int Arrival(StackCar *,LinkQueueCar *); //進(jìn)站登記</p><p> void Leave(StackCar *,StackCar *,LinkQueueCar *); //出站登記</p>&
21、lt;p> void List(StackCar,LinkQueueCar); //查詢車(chē)位狀態(tài)</p><p><b> 4詳細(xì)設(shè)計(jì)</b></p><p><b> 流程圖:</b></p><p><b> 5源代碼及調(diào)試</b></p><p><
22、b> 程序代碼</b></p><p> #include<iostream.h></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h></p>
23、<p> #define MAX 100</p><p> #define price 0.05</p><p> typedef struct Time //時(shí)間結(jié)構(gòu)體</p><p><b> {</b></p><p><b> int hour;</b></
24、p><p><b> int min;</b></p><p><b> }Time;</b></p><p> typedef struct CarNode //汽車(chē)結(jié)構(gòu)體</p><p><b> {</b></p><p> char nu
25、m[10];</p><p> Time reach;</p><p> Time leave;</p><p><b> }CarNode;</b></p><p> typedef struct StackCar //存儲(chǔ)汽車(chē)的棧結(jié)構(gòu)</p><p><b> {<
26、;/b></p><p> CarNode *stack[MAX+1];</p><p><b> int top;</b></p><p> }StackCar;</p><p> typedef struct QueueCarNode //存儲(chǔ)汽車(chē)的隊(duì)列結(jié)構(gòu)</p><p>
27、<b> {</b></p><p> CarNode *data;</p><p> struct QueueCarNode *next;</p><p> }QueueCarNode;</p><p> typedef struct LinkQueueCar //定義隊(duì)列結(jié)構(gòu)指針</p>&
28、lt;p><b> {</b></p><p> QueueCarNode *head;</p><p> QueueCarNode *rear;</p><p> }LinkQueueCar;</p><p> void InitStack(StackCar *); </p><p
29、> int InitQueue(LinkQueueCar *);</p><p> int Arrival(StackCar *,LinkQueueCar *); </p><p> void Leave(StackCar *,StackCar *,LinkQueueCar *);</p><p> void List(StackCar,LinkQu
30、eueCar); </p><p> void main()</p><p><b> {</b></p><p> printf("\t\t===========歡迎你進(jìn)入停車(chē)場(chǎng)管理系統(tǒng)===========\n");</p><p> printf("\t\t 小組
31、成員:李嘉偉 黃庭華 楊茂銓 李俊鵬\n");</p><p> printf("\t\t 班級(jí):11級(jí)08班 \n");</p><p> StackCar Enter,Temp;</p><p> LinkQueueCar Wait;</p><p><b> int a
32、;</b></p><p><b> int b=1;</b></p><p> InitStack(&Enter); </p><p> InitStack(&Temp); //汽車(chē)出站時(shí),暫時(shí)按次序存放汽車(chē)的棧結(jié)構(gòu)</p><p> InitQueue(&Wait)
33、; </p><p><b> while(b)</b></p><p><b> { </b></p><p> cout<<"\n1. 汽車(chē)進(jìn)站登記";</p><p> cout<<" 2. 汽車(chē)出站登記";</
34、p><p> cout<<" 3. 車(chē)位狀態(tài)顯示";</p><p> cout<<" 4. 退出系統(tǒng)\n";</p><p><b> cin>>a;</b></p><p><b> while(b)</b>&l
35、t;/p><p><b> {</b></p><p> if(a==1||a==2||a==3||a==4) break;</p><p><b> else </b></p><p><b> { </b></p><p> cout<&
36、lt;"\n錯(cuò)誤! 退出系統(tǒng)\n";</p><p><b> b=0;</b></p><p><b> break; </b></p><p><b> }</b></p><p><b> }</b></p>
37、<p><b> switch(a)</b></p><p><b> { </b></p><p> case 1:Arrival(&Enter,&Wait);break;</p><p> case 2:Leave(&Enter,&Temp,&Wait);br
38、eak;</p><p> case 3:List(Enter,Wait);break;</p><p> case 4:exit(0);</p><p> default: break;</p><p><b> }</b></p><p><b> }</b>&
39、lt;/p><p><b> }</b></p><p> void InitStack(StackCar *s) //初始化棧</p><p><b> { </b></p><p><b> int i;</b></p><p><b&
40、gt; s->top=0;</b></p><p> for(i=0;i<=MAX;i++)</p><p> s->stack[s->top]=NULL;</p><p><b> }</b></p><p> int InitQueue(LinkQueueCar *Q)
41、 //初始化隊(duì)列</p><p><b> {</b></p><p> Q->head=(QueueCarNode *)malloc(sizeof(QueueCarNode));</p><p> if(Q->head!=NULL)</p><p><b> {</b><
42、/p><p> Q->head->next=NULL;</p><p> Q->rear=Q->head;</p><p> return(1);</p><p><b> }</b></p><p> else return(-1);</p><
43、p><b> }</b></p><p> int Arrival(StackCar *Enter,LinkQueueCar *W) //進(jìn)站登記</p><p><b> { </b></p><p> CarNode *p;</p><p> QueueCarNode *
44、t;</p><p> p=(CarNode *)malloc(sizeof(CarNode));</p><p> cout<<"\n請(qǐng)輸入車(chē)牌號(hào):";</p><p> cin>>p->num ;</p><p> if(Enter->top<MAX)
45、 //有空車(chē)位</p><p><b> {</b></p><p> Enter->top++;</p><p> cout<<"\n車(chē)輛在車(chē)場(chǎng)第 "<<Enter->top<<" 號(hào)車(chē)位";</p><p>
46、 cout<<"\n車(chē)輛到達(dá)時(shí)間(時(shí)):";</p><p> cin>>p->reach.hour;</p><p> cout<<"\n車(chē)輛到達(dá)時(shí)間(分):";</p><p> cin>>p->reach.min;</p><p>
47、 Enter->stack[Enter->top]=p;</p><p> return(1);</p><p><b> }</b></p><p> else //沒(méi)有空車(chē)位</p><p><b> { </b></p><p>
48、; cout<<"\n該車(chē)須在便道等待!有車(chē)位時(shí)進(jìn)入車(chē)場(chǎng)!";</p><p> t=(QueueCarNode *)malloc(sizeof(QueueCarNode));</p><p> t->data=p;</p><p> t->next=NULL; </p><p> W-&
49、gt;rear->next=t;</p><p> W->rear=t;</p><p> return(1);</p><p><b> }</b></p><p><b> }</b></p><p> void PRINT(CarNode *p,i
50、nt room) //汽車(chē)離站時(shí)繳費(fèi)顯示</p><p><b> { </b></p><p> cout<<"\n車(chē)輛離開(kāi)的時(shí)間(時(shí)):";</p><p> cin>>p->leave.hour;</p><p> cout<<"\
51、n車(chē)輛離開(kāi)的時(shí)間(分):";</p><p> cin>>p->leave.min;</p><p> printf("\n離開(kāi)車(chē)輛的車(chē)牌號(hào)為:");</p><p> cout<<p->num;</p><p> cout<<"\n其到達(dá)時(shí)間為:
52、 "<<p->reach.hour<<" 時(shí) "<<p->reach.min<<" 分";</p><p> cout<<"\n離開(kāi)時(shí)間為: "<<p->leave.hour<<" 時(shí) "<<p->l
53、eave.min<<" 分";</p><p> cout<<"\n應(yīng)交費(fèi)用為: "<<((p->leave.hour - p->reach.hour)*60+(p->leave.min - p->reach.min))*price<<" 元";</p><p&
54、gt;<b> free(p);</b></p><p><b> }</b></p><p> void Leave(StackCar *Enter,StackCar *Temp,LinkQueueCar *W) //出站登記</p><p><b> { </b></p>
55、;<p><b> int room;</b></p><p> CarNode *p,*t;</p><p> QueueCarNode *q;</p><p> if(Enter->top>0) //車(chē)站有車(chē)時(shí)</p><p><b> { </b><
56、/p><p> while(1) </p><p><b> {</b></p><p> cout<<"\n請(qǐng)輸入車(chē)在車(chē)場(chǎng)的位置:";</p><p> cin>>room;</p><p> if(room>=1&&ro
57、om<=Enter->top) break;</p><p><b> }</b></p><p> while(Enter->top>room) //位置不在棧頂?shù)钠?chē)出站</p><p><b> {</b></p><p> Temp->top++;
58、 </p><p> Temp->stack[Temp->top]=Enter->stack[Enter->top];</p><p> Enter->stack[Enter->top]=NULL;</p><p> Enter->top--;</p><p>
59、<b> } </b></p><p> p=Enter->stack[Enter->top];</p><p> Enter->stack[Enter->top]=NULL;</p><p> Enter->top--;</p><p> while(Temp->top&g
60、t;=1) //當(dāng)暫時(shí)存儲(chǔ)汽車(chē)的棧結(jié)構(gòu)中有汽車(chē)時(shí)汽車(chē)重</p><p><b> 新進(jìn)站</b></p><p><b> {</b></p><p> Enter->top++;</p><p> Enter->stack[Enter->top]=Temp->st
61、ack[Temp->top];</p><p> Temp->stack[Temp->top]=NULL;</p><p> Temp->top--;</p><p><b> }</b></p><p> PRINT(p,room);</p><p> if((
62、W->head!=W->rear)&&Enter->top<MAX) //車(chē)站有空位且便道有車(chē)時(shí),便道車(chē)進(jìn)站</p><p><b> { </b></p><p> q=W->head->next;</p><p> t=q->data;</p><p&
63、gt; Enter->top++;</p><p> cout<<"\n便道的"<<t->num<<"號(hào)車(chē)進(jìn)入車(chē)場(chǎng)第"<<Enter->top<<"號(hào)車(chē)位.";</p><p> cout<<"\n請(qǐng)輸入"<&
64、lt;t->num<<"號(hào)車(chē)進(jìn)入車(chē)場(chǎng)的時(shí)間(時(shí)):";</p><p> cin>>t->reach.hour;</p><p> cout<<"\n請(qǐng)輸入"<<t->num<<"號(hào)車(chē)進(jìn)入車(chē)場(chǎng)的時(shí)間(分):";</p><p>
65、; cin>>t->reach.min;</p><p> W->head->next=q->next;</p><p> if(q==W->rear) </p><p> W->rear=W->head;</p><p> Enter->stack[Enter->t
66、op]=t;</p><p><b> free(q);</b></p><p><b> }</b></p><p> else cout<<"\n便道里沒(méi)有車(chē).\n";</p><p><b> }</b></p>&l
67、t;p> else cout<<"\n車(chē)場(chǎng)里沒(méi)有車(chē)."; </p><p><b> }</b></p><p> void List1(StackCar *S) //車(chē)場(chǎng)車(chē)位顯示</p><p><b> { </b></p><p><
68、;b> int i;</b></p><p> if(S->top>0)</p><p><b> {</b></p><p> cout<<"\n車(chē)場(chǎng)車(chē)位狀態(tài):";</p><p> cout<<"\n車(chē)位號(hào)\t"&
69、lt;<" 到達(dá)時(shí)間 \t"<<"車(chē)牌號(hào)\n";</p><p> for(i=1;i<=S->top;i++)</p><p><b> {</b></p><p> cout<<" "<<i<<&quo
70、t;\t ";</p><p> cout<<S->stack[i]->reach.hour<<"時(shí)"<<S->stack[i]->reach.min<<"分";</p><p> cout<<"\t "<<S->
71、;stack[i]->num<<"\n";</p><p><b> }</b></p><p><b> }</b></p><p> else cout<<"\n車(chē)場(chǎng)里沒(méi)有車(chē)";</p><p><b> }
72、</b></p><p> void List2(LinkQueueCar *W) //便道車(chē)位顯示</p><p><b> { </b></p><p> QueueCarNode *p;</p><p> p=W->head->next;</p><p&g
73、t; if(W->head!=W->rear)</p><p><b> {</b></p><p> cout<<"\n便道內(nèi)車(chē)隊(duì)依次為:";</p><p> cout<<"\n<<<<<<<<<<<&
74、lt;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n";<
75、/p><p> while(p!=NULL)</p><p><b> {</b></p><p> cout<<p->data->num<<"\t";</p><p> p=p->next;</p><p><b>
76、}</b></p><p> cout<<"\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l
77、t;<<<<<<<<<<<<<<<<<<<<<";</p><p><b> }</b></p><p> else cout<<"\n便道里沒(méi)有車(chē).";</p><p>&
78、lt;b> }</b></p><p> void List(StackCar S,LinkQueueCar W) //查詢車(chē)位狀態(tài)</p><p><b> {</b></p><p> int flag,choice;</p><p><b> flag=1;</b&
79、gt;</p><p> while(flag)</p><p><b> {</b></p><p> cout<<"\n請(qǐng)選擇 :";</p><p> cout<<"\n\t\t1. 車(chē)場(chǎng)列表\n\t\t2. 便道列表\n\t\t3. 返回主菜單\n&q
80、uot;;</p><p><b> while(1)</b></p><p><b> { </b></p><p> cin>>choice;</p><p> if(choice>=1||choice<=3) break;</p><p>
81、; else cout<<"選擇錯(cuò)誤,請(qǐng)重新選擇!\n";</p><p><b> }</b></p><p> switch(choice)</p><p><b> {</b></p><p><b> case 1:</b>&l
82、t;/p><p> List1(&S);</p><p><b> break;</b></p><p><b> case 2:</b></p><p> List2(&W);</p><p><b> break;</b><
83、;/p><p><b> case 3:</b></p><p><b> flag=0;</b></p><p><b> break;</b></p><p><b> default: </b></p><p><b
84、> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> 調(diào)試過(guò)程中曾遇到的錯(cuò)誤:</p><p> 最初調(diào)試中車(chē)牌號(hào)編寫(xiě)
85、為int型,輸入的只能是數(shù)字,但現(xiàn)實(shí)生活中車(chē)牌號(hào)都為漢字+英文字母+數(shù)字,在改進(jìn)過(guò)程中,改成字符型;</p><p> 6特殊問(wèn)題解決方法 </p><p> 由于此停車(chē)場(chǎng)管理系統(tǒng)是分模塊設(shè)計(jì)的,所以,運(yùn)行時(shí)用戶選擇任務(wù)并且執(zhí)行完任務(wù)后,又會(huì)回到供用戶選擇功能的主界面,因此整個(gè)程序從整體上來(lái)講結(jié)構(gòu)清晰,使用方便。當(dāng)停車(chē)場(chǎng)已經(jīng)達(dá)到最大容量,但仍有車(chē)輛進(jìn)入停車(chē)場(chǎng)的時(shí)候,運(yùn)行界面上沒(méi)有出現(xiàn)或
86、者說(shuō)出現(xiàn)了但又跳掉了“停車(chē)場(chǎng)已滿,該車(chē)輛需在便道上等待!”的提示信息。我們小組成員經(jīng)過(guò)反復(fù)商量討論,并且在查閱了多種資料后,在那一個(gè)printf語(yǔ)句后加了一個(gè)getch(),此時(shí),程序運(yùn)行結(jié)果就符合要求了。</p><p> 7使用說(shuō)明及測(cè)試結(jié)果 </p><p> 這個(gè)程序用來(lái)實(shí)現(xiàn)對(duì)停車(chē)場(chǎng)內(nèi)車(chē)輛的管理,整個(gè)操作界面為中文,更加符合人性化的標(biāo)準(zhǔn),使得用戶使用方便,而且每一個(gè)操作都有提示
87、,使得初次接觸該程序的用戶也能很快適應(yīng)程序的操作。</p><p> 測(cè)試結(jié)果的分析與討論</p><p><b> ?、贇g迎界面</b></p><p><b> ②車(chē)輛到達(dá)</b></p><p> 為方便演示,把停車(chē)場(chǎng)的容量先設(shè)為3</p><p><b&g
88、t; ③車(chē)輛離開(kāi),收費(fèi)</b></p><p><b> ?、苘?chē)輛信息(車(chē)場(chǎng))</b></p><p><b> ⑤車(chē)輛信息(便道)</b></p><p><b> 8總結(jié)與體會(huì)</b></p><p> 通過(guò)這一次課程設(shè)計(jì),加深了我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門(mén)課程
89、所學(xué)內(nèi)容的進(jìn)一步的理解與掌握;同時(shí),通過(guò)對(duì)停車(chē)場(chǎng)管理系統(tǒng)的開(kāi)發(fā),充分的理解了用棧和隊(duì)列實(shí)現(xiàn)模擬停車(chē)場(chǎng)的基本原理,知道了棧的順序存儲(chǔ)結(jié)構(gòu)和隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的定義和算法描述,使得我將計(jì)算機(jī)課程所學(xué)知識(shí)與實(shí)際問(wèn)題很好地相聯(lián)接在了一起。在這次課程設(shè)計(jì)中,不僅培養(yǎng)了我開(kāi)發(fā)一個(gè)中小型程序的能力,而且也培養(yǎng)了我的團(tuán)隊(duì)合作能力。在這次對(duì)停車(chē)場(chǎng)管理系統(tǒng)的開(kāi)發(fā)過(guò)程中,我們小組成員互相合作,互相幫助,其中有程序功能成功實(shí)現(xiàn)時(shí)的欣喜,也有遇到問(wèn)題、解決問(wèn)題時(shí)
90、的執(zhí)著以及迷茫。在這次課程設(shè)計(jì)中,使得我很好地了解了在開(kāi)發(fā)程序過(guò)程中合作的重要性。</p><p><b> 9參考文獻(xiàn)</b></p><p> 譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)(第三版)[M]. 北京:清華大學(xué)出版社,2005</p><p> 廖雷、羅代忠. C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程[M]. 北京:高等教育出版社,2005</p&
溫馨提示
- 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)管理系統(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)管理系統(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)管理
- 數(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ì)報(bào)告---停車(chē)場(chǎng)管理系統(tǒng)
- 停車(chē)場(chǎng)管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)停車(chē)場(chǎng)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)停車(chē)場(chǎng)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告停車(chē)場(chǎng)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)停車(chē)場(chǎng)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--停車(chē)場(chǎng)管理系統(tǒng)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)停車(chē)場(chǎng)管理報(bào)告
評(píng)論
0/150
提交評(píng)論