停車場管理系統(tǒng)1_第1頁
停車場管理系統(tǒng)1_第2頁
停車場管理系統(tǒng)1_第3頁
停車場管理系統(tǒng)1_第4頁
停車場管理系統(tǒng)1_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄目錄一、系統(tǒng)開發(fā)的背景一、系統(tǒng)開發(fā)的背景.1二、系統(tǒng)分析與設計二、系統(tǒng)分析與設計.1(一)(一)系統(tǒng)功能要求系統(tǒng)功能要求.1(二)(二)系統(tǒng)模塊結構設計系統(tǒng)模塊結構設計.1三、系統(tǒng)的設計與實現三、系統(tǒng)的設計與實現.2(一)(一)停車場管理系統(tǒng)基本功能瀏覽:停車場管理系統(tǒng)基本功能瀏覽:INSTRUCTIONINSTRUCTION()().2(二)(二)停車場管理系統(tǒng)停車功能瀏覽:停車場管理系統(tǒng)停車功能瀏覽:PARKPARK()() .3(三)(三)停車場管理系統(tǒng)取車功能的瀏覽停車場管理系統(tǒng)取車功能的瀏覽LEAVELEAVE()().4(四)(四)停車場管理系統(tǒng)信息查詢功能瀏覽停車場管理系統(tǒng)信

2、息查詢功能瀏覽INFORMATIONINFORMATION()().6四、系統(tǒng)測試四、系統(tǒng)測試.7(一)(一)測試測試MAINMAIN_ _INSTRUCTIONINSTRUCTION函數函數.7(二)(二)測試測試MAINMAIN_ _PARKPARK函數函數.8(三)(三)測試測試MAINMAIN_ _LEAVELEAVE函數函數.8(四)(四)測試測試MAINMAIN_ _INFORMATIONINFORMATION函數函數.9五、總結五、總結.9六、附件(代碼)六、附件(代碼).101停車場管理系統(tǒng)停車場管理系統(tǒng)一、一、系統(tǒng)開發(fā)的系統(tǒng)開發(fā)的背景背景為了大大的提高停車場的工作效率,使存車

3、,取車,查詢車等工作快捷而安全正確的進行,因此設計出關于停車場管理系統(tǒng)的程序,可以迅速查到所需信息,更好地為人服務。二、系統(tǒng)分析與設計二、系統(tǒng)分析與設計(一)(一) 系統(tǒng)功能要求系統(tǒng)功能要求 有一個兩層的停車場,每層有六個車位,當第一層停滿后,才允許存入第二層。1、 假設剛開始第一層已存入 5 輛車,停車位依次為 1-5,停車時間以依次為 25,20,15,10,5。先將這五輛車的信息存入文件“gar.dat”中;2、 停車操作:當一輛車停入停車場時,先輸入車牌號,再為它分配一個層號和車位號。停車時間設為 5,然后將新的信息存入文件“gar.dat”中,并為之前停好的車都加 5.3、 取車操作

4、:當有車離開時,輸入他的車牌號,根據停車時間計算停車費用,每 5 分鐘 0.2 元。同時從文件“gar.dat”中刪除該車的信息。按用戶的選擇來判斷是否輸出停車的總收費。4、 輸出停車場中所停車輛的全部信息。5、 退出系統(tǒng)。(二)(二) 系統(tǒng)模塊結構設計系統(tǒng)模塊結構設計通過對系統(tǒng)功能的分析,學生綜合測評系統(tǒng)功能如圖 X 所示。2 圖 1 學生綜合測評系統(tǒng)功能圖通過上圖的功能分析,把整個系統(tǒng)劃分為 4 個模塊:1、 停車,該模塊主要實現:已存車輛基本信息(車牌號,層號,車位號,停車時間)的輸出,借助函數 Init()來實現;2、 取車,該模塊主要實現:用戶所取車輛信息及停車費用的輸出,借助函數

5、Park()來實現;3、 信息查詢,該模塊主要實現:停車場所停車輛的全部信息的輸出,借助函數 Information()來實現。4、 退出,該模塊主要實現:用戶完成所有操作后,退出系統(tǒng)。三、系統(tǒng)的設計三、系統(tǒng)的設計與實現與實現(一)(一) 停車場管理系統(tǒng)基本功能瀏覽:停車場管理系統(tǒng)基本功能瀏覽:instruction()instruction()分析:首先輸出表頭,然后依次輸出操作信息。流程圖如圖 1 所示。圖 1:instruction()流程圖該模塊的具體代碼如下所示。void Instruction()printf(*n);基本信息1230停車場管理系統(tǒng)停車取車信息查詢退出3printf

