版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計報告(2016/2017學(xué)年 第1學(xué)期)題目:泊車管理系統(tǒng)專 業(yè) 光電信息科學(xué)與工程 組長 學(xué)號姓名 B15030727葛子軼 組員 學(xué)號姓名 B15030725黃亮亮 B15030726崔郁璠 指 導(dǎo) 教 師 付竟之 指 導(dǎo) 單 位 南京郵電大學(xué)計算機軟件學(xué)院日 期 2016年5月26日 成員分工組長(葛子軼)密碼系統(tǒng) 車位信息模塊 存車模塊部分 查詢模塊組員(黃亮亮)存車模塊部分 提取系統(tǒng)時間組員(崔郁璠)取車模塊評分細(xì)則評分項優(yōu)秀良好中等差遵守機房規(guī)章制度上機時的表現(xiàn)學(xué)習(xí)態(tài)度程序準(zhǔn)備情況程序設(shè)計能力團隊合作精神課題功能實現(xiàn)情況算法設(shè)計合理性用戶界面設(shè)計報告書寫認(rèn)真程度內(nèi)容詳實程度
2、文字表達熟練程度回答問題準(zhǔn)確度簡短評語 教師簽名: 年 月 日評分等級備注評分等級共五種:優(yōu)秀、良好、中等、及格、不及格泊車管理系統(tǒng)一、 課題內(nèi)容和要求【問題描述】該系統(tǒng)要求對一個文件中所存儲的汽車數(shù)據(jù)進行各種常規(guī)操作,如:查找、計費、顯示等功能。通過此課題,熟練掌握文件、數(shù)組的各種操作,以及一些算法思想的應(yīng)用,實現(xiàn)一個簡單的泊車管理系統(tǒng)。【功能要求】(1) 管理人員根據(jù)口令進入系統(tǒng); (2) 管理車位信息(車位編號,狀態(tài))和每小時的收費費率(大車7元/小時,小車5元/小時,由停車時選擇錄入); (3) 停車時,建立對象,錄入汽車停泊信息(車牌號,停泊位置,停泊開始時間);停車位為第一個為空的
3、位置,由程序查詢自動給出車位號,如果車位已滿要給出提示;(4) 取車時,需要根據(jù)車輛停泊時間自動計算費用(半小時內(nèi)以半價計算,超出半小時按一小時計算)并顯示在屏幕上。(5)可以隨時根據(jù)車牌查詢是否入庫。(6)可以隨時根據(jù)車位查詢該位置上的相關(guān)信息。(7)程序中用到的時間通過提取系統(tǒng)時間獲得。二、 需求分析泊車管理系統(tǒng)的功能框架圖如圖1所示。泊車管理系統(tǒng)泊車管理系統(tǒng)退出系統(tǒng)查詢模塊取車模塊存車模塊車位信息密碼系統(tǒng) 圖1 泊車管理系統(tǒng)功能框架圖(1) 指令系統(tǒng):管理員輸入指令,如果指令正確,顯示登錄成功,進入車位信息界面;如果指令錯誤,顯示密碼錯誤,請重新輸入密碼。(2) 車位信息:顯示當(dāng)前車位情
4、況與收費標(biāo)準(zhǔn),根據(jù)車位狀況,可以選擇存車、取車或者退出系統(tǒng)。(3) 存車模塊:選擇車的大小類型當(dāng)有空閑車位時,顯示空閑車位編號,根據(jù)提示選擇想要停入的車位, 輸入車牌號,即可成功停車。當(dāng)沒有空閑車位但有候車車位時,提示是否候車。選擇候車,輸入車牌號,候車成功;選擇離開,返回車位信息界面。當(dāng)沒有空閑車位也沒有候車車位時,提示沒有車位,返回車位信息界面。(4) 取車模塊:輸入車牌號,自動顯示收費金額,返回車位信息界面。三、 概要設(shè)計1 主要結(jié)構(gòu)體void order(); /*指令操作*/ void end(); /*管理員退出*/ void situation();/*車位信息*/ void p
5、utcar(); /*存車*/ void takecar(); /*取車*/int find()/*查詢車牌號*/struct tm *local;/*讀取系統(tǒng)時間*/time_t ; int car136/*存儲車子的各種信息*/2 主要函數(shù)流程圖(1) 主函數(shù):管理員輸入密碼進入車位信息界面,按1進入存車模塊,按2進入取車模塊,按3退出系統(tǒng)。開始輸入密碼密碼是否正確 N Y車位信息輸入 查詢模塊取車模塊存車模塊 按1 按2 按3 圖2 主函數(shù)(2)存車函數(shù):首先進行車大小類型判斷,以決定結(jié)費類型。然后輸入車牌號,選擇空閑車位停車,若無空閑車位,提示是否在候車位停車開始輸入1或2車大小類型判
6、斷 1大車 2小車5元/小時不滿半小時半價7元/小時不滿半小時半價是否有車位 Y N是否候車選擇車位 Y 是否有候車車位輸入車牌號 N Y 輸入車牌號 N 停車/候車成功結(jié)束 圖3存車函數(shù) (3)取車函數(shù):輸入車牌號,判斷有無此車牌,無則重新輸入,有則按存車模塊內(nèi)記錄的車大小類型自動結(jié)費開始輸入車牌號判斷有無車牌號 N按車類型自動結(jié)費 Y結(jié)束 圖4 取車函數(shù)四、程序源代碼#include<stdio.h> #include<time.h> #include<stdlib.h> #include<conio.h> #include<strin
7、g.h>void order(); /*指令操作*/ void end(); /*管理員退出*/ void situation();/*車位信息*/ void putcar(); /*存車*/ void takecar(); /*取車*/struct tm *local;/*讀取系統(tǒng)時間*/ time_t t; struct tm *locall; time_t tt; struct tm *localll; time_t ttt;int sum=0; int cars136;int x;/*車類型大小判斷*/void main()/*頁面*/ char choice; printf(&
8、quot;*歡迎進入泊車管理系統(tǒng)*nn"); printf("t 請輸入指令:"); order();do choice=getchar(); switch(choice) case'1': situation(); break; case'2': end(); while(1); void order()/*指令操作模塊*/ char pass="1234"/*設(shè)置的密碼*/ char str5=0,ch; int i=0,n=strlen(pass); while(n-) ch=getch(); /讀取字符,
9、不顯示 if(ch!='n') putchar('*'); stri+=ch; getchar(); strstrlen(pass)='0' if(strcmp(str,pass)=0) printf("nn登陸成功!n"); printf("n進入系統(tǒng)請按1nn"); printf("退出系統(tǒng)請按2 "); else printf("n密碼錯誤,請重新輸入:"); order(); void situation()/* 車位信息模塊 */ int i; char c
10、hoice; printf("n 收費標(biāo)準(zhǔn)n"); printf(" 大車停車不足30分鐘的,需支付3.5元;超過30分鐘的部分 按7元/時收費n 小車停車不足30分鐘的,需支付2.5元;超過30分鐘的部分 按5元/小時收費"); printf("nt 當(dāng)前車位信息nn");printf("tt車位號tt車牌號tt時:分n"); for(i=0;i<10;i+) if(carsi0=0)/*如果數(shù)組中第i個元素的值為零*/ printf("tt%dt沒有車n",i+1); /*輸出第i+1
11、個車位上沒有車 */printf("t %dt %dt %d:%dn",i+1,carsi 1,carsi2,carsi3);/*輸出車位號、車牌號和時間*/ printf("存車請按1nn"); printf("取車請按2nn"); printf("退出請按3 ");do choice=getchar(); switch(choice) case'1':putcar(); break; case'2':takecar(); break; case'3':end();
12、 break; while(1); void putcar() /*存車模塊*/ int i,j,n,c,m,b;/*i(車位),j(查詢空閑車位),n(存車車牌號碼),m(候車位),c(另一輛車牌號),b(選擇車位號)*/ char d;/*yesno*/char d1;printf("請選擇您的車類型:n1大車 2小車n");scanf("%d",&x);if(sum>=13) printf("tt停車場擁擠,請選擇其他停車場n"); situation(); else if(sum>=10) /*如果停車位已
13、停滿*/ printf("ntt現(xiàn)在沒有多余的停車位!n"); printf("ntt是否在候車位等待? <是請按y/否請按n> "); d1=getchar(); d=getchar();switch(d) case 'y':/*選擇候車*/ printf("ntt請輸入車牌號碼: "); scanf("%d",&n); for(m=10;m<13;m+) if(carsm0=0) /*第m+1號候車位空閑*/ carsm1=n;/*存入車牌號*/ carsm0=1; b
14、reak; printf("tt在候車位停車成功!n"); sum=sum+1;/*停車總數(shù)加1*/ system(“cls”); situation(); break; case n:/*不候車*/ printf("tt謝謝使用此存車系統(tǒng)!n"); printf("tt祝您旅途愉快n"); printf("tt再見!n");system(“cls”); situation(); default : system(“cls”);situation(); else /*有停車位*/ printf("n現(xiàn)在剩
15、下 "); for(j=0;j<10;j+) /*for循環(huán)語句查詢剩余的車位*/ if(carsj0=0) printf("%d,",j+1); /*車位號*/ printf("號車位!n"); printf("n您想停在哪一個車位? "); scanf("%d",&b);/*輸入車位號*/ for(j=0;j<10;j+) while(carsj0!=0&&b=j+1)/*如果選擇有車的車位*/ printf("ntt車位正在使用n"); pri
16、ntf("ntt請重新選擇!"); scanf("%d",&b); if(carsj0=0&&b<=10)/*如果正確選擇車位*/ printf("ntt請輸入您的車牌號碼:");back0: scanf("%d",&c); for(i=0;i<10;i+) if(c=carsi1) printf("n該車牌號已存在,請核實后重新輸入! "); goto back0; carsb-10=1; carsb-11=c;/*將輸入的車牌號存入數(shù)組中*/ pr
17、intf("ntt停車成功!n "); t=time(NULL); local=localtime(&t); carsb-12=local->tm_hour; carsb-13=local->tm_min; sum=sum+1; system(“cls”); situation(); void takecar()/*取車模塊*/ int i,m,t,a,b;/*i(車位號),t(計時),m(候車位號),a(取車車牌號)、b(車大小判斷)*/ double pay; int k=-1;printf("nt請輸入您的車牌號碼: ");ba
18、ck1:scanf("%d",&a);for(i=0;i<10;i+) if(carsi1=a)/*如果輸入的車牌號碼相符*/ tt=time(NULL); locall=localtime(&tt); carsi4=locall->tm_hour; carsi5=locall->tm_min; k=i;/*取的是第K位的車*/ carsk0=0; break;if(k=-1) printf("此車牌號不存在,請重新輸入車牌號: "); goto back1; t=(carsk4*60+carsk5)-(carsk2*6
19、0+carsk3); if(x=1&&(t<30|t=0)pay=3.5; /*如果泊車時間不足30分鐘,需支付3.5元*/else if(t>30&&x=1) pay=(t-30)*7/60;/*如果泊車時間滿30分鐘 需支付7元/小時*/else if(x=2&&(t<30|t=0)pay=2.5;/*如果泊車時間不足30分鐘,需支付2.5元*/else if(t>30&&x=2) pay=(t-30)*5/60;/*如果泊車時間滿30分鐘 需支付5元/小時*/ printf("nntt您需要
20、支付:%.2f元n",pay); printf("tt取車成功!n"); printf("tt再見!n"); sum=sum-1; /*存入的車輛總數(shù)減1*/for(m=10;m<13;m+) if(carsm0=1) /*如果候車位上有車*/ carsk0=1; carsk1=carsm1; /* 將候車位上的車移到剛開走車的車位 上*/ ttt=time(NULL); localll=localtime(&ttt); carsk2=localll->tm_hour; carsk3=localll->tm_min;
21、for(m=10;m<12;m+) carsm0=carsm+10; /* 將候車位上的車上移*/ cars120=0; else /*候車位沒有車*/carsi0=0;situation();void end() printf("n=感謝使用泊車管理系統(tǒng)!=nn"); printf("t如需進入系統(tǒng),請再次輸入密碼:"); order(); 五、測試數(shù)據(jù)及其結(jié)果分析圖5 圖6圖7 圖8 圖 9 圖 101)指令系統(tǒng)測試輸入密碼 1998 在屏幕上顯示* 密碼輸入錯誤輸入密碼 1234 在屏幕上顯示* 密碼正確 登錄成功!2)車位信息界面測試按1
22、選擇存車按2 選擇2號車位選擇大小車類型提示“選擇大小車類型 1大車 2小車”輸入0525 2號車位顯示車牌號0525 停車成功按2 選擇2號車位 顯示車位被正在使用 請重新選擇!輸入a123 停車成功 但是車牌不顯示為a123而顯示-858993460當(dāng)所有車位停滿后 繼續(xù)按1選擇存車 提示“是否候車”按Y選擇候車 提示“輸入車牌號:” “感謝使用”當(dāng)有車位空閑時自動停入按2 選擇取車提示“輸入車牌號:” 輸入0525按選擇的大小車類型自動結(jié)費 取車成功 車位信息界面顯示2號車位沒有車輸入不存在車牌號1111 提示“此車牌號不存在 重新輸入車牌號:”3) 退出系統(tǒng)測試按3退出系統(tǒng)顯示:=感謝
23、使用泊車管理系統(tǒng)=如需進入系統(tǒng),請再次輸入密碼:分析結(jié)果如下:1) 指令模塊:符合密碼輸入要求。2) 存車模塊:程序不能識別字母,這是程序最大的缺憾。 3) 取車模塊:按車類型自動結(jié)費,同時減少了車牌號影響,按a123同樣可以取車。4) 車位信息模塊:下一輛存入的車車牌號會自動覆蓋前一輛車的車牌,信息記錄會被覆蓋。六、調(diào)試過程中的問題1) 指令系統(tǒng):最初密碼顯示為明文,但聯(lián)系實際后決定應(yīng)改為輸入的是字母或數(shù)字,但顯示密碼為“*”,將密碼輸入由getchar()改為getch()。并用while來完成密碼連續(xù)輸入,過程中由于粗心少了個“”導(dǎo)致一段時間內(nèi)密碼只能輸入1位。2) 存車模塊:多種情況需
24、要考慮,如重復(fù)停放一個車位,車位已滿但仍然需要候車,輸入車牌號與已停入車位內(nèi)的車牌號重復(fù)等等情況,因此存車模塊是整個程序代碼中最長的一部分。3) 取車模塊:根據(jù)車類型大小結(jié)費的問題困擾了我們很久,在網(wǎng)上搜索如何在一個函數(shù)中輸入所需數(shù)字然后在另一個函數(shù)中輸出的問題后,用全局變量很容易的解決了這個問題。4) 退出系統(tǒng):用了switch語句在主函數(shù)中簡單的完成了一次選項設(shè)計,作為退出的end()函數(shù)也很簡單只是兩個輸出語句加上重新輸入密碼的order()指令函數(shù)。5) 時間輸入:題目要求輸入系統(tǒng)當(dāng)?shù)貢r間,減少了手動輸入時間的麻煩,運用頭文件<time.h>以及其函數(shù)localtime(&t)來獲取當(dāng)?shù)貢r間。6)屏幕的清屏與凝滯:運用system(“
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版船舶設(shè)備維修保養(yǎng)綜合服務(wù)合同3篇
- 2024版河道清渠建設(shè)施工協(xié)議范本一
- 2024甲乙雙方就電子商務(wù)平臺建設(shè)與運營之合作協(xié)議
- 九下語文《送東陽馬生序》閱讀問答題必刷必背(答案版)
- 2024年退役士兵供養(yǎng)合同3篇
- 2024弱電智能化系統(tǒng)集成與調(diào)試服務(wù)合同2篇
- 2024年物流司機勞務(wù)合同
- ups不間斷電源建設(shè)項目合同(2024年)
- 2024年龍門吊設(shè)備租賃服務(wù)協(xié)議版B版
- 2024年石料供應(yīng)合同模板3篇
- 八年級數(shù)學(xué)上冊《第十八章 平行四邊形》單元測試卷及答案(人教版)
- 中職計算機應(yīng)用基礎(chǔ)教案
- 盤龍煤礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 消防安全評估質(zhì)量控制體系(2020年整理)課件
- 新生兒沐浴及撫觸護理
- 理想氣體的性質(zhì)與熱力過程
- 2022年浙江省各地市中考生物試卷合輯7套(含答案)
- 性病轉(zhuǎn)診與會診制度
- 教學(xué)案例 英語教學(xué)案例 市賽一等獎
- 南京市勞動合同書(全日制文本)
- GB/T 28859-2012電子元器件用環(huán)氧粉末包封料
評論
0/150
提交評論