

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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><b> 停</b></p><p><b> 車(chē)</b></p><p><b> 場(chǎng)</b></p><p><b> 管</b></p><p><b&
2、gt; 理</b></p><p><b> 系</b></p><p><b> 統(tǒng)</b></p><p> 班級(jí):********* 指導(dǎo)教師:***</p><p> 學(xué)號(hào):*********** 姓名:***</p><p>
3、; 小組成員:***** ****** ******</p><p> 完成日期:2009年3月6日</p><p> 成績(jī):________________</p><p><b> 課程設(shè)計(jì)目的</b></p><p> 通過(guò)課程設(shè)計(jì),加深對(duì)《數(shù)據(jù)結(jié)構(gòu)》這一課程所學(xué)內(nèi)容的進(jìn)一步理解與鞏固。</p&
4、gt;<p> 通過(guò)課程設(shè)計(jì),加深對(duì)結(jié)構(gòu)化設(shè)計(jì)思想的理解,能對(duì)系統(tǒng)功能進(jìn)行分析,并設(shè)計(jì)合理的模塊化結(jié)構(gòu)。</p><p> 通過(guò)課程設(shè)計(jì),提高程序開(kāi)發(fā)功能,能運(yùn)用合理的控制流程編寫(xiě)清晰高效的程序。</p><p> 通過(guò)課程設(shè)計(jì),訓(xùn)練C程序調(diào)試能力,能將一個(gè)中小型各級(jí)組織系統(tǒng)聯(lián)調(diào)通過(guò)。</p><p> 通過(guò)課程設(shè)計(jì),開(kāi)發(fā)一個(gè)中小型系統(tǒng),掌握系
5、統(tǒng)研發(fā)全過(guò)程。</p><p> 通話(huà)課程設(shè)計(jì),培養(yǎng)分析問(wèn)題、解決實(shí)際問(wèn)題的能力。</p><p><b> 二、課程設(shè)計(jì)內(nèi)容</b></p><p><b> 問(wèn)題描述:</b></p><p> 設(shè)有一個(gè)可以停放n輛汽車(chē)的狹長(zhǎng)停車(chē)場(chǎng),它只有一個(gè)大門(mén)可以供車(chē)輛進(jìn)出。車(chē)輛按到達(dá)停車(chē)場(chǎng)時(shí)間的早
6、晚依次從停車(chē)場(chǎng)最里面向大門(mén)口處停放(最先到達(dá)的第一輛車(chē)放在停車(chē)場(chǎng)的最里面)。如果停車(chē)場(chǎng)已放滿(mǎn)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)后,這些輛再依原來(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)
7、,并且仍然保持在便道上等待的車(chē)輛的次序。編制一程序模擬該停車(chē)場(chǎng)的管理。</p><p><b> 基本要求:</b></p><p> 要求程序輸出每輛車(chē)到達(dá)后的停車(chē)位置(停車(chē)場(chǎng)或便道上),以及某輛車(chē)離開(kāi)停車(chē)場(chǎng)應(yīng)交納的費(fèi)用和它在停車(chē)場(chǎng)內(nèi)停留的時(shí)間。</p><p><b> 實(shí)現(xiàn)提示:</b></p>
8、<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è)計(jì)</b></p><p><b>
9、; 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)為它讓路,待其開(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)停
10、車(chē)場(chǎng)已滿(mǎn)時(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ē)成為通道上的第一輛車(chē),此時(shí)只需將模擬通道的鏈隊(duì)列的頭結(jié)點(diǎn)連到原來(lái)的第二輛車(chē)上就可以了。</p><p><b> 2、實(shí)現(xiàn)方法</b></p><p>
11、 對(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ì)列上的結(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><b>
12、 3、主要模塊</b></p><p> ?、俅送\?chē)場(chǎng)管理系統(tǒng),主要分為以下若干模塊:</p><p> 首先定義用來(lái)模擬停車(chē)場(chǎng)的堆棧以及用來(lái)模擬通道的鏈隊(duì)列為全局變量,然后編寫(xiě)主函數(shù),在此主函數(shù)中實(shí)現(xiàn)對(duì)其它各個(gè)模塊的調(diào)用。在主函數(shù)中首先調(diào)用option()函數(shù),出現(xiàn)歡迎用戶(hù)使用的主界面,然后提示用戶(hù)進(jìn)入此停車(chē)場(chǎng)管理系統(tǒng)后,再出現(xiàn)一個(gè)供用戶(hù)選擇的界面,在用戶(hù)的選擇過(guò)程中,程
13、序又分別調(diào)用車(chē)輛的到達(dá)、車(chē)輛的離開(kāi)、停車(chē)場(chǎng)內(nèi)停放車(chē)輛的信息以及退出程序這四個(gè)函數(shù)模塊。其中,在車(chē)輛的離開(kāi)那個(gè)模塊函數(shù)中又調(diào)用了打印離開(kāi)車(chē)輛信息的函數(shù),在停車(chē)場(chǎng)內(nèi)停放車(chē)輛信息的那個(gè)模塊函數(shù)中,又分別調(diào)用了顯示停車(chē)場(chǎng)上車(chē)輛信息的函數(shù)以及顯示便道上車(chē)輛信息的函數(shù)。最后,從調(diào)鼐的這四個(gè)函數(shù)中回到主函數(shù)結(jié)束整個(gè)程序的運(yùn)行。</p><p> ②在以上各個(gè)模塊中,出現(xiàn)的調(diào)用的函數(shù)為:</p><p>
14、; void InitStack(SeqStackCar *s);</p><p> int InitQueue(LinkQueueCar *Q);</p><p><b> option();</b></p><p> int Arrival(SeqStackCar *Enter,LinkQueueCar *W);</p>
15、<p> void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W);</p><p> void PRINT(CarNode *p);</p><p> void List(SeqStackCar S,LinkQueueCar W);</p><p> void List1
16、(SeqStackCar *S);</p><p> void List2(LinkQueueCar *W);</p><p><b> 4、模塊間關(guān)系</b></p><p><b> 四、調(diào)試分析</b></p><p> (1) 調(diào)試過(guò)程中的主要問(wèn)題</p><p&
17、gt; 由于此停車(chē)場(chǎng)管理系統(tǒng)是分模塊設(shè)計(jì)的,而且在程序的實(shí)現(xiàn)過(guò)程中又使用了清屏函數(shù),所以,運(yùn)行時(shí)用戶(hù)選擇任務(wù)并且執(zhí)行完任務(wù)后,又會(huì)回到供用戶(hù)選擇功能的主界面,因此整個(gè)程序從整體上來(lái)講結(jié)構(gòu)清晰,使用方便。本程序的調(diào)試運(yùn)行,總體上情況良好,但中間也出現(xiàn)了一些小問(wèn)題。其中比較有代表性的主要問(wèn)題有:</p><p> 當(dāng)停車(chē)場(chǎng)已經(jīng)達(dá)到最大容量,但仍有車(chē)輛進(jìn)入停車(chē)場(chǎng)的時(shí)候,運(yùn)行界面上沒(méi)有出現(xiàn)或者說(shuō)出現(xiàn)了但又跳掉了“停車(chē)
18、場(chǎng)已滿(mǎn),該車(chē)輛需在便道上等待!”的提示信息。我們小組成員經(jīng)過(guò)反復(fù)商量討論,并且在查閱了多種資料后,在那一個(gè)printf語(yǔ)句后加了一個(gè)getch(),此時(shí),程序運(yùn)行結(jié)果就符合要求了。</p><p> 對(duì)于在WIN—TC下不能顯示中文的問(wèn)題,我們通過(guò)在第一個(gè)printf語(yǔ)句前加了一句 system("graftabl 936");就很好地解決了這個(gè)問(wèn)題,使得整個(gè)程序的運(yùn)行都出現(xiàn)了中文提示,
19、而且是在中文的環(huán)境下操作,設(shè)計(jì)更加合理,更加人性化,更加方面用戶(hù)使用,同時(shí)也提高了用戶(hù)的操作效率。</p><p> ?。?) 測(cè)試結(jié)果的分析與討論</p><p><b> ?、贇g迎界面</b></p><p><b> ②車(chē)輛到達(dá)</b></p><p><b> ?、圮?chē)輛離開(kāi)<
20、;/b></p><p><b> ④車(chē)輛信息(車(chē)場(chǎng))</b></p><p><b> ?、蒈?chē)輛信息(便道)</b></p><p><b> 五、用戶(hù)手冊(cè)</b></p><p> 這個(gè)程序用來(lái)實(shí)現(xiàn)對(duì)停車(chē)場(chǎng)內(nèi)車(chē)輛的管理,整個(gè)操作界面為中文,更加符合人性化的標(biāo)準(zhǔn),
21、使得用戶(hù)使用方便,而且每一個(gè)操作都有提示,使得初次接觸該程序的用戶(hù)也能很快適應(yīng)程序的操作。</p><p> 這個(gè)程序操作簡(jiǎn)單,對(duì)于車(chē)牌號(hào),只需輸入車(chē)牌號(hào)上的數(shù)字就行,而且對(duì)于進(jìn)出停車(chē)場(chǎng)的時(shí)間,也簡(jiǎn)化了操作,只需輸入當(dāng)時(shí)的時(shí)刻就行,沒(méi)有具體到小時(shí)和分鐘,但也許這也是該程序不足之處所在。而且該程序也給用戶(hù)提供了選擇的機(jī)會(huì),當(dāng)點(diǎn)擊運(yùn)行該程序后,如果想退出程序,可以輸入n或N退出該運(yùn)行程序。</p>&
22、lt;p> 至于使用過(guò)程中的更具體的問(wèn)題,可以參照該報(bào)告書(shū)中調(diào)試分析那一項(xiàng)的屏幕截圖,整個(gè)程序的運(yùn)行界面大致就如上述屏幕截圖的內(nèi)容。</p><p><b> 六、附錄</b></p><p><b> 1、源程序代碼</b></p><p> #include<stdio.h></p>
23、;<p> #include<stdlib.h></p><p> #include<string.h></p><p> #define MAX 2 /*車(chē)庫(kù)容量*/</p><p> #define price 3 /*每車(chē)每時(shí)刻費(fèi)用*/</p><p> typedef struct no
24、de</p><p> { int num;</p><p> int reachtime;</p><p> int leavetime;</p><p> }CarNode; /*車(chē)輛信息結(jié)點(diǎn)*/</p><p> typedef struct NODE</p><p> {
25、CarNode *stack[MAX+1];</p><p><b> int top;</b></p><p> }SeqStackCar; /*模擬車(chē)站*/</p><p> typedef struct car</p><p> { CarNode *data;</p><p>
26、struct car *next;</p><p> }QueueNode;</p><p> typedef struct Node</p><p> { QueueNode *head;</p><p> QueueNode *rear;</p><p> }LinkQueueCar; /*模擬通道*/&
27、lt;/p><p> /*---------------------------------------------------------------------------*/ /*函數(shù)聲明部分*/</p><p> void InitStack(SeqStackCar *); /*初始化棧*/</p><p> int InitQueue(LinkQue
28、ueCar *); /*初始化便道*/</p><p> int Arrival(SeqStackCar *,LinkQueueCar *); /*車(chē)輛到達(dá)*/</p><p> void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*車(chē)輛離開(kāi)*/</p><p> void List(SeqStac
29、kCar,LinkQueueCar); /*顯示存車(chē)信息*/</p><p> void PRINT(CarNode *p) ;</p><p> /*---------------------------------------------------------------------------*/ void option()</p><p> {
30、 int i;</p><p> char choice;</p><p> gotoxy(0,0);</p><p> for(i=1;i<=240;i++)</p><p> printf("\004");</p><p> gotoxy(33,8);</p>
31、<p> printf("停車(chē)場(chǎng)管理系統(tǒng)");</p><p> gotoxy(25,12);</p><p> printf("小組成員:范雯姣 李月敏 丁飛飛");</p><p> gotoxy(33,16);</p><p> printf("班級(jí):信息0701
32、");</p><p> gotoxy(1,20);</p><p> printf("\n********************************************************************************");</p><p> printf("\t1.車(chē)輛到達(dá)--1 2.
33、車(chē)輛離開(kāi)--2 3.車(chē)輛信息--3 4.退出程序--4");</p><p> printf("\n********************************************************************************");</p><p> printf("\n\n\n\t
34、 是否進(jìn)入該系統(tǒng)(y/n)? ");</p><p> choice=getchar();</p><p> if(choice=='N'||choice=='n')</p><p><b> exit(0);</b></p><p><b>
35、 }</b></p><p> void main()</p><p> { SeqStackCar Enter,Temp;</p><p> LinkQueueCar Wait;</p><p><b> int ch;</b></p><p> system(&quo
36、t;graftabl 936");</p><p><b> option();</b></p><p> InitStack(&Enter); /*初始化車(chē)站*/</p><p> InitStack(&Temp); /*初始化讓路的臨時(shí)棧*/</p><p> InitQueue(&
37、amp;Wait); /*初始化通道*/</p><p><b> while(1)</b></p><p> { clrscr();</p><p> printf("\n\n\t\t\t1. 車(chē)輛到達(dá) 請(qǐng)選擇 1");</p><p> printf("\n\n\t\t\t2.
38、車(chē)輛離開(kāi) 請(qǐng)選擇 2");</p><p> printf("\n\n\t\t\t3. 車(chē)輛信息 請(qǐng)選擇 3");</p><p> printf("\n\n\t\t\t4. 退出程序 請(qǐng)選擇 4");</p><p> printf("\n\n\t\t\t現(xiàn)在請(qǐng)選擇以上信息 : ");&
39、lt;/p><p><b> while(1)</b></p><p> { scanf("%d",&ch);</p><p> printf("\n");</p><p> if(ch>=1&&ch<=4)break;</p>
40、<p><b> else</b></p><p> printf("\n\t\t\t錯(cuò)誤!請(qǐng)?jiān)俅巫龀鲞x擇!\n\n\t\t\t");</p><p><b> }</b></p><p> switch(ch)</p><p> { case 1:Arr
41、ival(&Enter,&Wait); break; /*車(chē)輛到達(dá)*/</p><p> case 2:Leave(&Enter,&Temp,&Wait); break; /*車(chē)輛離開(kāi)*/</p><p> case 3:List(Enter,Wait); break; /*列表打印信息*/</p><p> case
42、4:exit(0); /*退出主程序*/</p><p> default: break; }</p><p><b> }</b></p><p><b> }</b></p><p> /*------------------------------------------------
43、------------------------------*/ </p><p> void InitStack(SeqStackCar *s) /*初始化棧*/</p><p> { int i;</p><p><b> s->top=0;</b></p><p> for(i=0;i<
44、;=MAX;i++)</p><p> s->stack[s->top]=NULL;</p><p><b> }</b></p><p> int InitQueue(LinkQueueCar *Q) /*初始化便道*/</p><p> { Q->head=(QueueNode *)mal
45、loc(sizeof(QueueNode));</p><p> if(Q->head!=NULL)</p><p> { Q->head->next=NULL;</p><p> Q->rear=Q->head;</p><p> return(1);</p><p><b
46、> }</b></p><p><b> else</b></p><p> return(-1);</p><p><b> }</b></p><p> void PRINT(CarNode *p) /*打印出站車(chē)的信息*/</p><p>
47、 { int A1,A2;</p><p> printf("\n\t\t\t請(qǐng)輸入離開(kāi)時(shí)間: ");</p><p> scanf("%d",&(p->leavetime));</p><p> printf("\n\t\t\t離開(kāi)車(chē)輛的車(chē)牌號(hào): %d",p->num);&l
48、t;/p><p> printf("\n\n\t\t\t離開(kāi)車(chē)輛到達(dá)時(shí)間: %d ",p->reachtime);</p><p> printf("\n\n\t\t\t離開(kāi)車(chē)輛離開(kāi)時(shí)間: %d",p->leavetime);</p><p> A1=p->reachtime;</p>&
49、lt;p> A2=p->leavetime;</p><p> printf("\n\n\t\t\t停車(chē)場(chǎng)管理費(fèi)用: %d",(A2-A1)*price);</p><p><b> free(p);</b></p><p><b> }</b></p><p&g
50、t; int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*車(chē)輛到達(dá)*/</p><p> { CarNode *p;</p><p> QueueNode *t;</p><p> p=(CarNode *)malloc(sizeof(CarNode));</p><p> flush
51、all();</p><p> printf("\t\t\t請(qǐng)輸入到達(dá)車(chē)輛車(chē)牌號(hào): ");</p><p> scanf("%d",&(p->num));</p><p> if(Enter->top<MAX) /*車(chē)場(chǎng)未滿(mǎn),車(chē)進(jìn)車(chē)場(chǎng)*/</p><p> { Ent
52、er->top++;</p><p> printf("\n\t\t\t該車(chē)輛在停車(chē)場(chǎng)的位置是: %d\n",Enter->top);</p><p> printf("\n\t\t\t請(qǐng)輸入該車(chē)輛到達(dá)的時(shí)間: ");</p><p> scanf("%d",&(p->r
53、eachtime));</p><p> Enter->stack[Enter->top]=p;</p><p> return(1);</p><p><b> }</b></p><p> else /*車(chē)場(chǎng)已滿(mǎn),車(chē)進(jìn)便道*/</p><p
54、> { printf("\n\t\t\t停車(chē)場(chǎng)已滿(mǎn) 該車(chē)輛需在便道上等待!");</p><p><b> getch();</b></p><p> t=(QueueNode *)malloc(sizeof(QueueNode));</p><p> t->data=p;</p><
55、p> t->next=NULL;</p><p> W->rear->next=t;</p><p> W->rear=t;</p><p> return(1);</p><p><b> }</b></p><p><b> }</b&
56、gt;</p><p> void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) /*車(chē)輛離開(kāi)*/</p><p> { int i, room;</p><p> CarNode *p,*t;</p><p> QueueNode *q;</p>
57、<p> /*判斷車(chē)場(chǎng)內(nèi)是否有車(chē)*/</p><p> if(Enter->top>0) /*有車(chē)*/</p><p> { while(1) /*輸入離開(kāi)車(chē)輛的信息*/</p><p> { printf("\t\t\t停車(chē)場(chǎng)里停放的車(chē)輛總數(shù): %d",Enter->top);</p>&
58、lt;p> printf("\n\n\t\t\t請(qǐng)輸入要離開(kāi)車(chē)輛的位置: ");</p><p> scanf("%d",&room);</p><p> if(room>=1&&room<=Enter->top)</p><p><b> break;<
59、;/b></p><p><b> }</b></p><p> while(Enter->top>room) /*車(chē)輛離開(kāi)*/</p><p> { Temp->top++;</p><p> Temp->stack[Temp->top]=Enter->stack[
60、Enter->top];</p><p> Enter->stack[Enter->top]=NULL;</p><p> Enter->top--;</p><p><b> }</b></p><p> p=Enter->stack[Enter->top];</p&g
61、t;<p> Enter->stack[Enter->top]=NULL;</p><p> Enter->top--;</p><p> while(Temp->top>=1)</p><p> { Enter->top++;</p><p> Enter->stack[E
62、nter->top]=Temp->stack[Temp->top];</p><p> Temp->stack[Temp->top]=NULL;</p><p> Temp->top--;</p><p><b> }</b></p><p><b> PRINT(p
63、);</b></p><p> /*判斷通道上是否有車(chē)及車(chē)站是否已滿(mǎn)*/</p><p> if((W->head!=W->rear)&&Enter->top<MAX) /*便道的車(chē)輛進(jìn)入車(chē)場(chǎng)*/</p><p> { q=W->head->next;</p><p>
64、 t=q->data;</p><p> Enter->top++;</p><p> printf("\n\n\t\t\t便道的%d號(hào)車(chē)進(jìn)入車(chē)場(chǎng)第%d位置.",t->num,Enter->top);</p><p> printf("\n\n\t\t\t請(qǐng)輸入現(xiàn)在的時(shí)間:");</p&g
65、t;<p> scanf("%d",&(t->reachtime));</p><p> W->head->next=q->next;</p><p> if(q==W->rear)</p><p> W->rear=W->head;</p><p>
66、 Enter->stack[Enter->top]=t;</p><p><b> free(q);</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("\n\n\t\t\t
67、便道里沒(méi)有車(chē).\n");</p><p><b> }</b></p><p><b> else</b></p><p> printf("\n\n\t\t\t車(chē)場(chǎng)里沒(méi)有車(chē)."); /*沒(méi)車(chē)*/</p><p><b> }</b><
68、;/p><p> void List1(SeqStackCar *S) /*列表顯示車(chē)場(chǎng)信息*/</p><p><b> { int i;</b></p><p> if(S->top>0) /*判斷車(chē)站內(nèi)是否有車(chē)*/</p><p> { printf("\n\t\t\t車(chē)場(chǎng):"
69、;);</p><p> printf("\n\n\t\t\t位置 到達(dá)時(shí)間 車(chē)牌號(hào)\n");</p><p> for(i=1;i<=S->top;i++)</p><p> { printf("%26d",i);</p><p> printf("%6d"
70、;,S->stack[i]->reachtime);</p><p> printf("%10d",S->stack[i]->num);</p><p> printf("\n");</p><p><b> }</b></p><p><b&g
71、t; }</b></p><p><b> else</b></p><p> printf("\n\t\t\t車(chē)場(chǎng)里沒(méi)有車(chē)");</p><p><b> }</b></p><p> void List2(LinkQueueCar *W) /*列表顯示便
72、道信息*/</p><p> { QueueNode *p;</p><p> p=W->head->next;</p><p> if(W->head!=W->rear) /*判斷通道上是否有車(chē)*/</p><p> { printf("\n\t\t\t等待車(chē)輛的號(hào)碼為: ");<
73、;/p><p> while(p!=NULL)</p><p> { printf("%-10d",p->data->num);</p><p> p=p->next;</p><p><b> }</b></p><p> printf("
74、\n");</p><p><b> }</b></p><p><b> else</b></p><p> printf("\n\t\t\t便道里沒(méi)有車(chē).");</p><p><b> }</b></p><p&g
75、t; void List(SeqStackCar S,LinkQueueCar W)</p><p> { int flag,tag;</p><p><b> flag=1;</b></p><p> while(flag)</p><p> { printf("\n\t\t\t請(qǐng)選擇 1|2|3
76、:");</p><p> printf("\n\n\t\t\t1.車(chē)場(chǎng)\n\n\t\t\t2.便道\n\n\t\t\t3.返回\n\n\t\t\t");</p><p><b> while(1)</b></p><p> { scanf("%d",&tag);</p>
77、;<p> if(tag>=1||tag<=3) break;</p><p> else printf("\n\t\t\t請(qǐng)選擇 1|2|3:");</p><p><b> }</b></p><p> switch(tag)</p><p> { case 1
78、:List1(&S);break; /*列表顯示車(chē)場(chǎng)信息*/</p><p> case 2:List2(&W);break; /*列表顯示便道信息*/</p><p> case 3:flag=0;break;</p><p> default: break;</p><p><b> }</b>
79、;</p><p><b> }</b></p><p><b> }</b></p><p><b> 2、設(shè)計(jì)體會(huì)</b></p><p> 通過(guò)這一周的課程設(shè)計(jì),加深了我對(duì)《數(shù)據(jù)結(jié)構(gòu)》這門(mén)課程所學(xué)內(nèi)容的進(jìn)一步的理解與掌握;同時(shí),通過(guò)對(duì)停車(chē)場(chǎng)管理系統(tǒng)的開(kāi)發(fā),使得我將
80、計(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í)的執(zhí)著以及迷茫。在這次課程設(shè)計(jì)中,使得我很好地了解了在開(kāi)發(fā)程序過(guò)程中合作的重要性。</p><p> 在這周課程設(shè)計(jì)中,我們小組所開(kāi)發(fā)的停車(chē)場(chǎng)管理系統(tǒng),基
81、本上可以完成每一項(xiàng)功能。汽車(chē)進(jìn)入停車(chē)場(chǎng)的信息、離開(kāi)停車(chē)場(chǎng)的信息以及通道上的信息都可以在程序上一一實(shí)現(xiàn)。但是,該程序也有不足的地方。主要表現(xiàn)在車(chē)輛的車(chē)牌號(hào)上,現(xiàn)實(shí)中的車(chē)牌號(hào)是一串字符,可是,在這個(gè)程序中,為了簡(jiǎn)便起見(jiàn),我們就車(chē)牌號(hào)定義為了整型,這個(gè)與現(xiàn)實(shí)是有些不符的。還有一個(gè)可以改進(jìn)的地方就是記錄車(chē)輛進(jìn)入停車(chē)場(chǎng)以及離開(kāi)停車(chē)場(chǎng)的時(shí)間,應(yīng)該精確到小時(shí)以及分鐘的,可是在程序中,為了簡(jiǎn)便起見(jiàn),我們只是設(shè)置成了一個(gè)時(shí)刻,所以,在這方面還是有待改進(jìn)的
82、。改進(jìn)的程序中,還應(yīng)該增加時(shí)間的判斷功能,即停車(chē)場(chǎng)內(nèi)有可能有車(chē)輛停放的時(shí)間超過(guò)一天。</p><p> 還有一個(gè)很重要的問(wèn)題,對(duì)于停車(chē)場(chǎng)內(nèi)可以停放的最多車(chē)輛數(shù),為了測(cè)試數(shù)據(jù)的方便,我在程序中,定為了2,在實(shí)際使用中,可以改變程度開(kāi)頭的宏定義以增加停車(chē)場(chǎng)的容量。</p><p> 總之,在這周的課程設(shè)計(jì)中,我以及我們這組的收獲還是挺大的,不僅對(duì)于專(zhuān)業(yè)課有了更好的認(rèn)識(shí),而且在合作的過(guò)程中更
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 停車(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)告
- 停車(chē)場(chǎng)管理-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(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ì)報(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)
- 數(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)停車(chē)場(chǎng)管理系統(tǒng)及課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論