6、(停車場管理系統(tǒng)使用說明:n);printf(*n);printf(停車請輸入 1,取車請輸入 2n);printf(查看全部車輛的信息請輸入 3,退出請輸入 0n);/*初始化停車信息,初始狀態(tài)為第一層已停 5 輛車,停車時間依次為 25, 20,15,10,5*/(二)(二) 停車場管理系統(tǒng)停車功能瀏覽:停車場管理系統(tǒng)停車功能瀏覽:park()park()分析:輸入所停車輛的車牌號,如果第一層還有空車位,就輸出此車可停的具體位置。如果第一層已滿,接著檢查第二層是否有空車位,如有,則輸出具體位置,如果一,二層都沒有空位,則輸出沒有空位不能停車的信息。流程圖如 2:圖 2void park(s

7、truct Garage gar6)int i;char num8;printf(請輸入車牌號:);scanf(%s,num);for(i=0;i6;i+)if(gar0i.state=1)開始輸入 numi=0,i6gar0i.state=1i+strcpy(gar0i.number,num);輸出 i+1 numgar1i.state=11114printf(第一層第%d 號位空著,請在此處停車n,i+1);strcpy(gar0i.number,num);printf(車牌號:%s 層號:1 車位號:%dn,num,i+1);AddTime(gar);/*在此之前的所有車的停車時間加 5

8、*/gar0i.state=2;/*該車位已經停車*/gar0i.time=5;/*將時間設為 5*/return;printf(第一層已經沒有空車位n);for(i=0;i6;i+)if(gar1i.state=1)printf(第二層第%d 號車位空著,請在此處停車n,i+1);strcpy(gar1i.number,num);printf(車牌號:%s 層號:1 車位號:%dn,num,i+1);AddTime(gar);/*在此之前的所有車的停車時間加 5*/gar1i.state=2;/*該車位已經停車*/gar1i.time=5;/*將時間設為 5*/return;printf(對

9、不起,1 2 層都沒有空車位,您現在不能在此處停車n);(三)(三) 停車場管理系統(tǒng)取車功能的瀏覽停車場管理系統(tǒng)取車功能的瀏覽 leave()leave()分析:輸入你所取車輛的車牌號,如果停車場有匹配的車輛,則輸出該車輛所停的具體位置,并根據 5 分鐘 0.2 元的價格輸出該車的停車費用。如果停車場中沒有匹配的車輛,就會輸出提醒客戶沒有他要找的車輛的信息。流程圖如圖 35圖 3double Leave(struct Garage gar26)int i,j;char num8;double charge=0;printf(請輸入要取的車牌號:);scanf(%s,num);for(i=0;i

10、2;i+)for(j=0;j6;j+)if(!strcmp(garij.number,num)printf(您在%d 層%d 車位停車%d 分鐘n,garij.lay,garij.garagenum,garij.time);開始輸入 numi=0,i2;j=0,j6if(!strcmp(garij.numer,num)charge=garij.time/5*0.2i+,j+garij.lay,garij.garagenum,garij.timecharge結束6charge=garij.time/5*0.2;printf(停車費用為每 5 分鐘 0.2 元,您需要交%.2lf 元n,charg

11、e);garij.state=1;return charge;printf(沒有你輸入的車號.nn);return charge;/*是否查看停車場的收入*/void IsPrintTotal(double total)char ch;printf(是否查看停車場總計? Y/N);scanf(%c,&ch);printf(n);while(ch!=y & ch!=Y & ch!=n & ch!=N)printf(請輸入 Y 或 N);scanf(%c,&ch);printf(n);switch(ch)case Y:case y:printf(停車總計為%

12、.2lf 元n,total);break;caseN:casen:break;(四)(四) 停車場管理系統(tǒng)信息查詢功能瀏覽停車場管理系統(tǒng)信息查詢功能瀏覽 information()information()分析:利用循環(huán)語句依次檢查停車場的停車情況,找出已滿的車位,并輸出該車所停的層數,車位數,車牌號,以及所停的時間。流程圖如圖 47圖 4void Information(struct Garage gar6)int i,j;printf(車牌號 層號 車位號 停車時間n);for(i=0;i2;i+)for(j=0;j6;j+)if(garij.state=2)printf(%s%8d%8d

13、%8dn,garij.number,garij.lay,garij.garagenum,garij.time);printf(n);四、系統(tǒng)測試四、系統(tǒng)測試(一)(一) 測試測試 main_instructionmain_instruction 函數函數開始i=0,i+j=0,j+if(garij.state=2)輸出. Number,Lay,timegaragenumi+,j+結束8圖 5 main_instructionmain_instruction 函數函數(二)(二) 測試測試 main_parkmain_park 函數函數 圖 6 main_parkmain_park 函數函數(三

14、)(三) 測試測試 main_leavemain_leave 函數函數 圖 7 main_leavemain_leave 函數函數9(四)(四) 測試測試 main_informationmain_information 函數函數圖 7 main_informationmain_information 函數函數五、總結五、總結通過這次實習,我對小程序的編寫有了一個初步的掌握,對很多的函數有了新的認識,也學會了運用多種函數,也對編寫軟件的基本過程和基本方法有了一個大致的了解。編寫這個軟件的過程中,函數的多次調用使我對函數調用這塊知識有了更深的了解。在這次作業(yè)中,我受益匪淺。在軟件設計過程中我遇到

15、了許多困難。在一次次的函數調用失敗后,我對自己沒有了信心,想過抄襲,也想過放棄。這道題目,只有我一個人在做,沒有同伴和我一起討論,解決疑難,自己的基礎又很薄弱,突然有種手足無措的感覺。尤其是題目的要求,我沒辦法達到。但幾天下來,看到其他同學在那么努力地設計著他們的題目,我也選擇了繼續(xù)挑戰(zhàn)自己。抽時間對函數調用,數組,循環(huán)等幾個知識點進行了復習,然后努力加工自己的設計。經過好幾天的努力,我總算完成了自己的設計。10通過這次程序設計,我發(fā)現自己對 C 語言學的是一塌糊涂,今后,我會努力彌補自己的知識漏洞缺陷,努力學習來鞏固完善自己的知識面。六、附件(代碼,測試圖)六、附件(代碼,測試圖)#incl

16、ude#include#include#define SIZE 8struct Garagechar number8;/*車牌號*/int lay;/*層號*/int garagenum;/*車位號*/int time;/*停車時間*/int state;/*1 表示該車位空,2 表示車位有車*/GarSIZE;void save()FILE*fp;int i;if(fp=fopen(gar.dat,rb)=NULL)printf(文件不能打開n);return;for(i=0;iSIZE;i+)if(fwrite(&Gari,sizeof(struct Garage),1,fp)!=

17、1)printf(文件寫入錯誤n);fclose(fp);void Instruction()printf(-n);printf( n);printf(-n);printf(*n);printf(停車場管理系統(tǒng)使用說明:n);printf(*n);printf(停車請輸入 1,取車請輸入 2n);printf(查看全部車輛的信息請輸入 3,退出請輸入 0n);/*初始化停車信息,初始狀態(tài)為第一層已停 5 輛車,停車時間依次為 25,20,15,10,5*/void Init(struct Garage gar6)11int i,j;/*給所有的層號,車位號初始化,停車時間初始化為 0,停車位全

18、初始化為空*/for(i=0;i2;i+)for(j=0;j6;j+)garij.lay=i+1; garij.garagenum=j+i;garij.time=0;garij.state=1;/*第一層的 14 號位停車*/for(i=0;i4;i+)gar0i.state=0;strcpy(gar00.number,#444);/*初始化的車牌號*/gar00.time=25;strcpy(gar01.number,#000);gar00.time=20;strcpy(gar02.number,#111);gar01.time=15;strcpy(gar03.number,#222);ga

19、r02.time=10;strcpy(gar04.number,#333);gar03.time=5;/*新停入車后將在此之前的所有車的停車時間加 5*/void AddTime(struct Garage gar6)int i,j;for(i=0;i2;i+)for(j=0;j6;j+)if(garij.state=2)garij.time+=5;/*停車*/void park(struct Garage gar6)int i;char num8;printf(請輸入車牌號:);scanf(%s,num);for(i=0;i6;i+)12if(gar0i.state=1)printf(第一層

20、第%d 號位空著,請在此處停車n,i+1);strcpy(gar0i.number,num);printf(車牌號:%s 層號:1 車位號:%dn,num,i+1);AddTime(gar);/*在此之前的所有車的停車時間加 5*/gar0i.state=2;/*該車位已經停車*/gar0i.time=5;/*將時間設為 5*/return;printf(第一層已經沒有空車位n);for(i=0;i6;i+)if(gar1i.state=1)printf(第二層第%d 號車位空著,請在此處停車n,i+1);strcpy(gar1i.number,num);printf(車牌號:%s 層號:1

21、車位號:%dn,num,i+1);AddTime(gar);/*在此之前的所有車的停車時間加 5*/gar1i.state=2;/*該車位已經停車*/gar1i.time=5;/*將時間設為 5*/return;printf(對不起,1 2 層都沒有空車位,您現在不能在此處停車n);/*查看所有的停車信息*/void Information(struct Garage gar6)int i,j;printf(車牌號 層號 車位號 停車時間n);for(i=0;i2;i+)for(j=0;j6;j+)if(garij.state=2)printf(%s%8d%8d%8dn,garij.numbe

22、r,garij.lay,garij.garagenum,garij.time);printf(n);/*取車*/double Leave(struct Garage gar26)13int i,j;char num8;double charge=0;printf(請輸入要取的車牌號:);scanf(%s,num);for(i=0;i2;i+)for(j=0;j6;j+)if(!strcmp(garij.number,num)printf(您在%d 層%d 車位停車%d 分鐘n,garij.lay,garij.garagenum,garij.time);charge=garij.time/5*0.2;p

溫馨提示

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

評論

0/150

提交評論