版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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 日日 湖南工程學(xué)院 課 程 設(shè) 計 任 務(wù) 書 課程名稱 數(shù)據(jù)結(jié)構(gòu) 課 題 停車場管理管理系統(tǒng) 專業(yè)班級 信 管 0901 學(xué)生姓名 學(xué) 號 200903110202 指導(dǎo)老師 審 批 任務(wù)書下達日期 2010 年 1 月 09 日 任務(wù)完成日期 2011 年 1 月 20 日 一、設(shè)計內(nèi)容與
2、設(shè)計要求 1 設(shè)計設(shè)計內(nèi)容:內(nèi)容: 問題描述設(shè)停車場只有一個可停放幾輛汽車的狹長通道,且只 有一個大門可供汽車進出,汽車在停車場內(nèi)按車輛的先后順序依次排列, 若車站內(nèi)已停滿汽車,則后來的汽車只能在門外的通道上等停,一旦停車 場內(nèi)有車開走,則排在通道上的第一輛車即可進入;當(dāng)停車場內(nèi)某輛車要 離開時,由于停車場是狹長的通道,在它之后開入的車輛必須先退出車站 為它讓路,待該車輛開出大門,為它讓路的車輛再按原來次序進入車場。 在這里假設(shè)汽車不能從便道上開走,試設(shè)計這樣一個停車場模擬管理程序。 基本功能 (1) 車輛成批入站。 當(dāng)一個停車場剛開始投入運行的時候,會有很多車進來,因此,要 設(shè)計一個函數(shù)來實
3、現(xiàn)車輛批量進站。并要檢測車輛的數(shù)目是否超過規(guī)定的 最大容量,給出相關(guān)提示信息。 (2)單個車輛入站。 當(dāng)系統(tǒng)正常投入運行后,會有零散的車輛進進出出,因此,設(shè)計一 個函數(shù)實現(xiàn)單個車輛入站。 (3)車站內(nèi)信息實時顯示。 車站內(nèi)信息包括兩個 部分:停車場內(nèi)停放的車輛以及在外面通道上等停的車輛。 (4)車輛出站。 當(dāng)停車場內(nèi)車輛出站后,檢查通道上是否有車等停,如果有,則要 把排在最前面的車調(diào)入停車場內(nèi)。 2 設(shè)計設(shè)計要求:要求: 1) 設(shè)計正確,方案合理。 2) 界面友好,使用方便。 3) 程序精煉,結(jié)構(gòu)清晰。 4) 設(shè)計報告 5000 字以上,含程序設(shè)計說明、系統(tǒng)的功能框圖、流程圖、 源程序清單等。
4、 5) 實際操作過程中遇到的問題及解決方法:設(shè)計總結(jié)及心得體會。 6) 上機演示。 二、進度安排 第 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)題用四號宋體加粗,正文用小四號宋體;行 距為 22。 正文的內(nèi)
5、容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊 圖) ;三、主要功能的實現(xiàn)課塊劃畫塊圖實(至少要有一個主要模塊的流程圖) ; 四、程序調(diào)試;五、總結(jié);六、附件(所有程序的源代碼,要求對程序?qū)懗霰?要的注釋) 。 正文總字?jǐn)?shù)要求在 5000 字以上(不含程序源代碼) 。 目 錄 1、緒論 .6 1.1 課程設(shè)計的目的和意義.6 2、需求分析.6 2.1、課程設(shè)計的目的.6 2.2、課程設(shè)計的任務(wù).6 2.4、系統(tǒng)總體設(shè)計圖.7 3、詳細信息.7 3.1 基本信息.7 4、詳細設(shè)計.7 4.1 問題定義.8 4.2、流程圖及系統(tǒng)測試.8 4.2.1、進停車場.8 4.2.2 車輛離
6、開.8 4.3、程序運行圖.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、參考文獻.21 7、評分表.22 1、緒論 1.1 課程設(shè)計的目的和意義 當(dāng)代大學(xué)生是一個特殊的團體,他們具有較高知識修養(yǎng)和較強綜合素質(zhì),但是 他們中的大部分卻不具有與他們能力相符的動手能力與就業(yè)競爭能力。大學(xué)畢 業(yè)生是新興勞動力的組成部分,提高大學(xué)畢業(yè)生就業(yè)工作發(fā)展水平,事關(guān)我國經(jīng) 濟社會可持續(xù)發(fā)展的進程 ,高校作為培養(yǎng)大學(xué)生的搖籃,必須責(zé)無旁貸地承擔(dān) 起提高大學(xué)生就業(yè)能力的重任。提高大學(xué)
7、生的就業(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)用中運用各種數(shù)據(jù)庫對象的經(jīng)驗,使學(xué)生掌握使用應(yīng)用軟件開發(fā)工具開 發(fā)數(shù)據(jù)庫管理系統(tǒng)的基本方法。在實用性方面,學(xué)生管
8、理系統(tǒng)是很普遍的一種 應(yīng)用,選擇該系統(tǒng)作為課程設(shè)計也可以為學(xué)生以后可能遇到的實際開發(fā)提供借 鑒。 2 2、需求分析 2.1、課程設(shè)計的目的 運用數(shù)據(jù)結(jié)構(gòu)編寫一個 c 語言程序,實現(xiàn)對停車場的管理。只要包括:車輛 到達時得信息登記,車輛離開時得信息記錄及便道的車輛信息的顯示功能。 2.2、課程設(shè)計的任務(wù) 該系統(tǒng)實現(xiàn)以下幾個功能: 2.21、車輛到達信息登記:包括車牌號,在停車場停放的位置等; 2.22 、車輛離開信息記錄; 2.23、信息顯示:顯示停車場內(nèi)和便道內(nèi)的汽車到達及位置等信息; 2.3、軟件運行和開發(fā)工具 1、windows2000 以上操作系統(tǒng) 2、visualc+6.0 開發(fā)環(huán)境
9、2.42.4、系統(tǒng)總體設(shè)計圖、系統(tǒng)總體設(shè)計圖 3、詳細信息 3.1 基本信息 車的車牌號,到達時信息及離開時信息。 4、詳細設(shè)計 使用 visual c+平臺設(shè)計學(xué)生成績管理系統(tǒng)的主框架。 4.1 問題定義 該程序主要是為了實現(xiàn)對車庫的管理,為實現(xiàn)該功能先定義了一個系統(tǒng)菜單: 停車場管理系統(tǒng) 車 輛 到 達 車 輛 離 去 便 道 信 息 退 出 信 息 (1)添加信息 (4)查找停車信息 (5)顯示全部信息 (7)顯示統(tǒng)計數(shù)據(jù) 4.2、流程圖及系統(tǒng)測試 4.2.14.2.1、進停車場、進停車場 車輛進停車場 是否有車 進入停車場 記錄信息 回主菜單 進入便道 記錄信息 y n 圖4.41 進
10、停車場流程 4.2.24.2.2 車輛離開車輛離開 車輛進停車場 是否有車 進入停車場 記錄信息 回主菜單 進入便道 記錄信息 y n 圖 4.42 車輛離開 4.3、程序運行圖 4.3.14.3.1、菜單欄、菜單欄 圖 4.31 菜單欄運行圖 4.3.24.3.2、輸入信息欄、輸入信息欄 圖 4.32 輸入信息欄運行圖 4.3.34.3.3、出車欄、出車欄 圖 4.33 出車欄運行圖 4.3.44.3.4、顯示欄、顯示欄 圖 4.35 顯示欄運行圖 5、心得感受 開始時候的課程設(shè)計完全沒有思路,感覺很迷茫,不知道從何做起。幸好 在課設(shè)之前趙老師給我們做了很詳細的指點,記得在大一的時候老師就提
11、到過 她,當(dāng)時就給我們留下了深刻的印象。是一位很負責(zé)任的,很有耐心的好老師, 我們很愛戴趙老師。 課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題, 鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著 科學(xué)技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當(dāng)今計算機應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握管理項目 的開發(fā)技術(shù)是十分重要的。 回顧起此次圖書館借書系統(tǒng)課程設(shè)計,至今我仍感慨頗多,的確,從選題 到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是 可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知
12、識,而且學(xué)到 了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實 際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與 實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的 實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難 重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程 中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠 牢固,通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。 在以后會有更多的課程設(shè)計,我們現(xiàn)在的努力是為了將來打好基礎(chǔ),趙老師很認(rèn)真的對待 我們的答辯,這是一種很負
13、責(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 /定義車牌號最大長度 using namespace std
14、; /使用 std 命名空間 /定義存儲汽車信息的結(jié)構(gòu)體 typedef struct char license_platemax_plate; /汽車牌照號碼,定義為一個字符指 針類型 char state; /汽車當(dāng)前狀態(tài),字符 p 表示停放在停車位上, 字符 s 表示停放在便道上,每輛車的初始狀態(tài)用字符 i 來進行表示 car; /定義模擬停車場的棧結(jié)構(gòu) typedef struct car stopmax_stop; /汽車信息的存儲空間 int top; /用來指示棧頂位置的靜態(tài)指針 seqstack; /定義模擬便道的隊列結(jié)構(gòu) typedef struct node car wai
15、t; /汽車信息的存儲空間 struct node *next; /用來指示隊列位置的動態(tài)指針 qnode; /鏈隊列節(jié)點的類型 /定義鏈隊列的收尾指針 typedef struct qnode *front,*rear; lqueue; /將頭尾指針封裝在一起的鏈隊 /函數(shù)聲明 int empty_lqueue(lqueue *q); /判隊空 int leavecheck(seqstack parking , char *license_plate); /檢查離開的車是 否在停車場中 int queuelength(lqueue *q); /判隊長度 int out_lqueue(lque
16、ue * /出隊操作 int stackempty(seqstack parking); /判斷棧是否為空 int stackfull(seqstack parking); /判斷棧是否為滿 int stackpop(seqstack /出棧操作 int stacktop(seqstack parking , char *license_plate); /取棧頂元素 void car_come(seqstack /有車到 來時的操作 void car_leave(seqstack /有車離開的操作 void display(seqstack parking); /顯示停車場內(nèi)的所有信息 調(diào)試時
17、用 void initstack(seqstack /初始化棧 void initlist(lqueue * /初始化隊列 void in_lqueue(lqueue * /進隊操作 void input_check(char *license_plate); /檢驗輸入的車牌是否合法 void stackpush(seqstack /進棧操作 void main() /定義變量 seqstack parking; lqueue *sidewalk = null; char *choice = new char; int flag = 1; /定義一個變量 判斷是否退出 initstack(p
18、arking); /初始化一個為空的停車場 initlist(sidewalk); /初始化一個為空的便道 while(flag) /運行界面及功能選擇 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; coutt|*nn; cout請選擇操作:; gets(choic
19、e); if(1 != strlen(choice) cout請正確輸入選項!; continue; else switch(*choice) case c: case c: car_come(parking,sidewalk);break; 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選擇不正確!請重新選擇!n; /有車到來時的操作 void car_come(seqst
20、ack /定義變量 cout請輸入車輛的車牌號碼:; input_check(license_plate); if(stackfull(parking) /判斷停車場是否已滿,滿則 進入便道,不滿進入停車場 in_lqueue(sidewalk , license_plate); /進入便道 cout停車場已滿請在便道等候,您的位置為queuelength(sidewalk) endl; else stackpush(parking , license_plate); /進入停車場 cout請進入停車場中的parking.top+1號停車位n; / display(parking); void
21、 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_plate); cout當(dāng)前停車場中有parking.top+1輛車n; if
22、(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); /停車場中的車暫時退出 進入臨時停車場 stackpop(parking); /出棧 cout牌照為lice
23、nse_plate的車離開停車場parking.top+1號位n; stackpop(parking); /出棧 /將臨時停車場中的車停回停車場 while(stackempty(tmpparking) != 1) stacktop(tmpparking , license_plate); stackpush(parking , license_plate ); cout牌照為license_plate的車進入停車場parking.top+1號位 n; license_plate0 = 0; stackpop(tmpparking); if(parking.top+1 = max_stop-1
24、) /判斷車離開前停車場是否停滿 if(queuelength(sidewalk) /如果停滿則判斷便道上是否有車 /便道中有車 則從便道中停入停車場 out_lqueue(sidewalk , license_plate); /出隊 stackpush(parking , license_plate); /入棧 cout在便道中牌照為license_plate的車進入停車場 parking.top+1號位n; else /車不在停車場中 cout您的車不在停車場中!n; /初始化順序棧 void initstack(seqstack /判棧空 int stackempty(seqstack
25、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; /出棧 返回棧頂指針 int stackpop(seqs
26、tack 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(停車場為空n); else while(parking.top
27、!= -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é)點開辟新空間 strcpy(car_on_sidewalk-wait.license_plate , license_plate); /將數(shù)據(jù)寫入節(jié)點 car_on_sidewalk-wait.state = s; /寫入停車
28、信息 car_on_sidewalk-next = null; if(empty_lqueue(sidewalk) /隊空則創(chuàng)建第一個節(jié)點 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廠房租賃保證金退還協(xié)議4篇
- 2025年度智能設(shè)備價格信息保密及市場推廣協(xié)議4篇
- 2025年度廠房租賃合同附帶員工宿舍租賃條款4篇
- 二零二四唐山骨瓷品牌創(chuàng)新設(shè)計研發(fā)合作協(xié)議3篇
- 2025年度企業(yè)品牌策劃合同范本(十)4篇
- 2024年04月江蘇上海浦發(fā)銀行南京分行在線視頻筆試歷年參考題庫附帶答案詳解
- 2024美容美發(fā)店加盟合同
- 2025年茶葉出口基地承包經(jīng)營合同范本4篇
- 專項工程承攬協(xié)議樣本(2024年版)版B版
- 2024年03月浙江中國農(nóng)業(yè)銀行浙江省分行春季招考筆試歷年參考題庫附帶答案詳解
- 地理2024-2025學(xué)年人教版七年級上冊地理知識點
- 2024 消化內(nèi)科專業(yè) 藥物臨床試驗GCP管理制度操作規(guī)程設(shè)計規(guī)范應(yīng)急預(yù)案
- 2024-2030年中國電子郵箱行業(yè)市場運營模式及投資前景預(yù)測報告
- 基礎(chǔ)設(shè)施零星維修 投標(biāo)方案(技術(shù)方案)
- 人力資源 -人效評估指導(dǎo)手冊
- 大疆80分鐘在線測評題
- 2024屆廣東省廣州市高三上學(xué)期調(diào)研測試英語試題及答案
- 中煤平朔集團有限公司招聘筆試題庫2024
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 不付租金解除合同通知書
- 區(qū)域合作伙伴合作協(xié)議書范本
評論
0/150
提交評論