《數據結構》課程設計報告停車場管理系統(tǒng)_第1頁
《數據結構》課程設計報告停車場管理系統(tǒng)_第2頁
《數據結構》課程設計報告停車場管理系統(tǒng)_第3頁
《數據結構》課程設計報告停車場管理系統(tǒng)_第4頁
《數據結構》課程設計報告停車場管理系統(tǒng)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據結構課程設計報告系 別: 計算機信息與技術系 _班 級:_ _ b080604_ _ _學 號:_b080605_實訓日期:2010-08-23至2010-08-27數據結構課程設計實驗報告 開課實驗室: room-m_ 2010年08月27日班級b080604學號b080605姓名成績課程名稱數據結構實驗項目名 稱停車場管理系統(tǒng)指導教師趙亞軍教師評語教師簽名: 年 月 日一、實驗目的1、 通過課程設計,加深對數據結構這一課程所學內容的進一步理解與鞏固。2、 通過課程設計,加深對結構化設計思想的理解,能對系統(tǒng)功能進行分析,并設計合理的模塊化結構。3、 通過課程設計,提高程序開發(fā)功能,能運用

2、合理的控制流程編寫清晰高效的程序。4、 通過課程設計,訓練c程序調試能力,能將一個中小型各級組織系統(tǒng)聯(lián)調通過。5、 通過課程設計,開發(fā)一個中小型系統(tǒng),掌握系統(tǒng)研發(fā)全過程。6、 通話課程設計,培養(yǎng)分析問題、解決實際問題的能力。二、功能要求 設計一個停車場管理系統(tǒng),模擬停車場的運作,通過此程序具備以下功能:1、要求以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的數據序列進行模擬管理2、要求處理的數據元素包括三個數據項:汽車“到達”或“離去”信息,汽車牌照號碼及到達或離去的時間3、該系統(tǒng)完成以下功能:若是車輛到達,則輸出汽車在停車場內或便道上的停車位置;若是離去,則輸出汽車在停車場內停留的時

3、間和應繳納的費用(在便道上停留的時間不收費)4、要求棧以順序結構實現,隊列以鏈表實現三、設計要求1、獨立完成全部代碼的設計、編寫、調試與部署,運行正確無誤2、編寫設計報告書 設計報告書應包括:(1) 問題描述和系統(tǒng)要求(2) 系統(tǒng)主要功能模塊設計(3) 設計中遇到的問題及其解決方法(4) 系統(tǒng)運行報告(5) 總結 問題描述:設有一個可以停放n輛汽車的狹長停車場,它只有一個大門可以供車輛進出。車輛按到達停車場時間的早晚依次從停車場最里面向大門口處停放(最先到達的第一輛車放在停車場的最里面)。如果停車場已放滿n輛車,則后來的車輛只能在停車場大門外的便道上等待,一旦停車場內有車開走,則排以便道上的第

4、一輛車就進入停車場。停車場內如有某輛車要開走,在它之后進入停車場的車都必須先退出停車場為它讓路,待其開出停車場后,這些輛再依原來的次序進場。每輛車在離開停車場時,都應根據它在停車場內停留的時間長短交費。如果停留在便道上的車未進停車場時,允許其離去,不收停車費,并且仍然保持在便道上等待的車輛的次序。編制一程序模擬該停車場的管理。 基本要求:要求程序輸出每輛車到達后的停車位置(停車場或便道上),以及某輛車離開停車場應交納的費用和它在停車場內停留的時間。 實現提示:汽車的模擬輸入信息格式可以是:(到達/離去,汽車牌照號碼,到達/離去的時刻)。例如,(a,1,5)表示1號牌照車在5這個時刻到達,而(d

5、,5,20)表示5號牌照車在20這個時刻離去。整個程序可以在輸入信息為(e,0,0)時結束。本題可用棧和隊列來實現。四、運行環(huán)境1 microsoft visual c+ 6.02 microsoft windows xp 操作系統(tǒng)五、實驗步驟(繪制相應的流程圖)interface列表顯示車輛出庫車輛入庫信息消除信息登入檢索輸出返回主界面六、實驗過程原始代碼#include#include#include#define max 5 /*車庫容量*/#define price 0.05 /*每車每分鐘費用*/typedef struct time int hour; int min;time;

6、/*時間結點*/typedef struct node char num10; time reach; time leave;carnode; /*車輛信息結點*/typedef struct node carnode *stackmax+1; int top;seqstackcar; /*模擬車站*/typedef struct car carnode *data; struct car *next;queuenode;typedef struct node queuenode *head; queuenode *rear;linkqueuecar; /*模擬通道*/void initsta

7、ck(seqstackcar *); /*初始化棧*/ int initqueue(linkqueuecar *); /*初始化便道*/int arrival(seqstackcar *,linkqueuecar *); /*車輛到達*/ void leave(seqstackcar *,seqstackcar *,linkqueuecar *); /*車輛離開*/void list(seqstackcar,linkqueuecar); /*顯示存車信息*/void main() seqstackcar enter,temp; linkqueuecar wait; int ch; initst

