版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計 報 告 課程名稱課程名稱 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 課題名稱課題名稱 停車場管理系統(tǒng)停車場管理系統(tǒng) 專專 業(yè)業(yè) 信息管理與信息系統(tǒng)信息管理與信息系統(tǒng) 班班 級級 信管信管 0901 學(xué)學(xué) 號號 200903110122 姓姓 名名 指導(dǎo)教師指導(dǎo)教師 2011 年年 1 月月 09 日日 2 湖南工程學(xué)院 課 程 設(shè) 計 任 務(wù) 書 課程名稱 數(shù)據(jù)結(jié)構(gòu) 課 題 停車場管理管理系統(tǒng) 專業(yè)班級 信 管 0901 學(xué)生姓名 學(xué) 號 200903110202 指導(dǎo)老師 審 批 任務(wù)書下達(dá)日期 2010 年 1 月 09 日 任務(wù)完成日期 2011 年 1 月 20 日 3 一、設(shè)
2、計內(nèi)容與設(shè)計要求 1 1設(shè)計內(nèi)容:設(shè)計內(nèi)容: 問題描述設(shè)停車場只有一個可停放幾輛汽車的狹長通道,且只 有一個大門可供汽車進(jìn)出,汽車在停車場內(nèi)按車輛的先后順序依次排列, 若車站內(nèi)已停滿汽車,則后來的汽車只能在門外的通道上等停,一旦停車 場內(nèi)有車開走,則排在通道上的第一輛車即可進(jìn)入;當(dāng)停車場內(nèi)某輛車要 離開時,由于停車場是狹長的通道,在它之后開入的車輛必須先退出車站 為它讓路,待該車輛開出大門,為它讓路的車輛再按原來次序進(jìn)入車場。 在這里假設(shè)汽車不能從便道上開走,試設(shè)計這樣一個停車場模擬管理程序。 基本功能 (1) 車輛成批入站。 當(dāng)一個停車場剛開始投入運(yùn)行的時候,會有很多車進(jìn)來,因此,要 設(shè)計一
3、個函數(shù)來實現(xiàn)車輛批量進(jìn)站。并要檢測車輛的數(shù)目是否超過規(guī)定的 最大容量,給出相關(guān)提示信息。 (2)單個車輛入站。 當(dāng)系統(tǒng)正常投入運(yùn)行后,會有零散的車輛進(jìn)進(jìn)出出,因此,設(shè)計一 個函數(shù)實現(xiàn)單個車輛入站。 (3)車站內(nèi)信息實時顯示。 車站內(nèi)信息包括兩個 部分:停車場內(nèi)停放的車輛以及在外面通道上等停的車輛。 (4)車輛出站。 當(dāng)停車場內(nèi)車輛出站后,檢查通道上是否有車等停,如果有,則要 把排在最前面的車調(diào)入停車場內(nèi)。 2 2設(shè)計要求:設(shè)計要求: 1) 設(shè)計正確,方案合理。 2) 界面友好,使用方便。 3) 程序精煉,結(jié)構(gòu)清晰。 4) 設(shè)計報告 5000 字以上,含程序設(shè)計說明、系統(tǒng)的功能框圖、流程圖、 4
4、 源程序清單等。 5) 實際操作過程中遇到的問題及解決方法:設(shè)計總結(jié)及心得體會。 6) 上機(jī)演示。 二、進(jìn)度安排 第 19 周 星期一 8 時:00 分11 時:30 分 星期二 8 時:00 分11 時:30 分 星期三 14 時:00 分17 時:30 分 星期四 14 時:00 分17 時:30 分 星期五 8 時:00 分11 時:30 分 第 20 周 星期一 8 時:00 分11 時:30 分 附: 課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(a4 大小的 圖紙及程序清單) 。 正文的格式:一級標(biāo)題用 3 號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體;行 距為
5、22。 正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊 圖) ;三、主要功能的實現(xiàn)課塊劃畫塊圖實(至少要有一個主要模塊的流程圖) ; 四、程序調(diào)試;五、總結(jié);六、附件(所有程序的源代碼,要求對程序?qū)懗霰?要的注釋) 。 正文總字?jǐn)?shù)要求在 5000 字以上(不含程序源代碼) 。 目 錄 1、緒論 .6 1.1 課程設(shè)計的目的和意義.6 2、需求分析.6 5 2.1、課程設(shè)計的目的.6 2.2、課程設(shè)計的任務(wù).6 2.4、系統(tǒng)總體設(shè)計圖.7 3、詳細(xì)信息.7 3.1 基本信息.7 4、詳細(xì)設(shè)計.7 4.1 問題定義.8 4.2、流程圖及系統(tǒng)測試.8 4.2.1、進(jìn)停車場.8
6、 4.2.2 車輛離開.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、評分表.22 1、緒論 1.1 課程設(shè)計的目的和意義 當(dāng)代大學(xué)生是一個特殊的團(tuán)體,他們具有較高知識修養(yǎng)和較強(qiáng)綜合素質(zhì),但是 他們中的大部分卻不具有與他們能力相符的動手能力與就業(yè)競爭能力。大學(xué)畢 業(yè)生是新興勞動力的組成部分,提高大學(xué)畢業(yè)生就業(yè)工作發(fā)展水平,事關(guān)我國經(jīng) 濟(jì)社會可持續(xù)發(fā)展的進(jìn)程 ,高校作為培養(yǎng)大學(xué)生的搖籃,必須責(zé)無旁貸地承擔(dān) 6 起提高大學(xué)生
7、就業(yè)能力的重任。提高大學(xué)生的就業(yè)能力,不僅需要教師付出辛勤 的勞動,還需要一套科學(xué)完善的制度作為保障,而高校畢業(yè)生基本情況數(shù)據(jù)庫管 理系統(tǒng)無疑是一個很好的嘗試。本文設(shè)計的這套數(shù)據(jù)庫管理系統(tǒng),是綜合日常管 理、實踐考核、科目成績統(tǒng)計、就業(yè)管理等等的綜合性數(shù)據(jù)庫系統(tǒng)。設(shè)計學(xué)生 管理這樣一個系統(tǒng),可以涉及到大多數(shù) mfc 與 c 語言數(shù)據(jù)庫的重要數(shù)據(jù)庫對象、 重要功能和特性,例如:視圖、觸發(fā)器和存儲過程等。由此,通過這個課程設(shè) 計可以加深學(xué)生對這些 mfc 與 c 語言數(shù)據(jù)結(jié)構(gòu)知識的學(xué)習(xí)、理解,積累在實際 工程應(yīng)用中運(yùn)用各種數(shù)據(jù)庫對象的經(jīng)驗,使學(xué)生掌握使用應(yīng)用軟件開發(fā)工具開 發(fā)數(shù)據(jù)庫管理系統(tǒng)的基本方
8、法。在實用性方面,學(xué)生管理系統(tǒng)是很普遍的一種 應(yīng)用,選擇該系統(tǒng)作為課程設(shè)計也可以為學(xué)生以后可能遇到的實際開發(fā)提供借 鑒。 2 2、需求分析 2.1、課程設(shè)計的目的 運(yùn)用數(shù)據(jù)結(jié)構(gòu)編寫一個 c 語言程序,實現(xiàn)對停車場的管理。只要包括:車輛 到達(dá)時得信息登記,車輛離開時得信息記錄及便道的車輛信息的顯示功能。 2.2、課程設(shè)計的任務(wù) 該系統(tǒng)實現(xiàn)以下幾個功能: 2.21、車輛到達(dá)信息登記:包括車牌號,在停車場停放的位置等; 2.22 、車輛離開信息記錄; 2.23、信息顯示:顯示停車場內(nèi)和便道內(nèi)的汽車到達(dá)及位置等信息; 2.3、軟件運(yùn)行和開發(fā)工具 1、windows2000 以上操作系統(tǒng) 2、visua
9、lc+6.0 開發(fā)環(huán)境 7 2.42.4、系統(tǒng)總體設(shè)計圖、系統(tǒng)總體設(shè)計圖 3、詳細(xì)信息 3.1 基本信息 車的車牌號,到達(dá)時信息及離開時信息。 4、詳細(xì)設(shè)計 使用 visual c+平臺設(shè)計學(xué)生成績管理系統(tǒng)的主框架。 4.1 問題定義 該程序主要是為了實現(xiàn)對車庫的管理,為實現(xiàn)該功能先定義了一個系統(tǒng)菜單: 停車場管理系統(tǒng) 車 輛 到 達(dá) 車 輛 離 去 便 道 信 息 退 出 信 息 8 (1)添加信息 (4)查找停車信息 (5)顯示全部信息 (7)顯示統(tǒng)計數(shù)據(jù) 4.2、流程圖及系統(tǒng)測試 4.2.14.2.1、進(jìn)停車場、進(jìn)停車場 車輛進(jìn)停車場 是否有車 進(jìn)入停車場 記錄信息 回主菜單 進(jìn)入便道
10、記錄信息 y n 圖4.41 進(jìn)停車場流程 4.2.24.2.2 車輛離開車輛離開 9 車輛進(jìn)停車場 是否有車 進(jìn)入停車場 記錄信息 回主菜單 進(jìn)入便道 記錄信息 y n 圖 4.42 車輛離開 4.3、程序運(yùn)行圖 4.3.14.3.1、菜單欄、菜單欄 圖 4.31 菜單欄運(yùn)行圖 10 4.3.24.3.2、輸入信息欄、輸入信息欄 圖 4.32 輸入信息欄運(yùn)行圖 4.3.34.3.3、出車欄、出車欄 11 圖 4.33 出車欄運(yùn)行圖 4.3.44.3.4、顯示欄、顯示欄 圖 4.35 顯示欄運(yùn)行圖 5、心得感受 開始時候的課程設(shè)計完全沒有思路,感覺很迷茫,不知道從何做起。幸好 在課設(shè)之前趙老師
11、給我們做了很詳細(xì)的指點(diǎn),記得在大一的時候老師就提到過 她,當(dāng)時就給我們留下了深刻的印象。是一位很負(fù)責(zé)任的,很有耐心的好老師, 我們很愛戴趙老師。 課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題, 鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著 科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握管理項目 的開發(fā)技術(shù)是十分重要的。 回顧起此次圖書館借書系統(tǒng)課程設(shè)計,至今我仍感慨頗多,的確,從選題 到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是 可以學(xué)到
12、很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到 12 了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實 際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與 實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的 實際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難 重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程 中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠 牢固,通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。 在以后會有更多的課程設(shè)計,我們現(xiàn)在的努力是為了將來
13、打好基礎(chǔ),趙老師很認(rèn)真的對待 我們的答辯,這是一種很負(fù)責(zé)任的表現(xiàn),這是要讓我們真正的自己動手,了解和掌握一些 基本知識,在以后的工作中做到游刃有余。 這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在 趙老師的辛勤指導(dǎo)下,終于游逆而解。同時,在趙錦元老師的身上我學(xué)得到很 多實用的知識,在次我表示感謝!同時,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo) 老師再次表示忠心的感謝! 6、附錄 6.1、源程序 #include #include #include #include /常量定義 #define max_stop 5 /定義停車場最大停車數(shù) #define max_plate 10 /定義
14、車牌號最大長度 using namespace std; /使用 std 命名空間 /定義存儲汽車信息的結(jié)構(gòu)體 13 typedef struct char license_platemax_plate; /汽車牌照號碼,定義為一個字符指 針類型 char state; /汽車當(dāng)前狀態(tài),字符 p 表示停放在停車位上, 字符 s 表示停放在便道上,每輛車的初始狀態(tài)用字符 i 來進(jìn)行表示 car; /定義模擬停車場的棧結(jié)構(gòu) typedef struct car stopmax_stop; /汽車信息的存儲空間 int top; /用來指示棧頂位置的靜態(tài)指針 seqstack; /定義模擬便道的隊列
15、結(jié)構(gòu) typedef struct node car wait; /汽車信息的存儲空間 struct node *next; /用來指示隊列位置的動態(tài)指針 qnode; /鏈隊列節(jié)點(diǎn)的類型 /定義鏈隊列的收尾指針 typedef struct qnode *front,*rear; lqueue; /將頭尾指針封裝在一起的鏈隊 /函數(shù)聲明 int empty_lqueue(lqueue *q); /判隊空 int leavecheck(seqstack parking , char *license_plate); /檢查離開的車是 否在停車場中 int queuelength(lqueue
16、*q); /判隊長度 int out_lqueue(lqueue * /出隊操作 int stackempty(seqstack parking); /判斷棧是否為空 int stackfull(seqstack parking); /判斷棧是否為滿 int stackpop(seqstack /出棧操作 int stacktop(seqstack parking , char *license_plate); /取棧頂元素 void car_come(seqstack /有車到 來時的操作 14 void car_leave(seqstack /有車離開的操作 void display(se
17、qstack parking); /顯示停車場內(nèi)的所有信息 調(diào)試時用 void initstack(seqstack /初始化棧 void initlist(lqueue * /初始化隊列 void in_lqueue(lqueue * /進(jìn)隊操作 void input_check(char *license_plate); /檢驗輸入的車牌是否合法 void stackpush(seqstack /進(jìn)棧操作 void main() /定義變量 seqstack parking; lqueue *sidewalk = null; char *choice = new char; int fla
18、g = 1; /定義一個變量 判斷是否退出 initstack(parking); /初始化一個為空的停車場 initlist(sidewalk); /初始化一個為空的便道 while(flag) /運(yùn)行界面及功能選擇 coutt*nn; coutt*歡迎來到王凌鋒的停車場*nn; coutt| 停車場模擬管理系統(tǒng) |nn; coutt|-|nn; coutt| |nn; coutt| 有車到來時請按 c 鍵。 |nn; coutt| 有車要走時請按 l 鍵。 |nn; coutt| 查看停車場請按 d 鍵。 |nn; coutt| 要退出系統(tǒng)請按 q 鍵。 |nn; coutt|-|nn;
19、coutt|*nn; cout請選擇操作:; gets(choice); if(1 != strlen(choice) cout請正確輸入選項!; 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選擇不正確!請重
20、新選擇!n; /有車到來時的操作 void car_come(seqstack /定義變量 cout請輸入車輛的車牌號碼:; input_check(license_plate); if(stackfull(parking) /判斷停車場是否已滿,滿則 進(jìn)入便道,不滿進(jìn)入停車場 in_lqueue(sidewalk , license_plate); /進(jìn)入便道 cout停車場已滿請在便道等候,您的位置為queuelength(sidewalk) endl; else stackpush(parking , license_plate); /進(jìn)入停車場 cout請進(jìn)入停車場中的parking.
21、top+1號停車位n; / display(parking); 16 void car_leave(seqstack /定義臨時停車場 char leave_license_platemax_plate; /要離開的車牌號 char license_platemax_plate; /存放從停車場中讀出來的車牌信息 initstack(tmpparking); /初始化臨時停車場 if(stackempty(parking) /判斷停車場中是否有車 cout當(dāng)前停車場中沒有車n; return; /退出子函數(shù) cout請輸入要離開的車牌照:; input_check(leave_license_
22、plate); cout當(dāng)前停車場中有parking.top+1輛車n; if(leavecheck(parking , leave_license_plate) /判斷車是否在停車場中 cout您的車在leavecheck(parking , leave_license_plate)號車位上n; /車在停車場中 while(stacktop(parking , license_plate) cout牌照為license_plate的車暫時退出停車場parking.top+1 號位n; stackpush(tmpparking , license_plate); /停車場中的車暫時退出 進(jìn)入臨
23、時停車場 stackpop(parking); /出棧 cout牌照為license_plate的車離開停車場parking.top+1號位n; stackpop(parking); /出棧 /將臨時停車場中的車?;赝\噲?while(stackempty(tmpparking) != 1) stacktop(tmpparking , license_plate); stackpush(parking , license_plate ); cout牌照為license_plate的車進(jìn)入停車場parking.top+1號位 n; license_plate0 = 0; 17 stackpop(
24、tmpparking); if(parking.top+1 = max_stop-1) /判斷車離開前停車場是否停滿 if(queuelength(sidewalk) /如果停滿則判斷便道上是否有車 /便道中有車 則從便道中停入停車場 out_lqueue(sidewalk , license_plate); /出隊 stackpush(parking , license_plate); /入棧 cout在便道中牌照為license_plate的車進(jìn)入停車場 parking.top+1號位n; else /車不在停車場中 cout您的車不在停車場中!n; /初始化順序棧 void initst
25、ack(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.t
26、op.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
27、= -1) printf(停車場為空n); else while(parking.top != -1) cout車牌號為:parking.stopparking.top.license_plate; cout,停在parking.top + 1 front=sidewalk-rear = null; /入隊 void in_lqueue(lqueue * car_on_sidewalk = (qnode *)malloc(sizeof(qnode); /為新節(jié)點(diǎn)開辟新空間 strcpy(car_on_sidewalk-wait.license_plate , license_plate); /
28、將數(shù)據(jù)寫入節(jié)點(diǎn) car_on_sidewalk-wait.state = s; /寫入停車信息 car_on_sidewalk-next = null; if(empty_lqueue(sidewalk) /隊空則創(chuàng)建第一個節(jié)點(diǎn) sidewalk-front = sidewalk-rear = car_on_sidewalk; else /隊非空插入隊尾 sidewalk-rear-next = car_on_sidewalk; sidewalk-rear = car_on_sidewalk; /判隊空 int empty_lqueue(lqueue *q) if(q-front = null) return 1; else return 0; /判隊長度 返回隊長 int queuelength(lqueue *q) qnode *p=q-front; int i=0; while(p != null) i+; p=p-next; return i; /出隊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度互聯(lián)網(wǎng)廣告行業(yè)勞動合同范本及廣告內(nèi)容審核責(zé)任協(xié)議3篇
- 脫丙烷課程設(shè)計
- 船舶原理課程設(shè)計散貨船
- 美術(shù)生創(chuàng)新思維課程設(shè)計
- 線上花束插花課程設(shè)計
- 茶園生產(chǎn) 課程設(shè)計
- 線上課程設(shè)計公司
- 《精神分析技巧》課件
- 2024年美術(shù)教案設(shè)計(7篇)
- 穿銷單元課程設(shè)計
- 僅銷售預(yù)包裝食品經(jīng)營者備案信息采集表
- 信息化工程建設(shè)項目可行性研究報告編制要求
- 床旁教學(xué)方法
- 2024湖南株洲攸縣城關(guān)國家糧食儲備庫員工招聘2人歷年高頻難、易錯點(diǎn)500題模擬試題附帶答案詳解
- 塵埃粒子95%置信上限UCL計算公式
- 2023年某公司綜合部業(yè)務(wù)流程綱要
- Python試題庫(附參考答案)
- DB34∕T 4638-2023 創(chuàng)新型智慧園區(qū)建設(shè)與管理規(guī)范
- 巴渝文化探究課程設(shè)計
- 江蘇省南京市2025屆高三第一次調(diào)研考試(一模)英語試題含解析
- 無人機(jī)配送行業(yè)市場機(jī)遇分析
評論
0/150
提交評論