C語言程序設(shè)計實習(xí)報告-停車場管理系統(tǒng)_第1頁
C語言程序設(shè)計實習(xí)報告-停車場管理系統(tǒng)_第2頁
C語言程序設(shè)計實習(xí)報告-停車場管理系統(tǒng)_第3頁
C語言程序設(shè)計實習(xí)報告-停車場管理系統(tǒng)_第4頁
C語言程序設(shè)計實習(xí)報告-停車場管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上C語言課程設(shè)計實習(xí)報告姓 名: 成帥安 學(xué)號: 院(系): 工程學(xué)院 專業(yè): 土木工程 2016 年 6 月第一章 停車場管理系統(tǒng)1.1題目描述1、有一個兩層的停車場,每層有6個車位,當(dāng)?shù)谝粚榆囃M后才允許使用第二層,(停車場可用一個二維數(shù)組實現(xiàn),每個數(shù)組元素存放一個車牌號)每輛車的信息包括車牌號,層號,車位號,停車時間共4項,其中停車時間按分鐘計算。2、假設(shè)停車場初始狀態(tài)為第一層已經(jīng)停有4輛車,其車位號依次為14,停車時間依次為20,15,10,5。即先將這四輛車的信息存入文件“car.dat中(數(shù)組的對應(yīng)元素也要進行賦值)。3、停車操作:當(dāng)一輛車進入停車場時,先輸

2、入其車牌號,再為它分配一個層號和一個車位號(分配前先查詢車位的使用情況,如果第一層有空則必須停在第一層),停車時間設(shè)為5,最后將新停入的汽車的信息添加文件car.dat中,并將在此之前的所有車的停車時間加5。4、收費管理(取車):當(dāng)有車離開時,輸入其車牌號,先按其停車時間計算費用,每5分鐘0.2元。(停車費用可設(shè)置一個變量進行保存),同時從文件car.dat中刪除該車的信息,并將該車對應(yīng)的車位設(shè)置為可使用狀態(tài)(即二維數(shù)組對應(yīng)元素清零)。按用戶的選擇來判斷是否要輸出停車收費的總計。5、輸出停車場中全部車輛的信息。6、退出系統(tǒng)。1.2算法設(shè)計1、需求分析:車輛信息用文件儲存,提供文件的輸入輸出操作

3、; 當(dāng)車離開時要刪除文件中該車的信息,因而要提供文件的刪除操作; 用鍵盤式菜單實現(xiàn)功能選擇。2、總體設(shè)計思路:整個管理系統(tǒng)設(shè)計可設(shè)計為停車模塊、取車模塊、車輛瀏覽信息模塊。另外車輛停放信息涉及到從car.dat中讀取,保存和修改,為了方便起見和程序的模塊化,我將文件的讀入和保存單獨設(shè)計為兩個子程序。 整體模塊圖如下:輸入車輛車牌號存車putCar停車模塊saveAll將車輛信息存入car.dat輸入車牌號碼取車getCar取車模塊刪除車輛信息顯示停車費用Main鍵盤式菜單showInfo車位信息Exit退出圖1.整體模塊圖3、各子程序設(shè)計如下:(1)使用全局變量數(shù)組,用一個二維數(shù)組實現(xiàn)停車場車

4、位的信息, int cars124;(2) 通過讀取car.dat的數(shù)據(jù),對程序初始化。下圖為car.dat的初始數(shù)據(jù): 在init()通過一個for循環(huán)完成對car.dat中數(shù)據(jù)的讀取。for(i=0;i12;i+) fscanf(fp,%d , &carsi0); fscanf(fp,%d , &carsi1); fscanf(fp,%d , &carsi2); fscanf(fp,%d , &carsi3); (3)設(shè)計一個子程序saveAll()用來保存停車場車位的信息到car.dat。用for循環(huán)再將處理后的數(shù)據(jù)存入文件中。for(i=0;i9999)&(temp)break;fla

5、g=0;printf(請重新輸入五位數(shù)車牌號n :);while(!flag); 其次,讀取的車牌號正確之后對標(biāo)志量清零flag=0,代表沒有沒有找到車位,進行為車輛找停車位的操作,如下:flag=0; for(i=1;i13;i+) if(carsi0!=0)continue; carsi0=temp; flag=1; break; 通過for循環(huán)和continue語句找到?jīng)]有停車的車位,即cari0不等于0,并將標(biāo)志量flag賦值1,表示有車位,用break語句跳出循環(huán)。再用if語句處理flag=1的情況,即停車場車位已滿無法停車。最后,對存入的車輛賦初始時間5,并且前面的已存入的車輛時間

