《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》 停車場(chǎng)管理系統(tǒng)
課 程 設(shè) 計(jì) 報(bào) 告 課程名稱 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 課題名稱 停車場(chǎng)管理系統(tǒng) 專 業(yè) 信息管理與信息系統(tǒng) 班 級(jí) 信管 0901 學(xué) 號(hào) 200903110122 姓 名 指導(dǎo)教師 2011 年 1 月 09 日 2 湖南工程學(xué)院 課 程 設(shè) 計(jì) 任 務(wù) 書(shū) 課程名稱 數(shù)據(jù)結(jié)構(gòu) 課 題 停車場(chǎng)管理管理系統(tǒng) 專業(yè)班級(jí) 信 管 0901 學(xué)生姓名 學(xué) 號(hào) 200903110202 指導(dǎo)老師 審 批 任務(wù)書(shū)下達(dá)日期 2010 年 1 月 09 日 任 務(wù) 完 成 日 期 2011 年 1 月 20 日 3 一 、 設(shè) 計(jì) 內(nèi) 容 與 設(shè) 計(jì) 要 求 1設(shè)計(jì)內(nèi)容: 問(wèn)題描述設(shè)停車場(chǎng)只有一個(gè)可停放幾輛汽車的狹長(zhǎng)通道,且只 有一個(gè)大門(mén)可供汽車進(jìn)出,汽車在停車場(chǎng)內(nèi)按車輛的先后順序依次排列, 若車站內(nèi)已停滿汽車,則后來(lái)的汽車只能在門(mén)外的通道上等停,一旦停車 場(chǎng)內(nèi)有車開(kāi)走,則排在通道上的第一輛車即可進(jìn)入;當(dāng)停車場(chǎng)內(nèi)某輛車要 離開(kāi)時(shí),由于停車場(chǎng)是狹長(zhǎng)的通道,在它之后開(kāi)入的車輛必須先退出車站 為它讓路,待該車輛開(kāi)出大門(mén),為它讓路的車輛再按原來(lái)次序進(jìn)入車場(chǎng)。 在這里假設(shè)汽車不能從便道上開(kāi)走,試設(shè)計(jì)這樣一個(gè)停車場(chǎng)模擬管理程序。 基本功能 (1) 車輛成批入站。 當(dāng)一個(gè)停車場(chǎng)剛開(kāi)始投入運(yùn)行的時(shí)候,會(huì)有很多車進(jìn)來(lái),因此,要 設(shè)計(jì)一個(gè)函數(shù)來(lái)實(shí)現(xiàn)車輛批量進(jìn)站。并要檢測(cè)車輛的數(shù)目是否超過(guò)規(guī)定的 最大容量,給出相關(guān)提示信息。 (2)單個(gè)車輛入站。 當(dāng)系統(tǒng)正常投入運(yùn)行后,會(huì)有零散的車輛進(jìn)進(jìn)出出,因此,設(shè)計(jì)一 個(gè)函數(shù)實(shí)現(xiàn)單個(gè)車輛入站。 (3)車站內(nèi)信息實(shí)時(shí)顯示。 車站內(nèi)信息包括兩個(gè) 部分:停車場(chǎng)內(nèi)停放的車輛以及在外面通道上等停的車輛。 (4)車輛出站。 當(dāng)停車場(chǎng)內(nèi)車輛出站后,檢查通道上是否有車等停,如果有,則要 把排在最前面的車調(diào)入停車場(chǎng)內(nèi)。 2設(shè)計(jì)要求: 1) 設(shè)計(jì)正確,方案合理。 2) 界面友好,使用方便。 3) 程序精煉,結(jié)構(gòu)清晰。 4) 設(shè)計(jì)報(bào)告 5000 字以上,含程序設(shè)計(jì)說(shuō)明、系統(tǒng)的功能框圖、流程圖、 4 源程序清單等。 5) 實(shí)際操作過(guò)程中遇到的問(wèn)題及解決方法:設(shè)計(jì)總結(jié)及心得體會(huì)。 6) 上機(jī)演示。 二、進(jìn) 度 安 排 第 19 周 星期一 8 時(shí):00 分11 時(shí):30 分 星期二 8 時(shí):00 分11 時(shí):30 分 星期三 14 時(shí):00 分17 時(shí):30 分 星期四 14 時(shí):00 分17 時(shí):30 分 星期五 8 時(shí):00 分11 時(shí):30 分 第 20 周 星期一 8 時(shí):00 分11 時(shí):30 分 附: 課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書(shū)、目錄、正文、評(píng)分、附件(A4 大小的 圖紙及程序清單) 。 正文的格式:一級(jí)標(biāo)題用 3 號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行 距為 22。 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫(huà)出模塊 圖) ;三、主要功能的實(shí)現(xiàn)課塊劃畫(huà)塊圖實(shí)(至少要有一個(gè)主要模塊的流程圖) ; 四、程序調(diào)試;五、總結(jié);六、附件(所有程序的源代碼,要求對(duì)程序?qū)懗霰?要的注釋) 。 正文總字?jǐn)?shù)要求在 5000 字以上(不含程序源代碼) 。 目 錄 1、緒論 .6 1.1 課程設(shè)計(jì)的目的和意義 .6 2、需求分析 .6 5 2.1、課程設(shè)計(jì)的目的 .6 2.2、課程設(shè)計(jì)的任務(wù) .6 2.4、系統(tǒng)總體設(shè)計(jì)圖 .7 3、詳細(xì)信息 .7 3.1 基本信息 .7 4、詳細(xì)設(shè)計(jì) .7 4.1 問(wèn)題定義 .8 4.2、流程圖及系統(tǒng)測(cè)試 .8 4.2.1、進(jìn)停車場(chǎng) .8 4.2.2 車輛離開(kāi) .8 4.3、程序運(yùn)行圖 .9 4.3.1、菜單欄 .9 4.3.2、輸入信息欄 10 4.3.3、出車欄 .10 4.3.4、顯示欄 .11 5、心得感受 .11 6、附錄 .12 6.1、源程序 .12 6.2、參考文獻(xiàn) .21 7、評(píng)分表 .22 1、緒論 1.1 課程設(shè)計(jì)的目的和意義 當(dāng)代大學(xué)生是一個(gè)特殊的團(tuán)體,他們具有較高知識(shí)修養(yǎng)和較強(qiáng)綜合素質(zhì),但是 他們中的大部分卻不具有與他們能力相符的動(dòng)手能力與就業(yè)競(jìng)爭(zhēng)能力。大學(xué)畢 業(yè)生是新興勞動(dòng)力的組成部分,提高大學(xué)畢業(yè)生就業(yè)工作發(fā)展水平,事關(guān)我國(guó)經(jīng) 濟(jì)社會(huì)可持續(xù)發(fā)展的進(jìn)程 ,高校作為培養(yǎng)大學(xué)生的搖籃,必須責(zé)無(wú)旁貸地承擔(dān) 6 起提高大學(xué)生就業(yè)能力的重任。提高大學(xué)生的就業(yè)能力,不僅需要教師付出辛勤 的勞動(dòng),還需要一套科學(xué)完善的制度作為保障,而高校畢業(yè)生基本情況數(shù)據(jù)庫(kù)管 理系統(tǒng)無(wú)疑是一個(gè)很好的嘗試。本文設(shè)計(jì)的這套數(shù)據(jù)庫(kù)管理系統(tǒng),是綜合日常管 理、實(shí)踐考核、科目成績(jī)統(tǒng)計(jì)、就業(yè)管理等等的綜合性數(shù)據(jù)庫(kù)系統(tǒng)。設(shè)計(jì)學(xué)生 管理這樣一個(gè)系統(tǒng),可以涉及到大多數(shù) MFC 與 C 語(yǔ)言數(shù)據(jù)庫(kù)的重要數(shù)據(jù)庫(kù)對(duì)象、 重要功能和特性,例如:視圖、觸發(fā)器和存儲(chǔ)過(guò)程等。由此,通過(guò)這個(gè)課程設(shè) 計(jì)可以加深學(xué)生對(duì)這些 MFC 與 C 語(yǔ)言數(shù)據(jù)結(jié)構(gòu)知識(shí)的學(xué)習(xí)、理解,積累在實(shí)際 工程應(yīng)用中運(yùn)用各種數(shù)據(jù)庫(kù)對(duì)象的經(jīng)驗(yàn),使學(xué)生掌握使用應(yīng)用軟件開(kāi)發(fā)工具開(kāi) 發(fā)數(shù)據(jù)庫(kù)管理系統(tǒng)的基本方法。在實(shí)用性方面,學(xué)生管理系統(tǒng)是很普遍的一種 應(yīng)用,選擇該系統(tǒng)作為課程設(shè)計(jì)也可以為學(xué)生以后可能遇到的實(shí)際開(kāi)發(fā)提供借 鑒。 2、需求分析 2.1、課程設(shè)計(jì)的目的 運(yùn)用數(shù)據(jù)結(jié)構(gòu)編寫(xiě)一個(gè) C 語(yǔ)言程序,實(shí)現(xiàn)對(duì)停車場(chǎng)的管理。只要包括:車輛 到達(dá)時(shí)得信息登記,車輛離開(kāi)時(shí)得信息記錄及便道的車輛信息的顯示功能。 2.2、課程設(shè)計(jì)的任務(wù) 該系統(tǒng)實(shí)現(xiàn)以下幾個(gè)功能: 2.21、車輛到達(dá)信息登記:包括車牌號(hào),在停車場(chǎng)停放的位置等; 2.22 、車輛離開(kāi)信息記錄; 2.23、信息顯示:顯示停車場(chǎng)內(nèi)和便道內(nèi)的汽車到達(dá)及位置等信息; 2.3、軟件運(yùn)行和開(kāi)發(fā)工具 1、windows2000 以上操作系統(tǒng) 2、VisualC+6.0 開(kāi)發(fā)環(huán)境 7 2.4、系統(tǒng)總體設(shè)計(jì)圖 3、詳細(xì)信息 3.1 基本信息 車的車牌號(hào),到達(dá)時(shí)信息及離開(kāi)時(shí)信息。 4、詳細(xì)設(shè)計(jì) 使 用 Visual C+平 臺(tái) 設(shè) 計(jì) 學(xué) 生 成 績(jī) 管 理 系 統(tǒng) 的 主 框 架 。 4.1 問(wèn)題定義 該程序主要是為了實(shí)現(xiàn)對(duì)車庫(kù)的管理,為實(shí)現(xiàn)該功能先定義了一個(gè)系統(tǒng)菜單: 停車場(chǎng)管理系統(tǒng) 車 輛 到 達(dá) 車 輛 離 去 便 道 信 息 退 出 信 息 8 (1)添加信息 (4)查找停車信息 (5)顯示全部信息 (7)顯示統(tǒng)計(jì)數(shù)據(jù) 4.2、流程圖及系統(tǒng)測(cè)試 4.2.1、進(jìn)停車場(chǎng) 車輛進(jìn)停車場(chǎng) 是否有車 進(jìn)入停車場(chǎng) 記錄信息 回主菜單 進(jìn)入便道 記錄信息 Y N 圖4.41 進(jìn)停車場(chǎng)流程 4.2.2 車輛離開(kāi) 9 車輛進(jìn)停車場(chǎng) 是否有車 進(jìn)入停車場(chǎng) 記錄信息 回主菜單 進(jìn)入便道 記錄信息 Y N 圖 4.42 車輛離開(kāi) 4.3、程序運(yùn)行圖 4.3.1、菜單欄 圖 4.31 菜單欄運(yùn)行圖 10 4.3.2、輸入信息欄 圖 4.32 輸入信息欄運(yùn)行圖 4.3.3、出車欄 11 圖 4.33 出車欄運(yùn)行圖 4.3.4、顯示欄 圖 4.35 顯示欄運(yùn)行圖 5、心得感受 開(kāi)始時(shí)候的課程設(shè)計(jì)完全沒(méi)有思路,感覺(jué)很迷茫,不知道從何做起。幸好 在課設(shè)之前趙老師給我們做了很詳細(xì)的指點(diǎn),記得在大一的時(shí)候老師就提到過(guò) 她,當(dāng)時(shí)就給我們留下了深刻的印象。是一位很負(fù)責(zé)任的,很有耐心的好老師, 我們很愛(ài)戴趙老師。 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題, 鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著 科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握管理項(xiàng)目 的開(kāi)發(fā)技術(shù)是十分重要的。 回顧起此次圖書(shū)館借書(shū)系統(tǒng)課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題 到定稿,從理論到實(shí)踐,在整整一星期的日子里,可以說(shuō)得是苦多于甜,但是 可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到 12 了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí) 際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與 實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的 實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難 重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程 中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠 牢固,通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。 在以后會(huì)有更多的課程設(shè)計(jì),我們現(xiàn)在的努力是為了將來(lái)打好基礎(chǔ),趙老師很認(rèn)真的對(duì)待 我們的答辯,這是一種很負(fù)責(zé)任的表現(xiàn),這是要讓我們真正的自己動(dòng)手,了解和掌握一些 基本知識(shí),在以后的工作中做到游刃有余。 這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,最后在 趙老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在趙錦元老師的身上我學(xué)得到很 多實(shí)用的知識(shí),在次我表示感謝!同時(shí),對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和各位指導(dǎo) 老師再次表示忠心的感謝! 6、附錄 6.1、源程序 #include #include #include #include /常量定義 #define MAX_STOP 5 /定義停車場(chǎng)最大停車數(shù) #define MAX_PLATE 10 /定義車牌號(hào)最大長(zhǎng)度 using namespace std; /使用 std 命名空間 /定義存儲(chǔ)汽車信息的結(jié)構(gòu)體 13 typedef struct char license_plateMAX_PLATE; /汽車牌照號(hào)碼,定義為一個(gè)字符指 針類型 char state; /汽車當(dāng)前狀態(tài),字符 p 表示停放在停車位上, 字符 s 表示停放在便道上,每輛車的初始狀態(tài)用字符 i 來(lái)進(jìn)行表示 CAR; /定義模擬停車場(chǎng)的棧結(jié)構(gòu) typedef struct CAR STOPMAX_STOP; /汽車信息的存儲(chǔ)空間 int top; /用來(lái)指示棧頂位置的靜態(tài)指針 SeqStack; /定義模擬便道的隊(duì)列結(jié)構(gòu) typedef struct node CAR WAIT; /汽車信息的存儲(chǔ)空間 struct node *next; /用來(lái)指示隊(duì)列位置的動(dòng)態(tài)指針 QNode; /鏈隊(duì)列節(jié)點(diǎn)的類型 /定義鏈隊(duì)列的收尾指針 typedef struct QNode *front,*rear; LQueue; /將頭尾指針?lè)庋b在一起的鏈隊(duì) /函數(shù)聲明 int Empty_LQueue(LQueue *q); /判隊(duì)空 int LeaveCheck(SeqStack parking , char *license_plate); /檢查離開(kāi)的車是 否在停車場(chǎng)中 int QueueLength(LQueue *q); /判隊(duì)長(zhǎng)度 int Out_LQueue(LQueue * /出隊(duì)操作 int StackEmpty(SeqStack parking); /判斷棧是否為空 int StackFull(SeqStack parking); /判斷棧是否為滿 int StackPop(SeqStack /出棧操作 int StackTop(SeqStack parking , char *license_plate); /取棧頂元素 void Car_come(SeqStack /有車到 來(lái)時(shí)的操作 14 void Car_leave(SeqStack /有車離開(kāi)的操作 void Display(SeqStack parking); /顯示停車場(chǎng)內(nèi)的所有信息 調(diào)試時(shí)用 void InitStack(SeqStack /初始化棧 void InitList(LQueue * /初始化隊(duì)列 void In_LQueue(LQueue * /進(jìn)隊(duì)操作 void Input_Check(char *license_plate); /檢驗(yàn)輸入的車牌是否合法 void StackPush(SeqStack /進(jìn)棧操作 void main() /定義變量 SeqStack parking; LQueue *sidewalk = NULL; char *choice = new char; int flag = 1; /定義一個(gè)變量 判斷是否退出 InitStack(parking); /初始化一個(gè)為空的停車場(chǎng) InitList(sidewalk); /初始化一個(gè)為空的便道 while(flag) /運(yùn)行界面及功能選擇 coutt*nn; coutt*歡迎來(lái)到王凌鋒的停車場(chǎng)*nn; coutt| 停車場(chǎng)模擬管理系統(tǒng) |nn; coutt|-|nn; coutt| |nn; coutt| 有車到來(lái)時(shí)請(qǐng)按 C 鍵。 |nn; coutt| 有車要走時(shí)請(qǐng)按 l 鍵。 |nn; coutt| 查看停車場(chǎng)請(qǐng)按 D 鍵。 |nn; coutt| 要退出系統(tǒng)請(qǐng)按 Q 鍵。 |nn; coutt|-|nn; coutt|*nn; cout請(qǐng)選擇操作:; gets(choice); if(1 != strlen(choice) cout請(qǐng)正確輸入選項(xiàng)!; continue; else switch(*choice) case c: case C: Car_come(parking,sidewalk);break; 15 case l: case L: Car_leave(parking,sidewalk);break; case q: case Q: flag=0;break; case d: case D: Display(parking);break; default: cout選擇不正確!請(qǐng)重新選擇!n; /有車到來(lái)時(shí)的操作 void Car_come(SeqStack /定義變量 cout請(qǐng)輸入車輛的車牌號(hào)碼:; Input_Check(license_plate); if(StackFull(parking) /判斷停車場(chǎng)是否已滿,滿則 進(jìn)入便道,不滿進(jìn)入停車場(chǎng) In_LQueue(sidewalk , license_plate); /進(jìn)入便道 cout停車場(chǎng)已滿請(qǐng)?jiān)诒愕赖群?您的位置為QueueLength(sidewalk) endl; else StackPush(parking , license_plate); /進(jìn)入停車場(chǎng) cout請(qǐng)進(jìn)入停車場(chǎng)中的parking.top+1號(hào)停車位n; / Display(parking); 16 void Car_leave(SeqStack /定義臨時(shí)停車場(chǎng) char leave_license_plateMAX_PLATE; /要離開(kāi)的車牌號(hào) char license_plateMAX_PLATE; /存放從停車場(chǎng)中讀出來(lái)的車牌信息 InitStack(tmpparking); /初始化臨時(shí)停車場(chǎng) if(StackEmpty(parking) /判斷停車場(chǎng)中是否有車 cout當(dāng)前停車場(chǎng)中沒(méi)有車n; return; /退出子函數(shù) cout請(qǐng)輸入要離開(kāi)的車牌照:; Input_Check(leave_license_plate); cout當(dāng)前停車場(chǎng)中有parking.top+1輛車n; if(LeaveCheck(parking , leave_license_plate) /判斷車是否在停車場(chǎng)中 cout您的車在LeaveCheck(parking , leave_license_plate)號(hào)車位上n; /車在停車場(chǎng)中 while(StackTop(parking , license_plate) cout牌照為license_plate 的車暫時(shí)退出停車場(chǎng) parking.top+1 號(hào)位n; StackPush(tmpparking , license_plate); /停車場(chǎng)中的車暫時(shí)退出 進(jìn)入臨時(shí)停車場(chǎng) StackPop(parking); /出棧 cout牌照為license_plate 的車離開(kāi)停車場(chǎng) parking.top+1號(hào)位n; StackPop(parking); /出棧 /將臨時(shí)停車場(chǎng)中的車停回停車場(chǎng) while(StackEmpty(tmpparking) != 1) StackTop(tmpparking , license_plate); StackPush(parking , license_plate ); cout牌照為license_plate 的車進(jìn)入停車場(chǎng) parking.top+1號(hào)位 n; license_plate0 = 0; 17 StackPop(tmpparking); if(parking.top+1 = MAX_STOP-1) /判斷車離開(kāi)前停車場(chǎng)是否停滿 if(QueueLength(sidewalk) /如果停滿則判斷便道上是否有車 /便道中有車 則從便道中停入停車場(chǎng) Out_LQueue(sidewalk , license_plate); /出隊(duì) StackPush(parking , license_plate); /入棧 cout在便道中牌照為license_plate 的車進(jìn)入停車場(chǎng) parking.top+1號(hào)位n; else /車不在停車場(chǎng)中 cout您的車不在停車場(chǎng)中!n; /初始化順序棧 void InitStack(SeqStack /判???int StackEmpty(SeqStack parking) if(parking.top = -1) return 1; else return 0; /判棧滿 int StackFull(SeqStack parking) if(parking.top = MAX_STOP-1) return 1; else return 0; /入棧 void StackPush(SeqStack strcpy(parking.STOPparking.top.license_plate , license_plate); parking.STOPparking.top.state = p; 18 /出棧 返回棧頂指針 int StackPop(SeqStack else return parking.top-; /取棧頂元素 int StackTop(SeqStack parking , char *license_plate ) if(StackEmpty(parking) return 0; else strcpy(license_plate , parking.STOPparking.top.license_plate); return 1; /顯示所有 void Display(SeqStack parking) if(parking.top = -1) printf(停車場(chǎng)為空n); else while(parking.top != -1) cout車牌號(hào)為:parking.STOPparking.top.license_plate; cout,停在parking.top + 1 front=sidewalk-rear = NULL; /入隊(duì) void In_LQueue(LQueue * car_on_sidewalk = (QNode *)malloc(sizeof(QNode); /為新節(jié)點(diǎn)開(kāi)辟新空間 strcpy(car_on_sidewalk-WAIT.license_plate , license_plate); /將數(shù)據(jù)寫(xiě)入節(jié)點(diǎn) car_on_sidewalk-WAIT.state = s; /寫(xiě)入停車信息 car_on_sidewalk-next = NULL; if(Empty_LQueue(sidewalk) /隊(duì)空則創(chuàng)建第一個(gè)節(jié)點(diǎn) sidewalk-front = sidewalk-rear = car_on_sidewalk; else /隊(duì)非空插入隊(duì)尾 sidewalk-rear-next = car_on_sidewalk; sidewalk-rear = car_on_sidewalk; /判隊(duì)空 int Empty_LQueue(LQueue *q) if(q-front = NULL) return 1; else return 0; /判隊(duì)長(zhǎng)度 返回隊(duì)長(zhǎng) int QueueLength(LQueue *q) QNode *p=q-front; int i=0; while(p != NULL) i+; p=p-next; return i; /出隊(duì) 成功返回 1 隊(duì)空返回 0 int Out_LQueue(LQueue * if(Empty_LQueue(sidewalk) /如果隊(duì)空返回 0 return 0; car_on_sidewalk = sidewalk-front; strcpy(license_plate , car_on_sidewalk-WAIT.license_plate); /取出隊(duì)頭元 素 20 if(sidewalk-front = sidewalk-rear) /隊(duì)中只有一個(gè)元素 sidewalk-front = sidewalk-rear=NULL; /刪除元素 else sidewalk-front = sidewalk-front-next; /隊(duì)頭指針后移 free(car_on_sidewalk); /釋放指針 return 1; /檢查離開(kāi)的車是否在停車場(chǎng)中 返回車在停車場(chǎng)中位置 不在則返回 0 int LeaveCheck(SeqStack parking,char *license_plate) int flag = parking.top+1; /定義變量記錄當(dāng)前車在停車 場(chǎng)中位置 if(StackEmpty(parking) return 0; else /查找離開(kāi)車所在位置 while(parking.top != -1 parking.top-; return flag; /檢驗(yàn)輸入的車牌是否合法 void Input_Check(char *license_plate) int flag = 1; int i; string tmpstr; while(flag) cintmpstr; getchar(); if(tmpstr.length()MAX_PLATE) for(i=0;i10;i+) license_platei = tmpstr.c_str()i; flag = 0; else cout輸入有誤,請(qǐng)重新輸入:; 21 7、評(píng)分表 計(jì)算機(jī)與通信學(xué)院課程設(shè)計(jì)評(píng)分表 課程名稱: 數(shù)據(jù)結(jié)構(gòu) 項(xiàng) 目 評(píng) 價(jià) 設(shè)計(jì)方案的合理性與創(chuàng)造性 設(shè)計(jì)與調(diào)試結(jié)果 設(shè)計(jì)說(shuō)明書(shū)的質(zhì)量 答辯陳述與回答問(wèn)題情況 課程設(shè)計(jì)周表現(xiàn)情況 綜合成績(jī) 教師簽名: 日 期: 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 22