8、ack(&enter); /*初始化車站*/ initstack(&temp); /*初始化讓路的臨時棧*/ initqueue(&wait); /*初始化通道*/ while(1) printf(n*n); printf(n*停 車 場 管 理 系 統(tǒng)*n); printf(n*1.車輛到達登記 * 2.車輛離開登記*); printf(n * ); printf(n*); printf(n * ); printf(n*3.車輛列表顯示 * 4. 退 出 系 統(tǒng)*n); printf(n* 歡*迎*使*用 *n); printf(n*n); printf(n*注意:請輸入所需序號使用本系統(tǒng)*

9、n); while(1) scanf(%d,&ch); if(ch=1&chtop=0; for(i=0;istacks-top=null;int initqueue(linkqueuecar *q) /*初始化便道*/ q-head=(queuenode *)malloc(sizeof(queuenode); if(q-head!=null) q-head-next=null; q-rear=q-head; return(1); else return(-1);void print(carnode *p,int room) /*打印出站車的信息*/ int a1,a2,b1,b2; prin

10、tf(n車輛離開的時間為:n); scanf(%d:%d,&(p-leave.hour),&(p-leave.min); printf(n車牌號為:n); puts(p-num); printf(n其到達時間為: %d:%d,p-reach.hour,p-reach.min); printf(離開時間為: %d:%d,p-leave.hour,p-leave.min); a1=p-reach.hour; a2=p-reach.min; b1=p-leave.hour; b2=p-leave.min; printf(n應交費用為: %2.1f元,(b1-a1)*60+(b2-a2)*price)

11、; free(p);int arrival(seqstackcar *enter,linkqueuecar *w) /*車輛到達*/ carnode *p; queuenode *t; p=(carnode *)malloc(sizeof(carnode); flushall(); printf(n請輸入車牌號(如:陜a00000):); gets(p-num); if(enter-toptop+; printf(n車輛在車場第%d位置.,enter-top); printf(n車輛到達時間為:); scanf(%d:%d,&(p-reach.hour),&(p-reach.min); ent

12、er-stackenter-top=p; return(1); else /*車場已滿,車進便道*/ printf(n對不起,停車位已滿,請在便道等待,感謝您的配合); t=(queuenode *)malloc(sizeof(queuenode); t-data=p; t-next=null; w-rear-next=t; w-rear=t; return(1); void leave(seqstackcar *enter,seqstackcar *temp,linkqueuecar *w) /*車輛離開*/ int room; carnode *p,*t; queuenode *q;/*判

13、斷車場內是否有車*/ if(enter-top0) /*有車*/ while(1) /*輸入離開車輛的信息*/ printf(n請輸入車在車場的位置/1-%d/:,enter-top); scanf(%d,&room); if(room=1&roomtop) break; while(enter-toproom) /*車輛離開*/ temp-top+; temp-stacktemp-top=enter-stackenter-top; enter-stackenter-top=null; enter-top-; p=enter-stackenter-top; enter-stackenter-t

14、op=null; enter-top-; while(temp-top=1) enter-top+; enter-stackenter-top=temp-stacktemp-top; temp-stacktemp-top=null; temp-top-; print(p,room); /*判斷通道上是否有車及車站是否已滿*/ if(w-head!=w-rear)&enter-tophead-next; t=q-data; enter-top+; printf(n便道的%s號車進入車場第%d位置.,t-num,enter-top); printf(n請輸入車輛進入車場的時間:); scanf(%

15、d:%d,&(t-reach.hour),&(t-reach.min); w-head-next=q-next; if(q=w-rear) w-rear=w-head; enter-stackenter-top=t; free(q); else printf(n便道里沒有車輛.n); else printf(n車場里沒有車輛停放.); /*沒車*/void list1(seqstackcar *s) /*列表顯示車場信息*/ int i; if(s-top0) /*判斷車站內是否有車*/ printf(n車場:); printf(n 位置 到達時間 車牌號n); for(i=1;itop;i+

16、) printf( %d ,i); printf( %d:%d ,s-stacki-reach.hour,s-stacki-reach.min); puts(s-stacki-num); else printf(n車場里沒有車);void list2(linkqueuecar *w) /*列表顯示便道信息*/ queuenode *p; p=w-head-next; if(w-head!=w-rear) /*判斷通道上是否有車*/ printf(n等待車輛的號碼為:); while(p!=null) puts(p-data-num); p=p-next; else printf(n便道里沒有車

17、.);void list(seqstackcar s,linkqueuecar w) int flag,tag; flag=1; while(flag) printf(n請選擇 1|2|3:); printf(n1.車場列表n2.便道列表n3.返回主菜單n); while(1) scanf(%d,&tag); if(tag=1|tag=3) break; else printf(n請選擇 13:); switch(tag) case 1:list1(&s);break; /*列表顯示車場信息*/ case 2:list2(&w);break; /*列表顯示便道信息*/ case 3:flag=

18、0;break; default: break; 七、實驗結果及分析 停車場管理系統(tǒng)主界面 停車場車輛信息錄入界面 車輛停滿提示車輛便道等待界面 停車場已停車輛列表顯示界面 便道等待車輛信息界面?zhèn)渥ⅲ簽榉奖隳M停車場實驗,停車場最多停車 5輛,若有車輛需要進入則需在編導等待。 只有停車場內車輛使出后,便道等待車輛 才能夠進入停車場。 停車場內車輛使出繳費及便道車輛進入界面八、實驗體會與收獲(自己的體會,200字以上;每人一份) 這一周的課程設計,通過對停車場管理系統(tǒng)的開發(fā),使得我將計算機課程所學知識與實際問題很好地相連接在了一起。在這次課程設計中,不僅培養(yǎng)了我開發(fā)一個中小型程序的能力,而且也培養(yǎng)了我們團獨合作能力。在這次對停車場管理系統(tǒng)的開發(fā)過程中,我們每個人互相幫助。在這次課程設計中,使得我很好的了解了在開發(fā)程序中合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論