6、都加5。語句如下:for(i=0;i9999)&(temp)for(i=0;i12;i+)if(carsi0=temp)carsi0=0; cost=0.2*carsi3/5;carsi3=0;flag=1;break;if(flag=0)printf(您輸入的車牌號碼有誤,請重新輸入。n);while(!flag); 第四步,有選擇性的顯示收費價格:printf(n 顯示停車費用?是(1)/否(2);scanf(%d,&i);switch(i)case 1:printf(n車牌號 : %d 費用 %8.2f元n,temp,cost);case 2:default: break; 最后,調(diào)用s

7、aveAll()函數(shù)來保存數(shù)據(jù)到car.dat。(6)車輛信息瀏覽模塊: 只需要顯示有車的車位,可以用for循環(huán)語句再加上if判斷語句來實現(xiàn)顯示功能。printf(車牌號tt樓層t 車位 tt時間n);for(i=0;i12;i+)if(carsi0!=0)printf(%dtt %d tt%d tt %dn,carsi0,carsi1,carsi2,carsi3); (7)主函數(shù):調(diào)用子函數(shù)init()初始化讀取car.dat文件。用printf在屏幕上顯示停車場的菜單。再用switch語句實現(xiàn)選擇執(zhí)行哪個模塊語句。switch(a) case 1:putCar(); break;case

8、2:getCar();break;case 3:showInfo();break;case 4:exit(0); break; default:printf(您輸入的信息有誤!n); break;getchar();1.3程序設(shè)計及代碼分析程序代碼如下:#include #include #include#includeint park124; /*停車場使用數(shù)組*/void init() /*初始化*/char filename = car.dat;FILE *fp;int i;if(fp = fopen(filename,r) = NULL)printf(無法打開文件 car.datn);

9、return ;for(i=0;i12;i+) /*讀數(shù)據(jù)文件內(nèi)容到數(shù)組*/fscanf(fp,%d , &parki0);fscanf(fp,%d , &parki1);fscanf(fp,%d , &parki2);fscanf(fp,%d , &parki3);fclose(fp);void saveAll() /*保存數(shù)據(jù)到car.dat*/char filename = car.dat;FILE *fp;int i=0;if(fp = fopen(filename,w) = NULL)printf(無法打開文件 car.datn);return ;for(i=0;i9999)&(te

10、mp)break;flag=0;printf(您輸入的車牌號格式有誤);while(!flag);flag=0;for(i=0;i12;i+)if(parki0!=0)continue;parki0=temp;flag=1;break;if(flag=0) /*沒有找到位置,停車場已滿*/printf(很抱歉!車位已滿:n);return ;for(i=0;i9999)&(temp)for(i=0;i12;i+)if(parki0=temp)parki0=0; /*刪除該車位車輛信息*/cost=0.2*parki3/5;parki3=0;flag=1;break;if(flag=0)prin

11、tf(您輸入的車牌號碼有誤,請重新輸入。n);while(!flag);printf(n Printf out the cost?Yes(1)/No(2);scanf(%d,&i);switch(i)case 1:printf(n車牌號 : %d 費用 %8.2f元n,temp,cost);case 2:default: break;saveAll(); /*保存數(shù)據(jù)*/getchar();printf(取車成功!n按任意鍵回到主菜單.);void showInfo() /*顯示當(dāng)前停車場信息*/int i;printf(nn*當(dāng)前停車場車位信息*n);printf(車牌號tt樓層t 車位 t

12、t時間n);for(i=0;i12;i+)if(parki0!=0)printf(%dtt %d tt%d tt %dn,parki0,parki1,parki2,parki3);getchar();printf(輸入任意鍵返回主菜單.);int main()int a;init();do printf(nnn*n);printf(* 地大停車場管理系統(tǒng) *n);printf(* 1.停車 *n);printf(* 2.取車 *n);printf(* 3.當(dāng)前車位信息 *n);printf(* 4.退出 *n); printf(*n);printf(請輸入選項:);scanf(%d,&a);

13、switch(a) /*菜單選擇*/case 1:putCar(); break;case 2:getCar();break;case 3:showInfo();break;case 4:exit(0); break; default:printf(您輸入的信息有誤!n); break;getchar();while(1);return 0;1.4試驗數(shù)據(jù)及運行效果截圖1、 打開程序進入鍵盤式界面菜單,選擇您所需要進行的操作選項:2、 車輛車位的初始化,查看當(dāng)前車位信息如下:3、 停入車牌號為12345的車4、 查看當(dāng)前車位信息:5、 取車并顯示費用:6、 連續(xù)停入多輛車,當(dāng)停第13輛車時:7、 查看當(dāng)前車位信息:8、 輸入4程序退出。1.5設(shè)計中出現(xiàn)的錯誤及解決方法錯誤:停車時車輛無法按照樓層和車位要求停放,查

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論