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

下載本文檔

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

文檔簡介

1、實習案例C語言程序設計所在系別: 計算機技術(shù)系 所屬專業(yè): 網(wǎng)絡技術(shù) 指導教師: 宋鐵橋 專業(yè)負責人: 孫志成 實習案例19停車管理系統(tǒng)一、實習整體目標及要求我們已經(jīng)學習過了C語言的語法規(guī)范和編寫一般程序的方法,對于數(shù)據(jù)類型和輸入輸出、三種結(jié)構(gòu)化編程等知識都有了一定的應用能力。但是要編寫出優(yōu)秀的程序,需要學會綜合應用。本實習將帶領(lǐng)同學們用C語言設計一個較大型的綜合性應用程序停車管理系統(tǒng)。通過學習,使大家對于實用的C語言程序有更深的了解,并且通過模仿寫出一個較為復雜的C語言程序,從而提高程序設計的技能。(一)實習整體目標1.掌握并熟練運用C語言的基本數(shù)據(jù)類型與各種表達式,程序的流程控制語句。2.

2、掌握函數(shù)的定義,函數(shù)的返回值,函數(shù)的調(diào)用,函數(shù)的形式參數(shù)和實際參數(shù)之間的關(guān)系;掌握變量的作用域與生存期,了解函數(shù)的作用域。(二)實習內(nèi)容要求1用C語言實現(xiàn)系統(tǒng) 利用函數(shù)調(diào)用實現(xiàn)教室信息管理系統(tǒng)的設計;系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);提供一個界面來調(diào)用各個功能;調(diào)用界面和各個功能的操作界面應盡可能清晰美觀。2. 停車管理系統(tǒng)功能實現(xiàn):試設計停車管理系統(tǒng)以菜單方式工作,采用自定義函數(shù)設計各功能模塊被主菜單調(diào)用,使之能提供以下基本功能: (1)普通客戶停車(2)會員客戶停車(3)會員業(yè)務(4)取車并繳費(5)查詢剩余車位數(shù)量(6)管理員登錄(7)退出各功能模塊對可能出現(xiàn)的異常情況能進行簡單的

3、識別和糾錯。二、實習解決方案(程序代碼清單)void List() /程序主菜單,列出功能列表讓用戶選擇int i,j,width;char c;width=5;for(j=0;j5;j+) for(i=0;i0&n=40&Parkn.Space=1) break; printf(您輸入的車位號有誤。n);printf(1.重新輸入2.返回主菜單n);c=getch();if(c!=1)List();while(1); if(Parkn.Vip=1) /VIP停車的車位結(jié)算需要提供停車時輸入的賬戶密碼 do system(cls); printf(您要結(jié)算的是VIP客戶的停車位,請輸入存車時的

4、賬戶密碼。n); printf(請輸入6位英文密碼。n); for(i=0;i=a&c=A&c=0)fscanf(fpb,%s,account); fseek(fpb,-9L,1); fprintf(fpb,%-4d,m1-m2); printf(結(jié)算成功,當前賬戶余額為%d元。n,m1-m2); printf(按任意鍵返回主菜單。); fclose(fpb);if(fpr=fopen(records.txt,a+)=NULL) printf(停車記錄文件操作異常。n); exit(1);fprintf(fpr,第%d條停車記錄n車牌號:%sn停車時間:%s離去時間:%s,rec,Parkn.

5、Number,ctime(&Parkn.TimeStar),ctime(&Parkn.TimeStop);fclose(fpr);Parkn.Space=0;Parkn.Vip=0; if(fpm=fopen(money.txt,a+)=NULL) printf(收入記錄文件操作異常。n); exit(1); fprintf(fpm,%s%dn,ctime(&Parkn.TimeStop),m2);fclose(fpm); c=getch(); List(); /結(jié)算成功,將車牌號、停車日車和取車日期、收費金額記錄到文件里 else /VIP賬戶余額不足以結(jié)算 printf(當前賬戶余額不足以

6、支付。n); printf(1.充值2.返回主菜單n); fclose(fpb); c=getch(); switch(c) case 1:Recharge();break; default:List(); printf(該賬戶暫未充值,請充值。n); printf(1.充值2.返回主菜單n); c=getch(); switch(c) case 1:Recharge();break; default:List(); else /提供的密碼錯誤 printf(您輸入的密碼有誤。n); printf(1.重新輸入2.返回主菜單/n); c=getch(); switch(c) case 1:br

7、eak; default:List();while(1); else /普通客戶結(jié)算 timep=time(NULL); Parkn.TimeStop=timep;ti=Parkn.TimeStop-Parkn.TimeStar; if(ti%3600=0) m2=ti/3600*5;else m2=(ti/3600+1)*5;printf(請支付停車費用%d元。n,m2);printf(結(jié)算成功后按任意鍵返回主菜單。n);Parkn.Space=0;if(fpr=fopen(records.txt,a+)=NULL) printf(停車記錄文件操作異常。n); exit(1);fprintf

8、(fpr,第%d條停車記錄n車牌號:%sn停車時間:%s離去時間:%s,rec,Parkn.Number,ctime(&Parkn.TimeStar),ctime(&Parkn.TimeStop);fclose(fpr);if(fpm=fopen(money.txt,a+)=NULL) printf(收入記錄文件操作異常。n); exit(1); fprintf(fpm,%s%dn,ctime(&Parkn.TimeStop),m2); fclose(fpm);c=getch();List(); /結(jié)算成功,記錄信息elseprintf(您選擇了否,一秒后將返回主菜單。);Sleep(1000

9、);List();4、客戶存車功能代碼void TemporarySave() /普通客戶存車功能int i,n,sum=0,p; char c;system(cls);for(i=0;i40;i+)if(Parki.Space=0)sum+;if(sum=0)printf(對不起,已無空余車位。n);printf(按任意鍵返回主菜單);c=getch();List(); /查詢是否有剩余車位,有車位則繼續(xù)停車else /讓用戶存車,記錄車牌號,停車時間。printf(歡迎您來%s停車場存車。n,name); printf(注冊為會員存車更優(yōu)惠。n);printf(普通客戶存車費用為5元/小時

10、,不滿一小時按一小時計算。n);printf(您是否要存車?n);printf(1.是n2.否n);c=getch();switch (c)case 1:system(cls);for(i=0;i=0&n41)printf(您選擇的是第%d號車位,請確認。n,n);printf(按1確認,按其他鍵重新選擇車位號。n);c=getch();if(c=1)while(1)printf(請輸入車牌號。n); scanf(%s,Parkn.Number); if(numcheck(Parkn.Number)=1)break;elseprintf(您輸入的車牌號有誤,請任意鍵重新輸入。);getch()

11、;system(cls); timep=time(NULL); Parkn.TimeStar=timep;Parkn.Space=1;printf(您已成功選定停車位,停車位為%d號,停車牌號為%s,停車時間為%s。n,n+1,Parkn.Number,ctime(&timep);printf(三秒后將返回主菜單。n);rec+;Sleep(3000);break; /停車成功break;default:printf(您沒有選擇繼續(xù)停車,一秒后將返回主菜單。n);Sleep(1000);List();List(); void VipSave() /VIP用戶存車int i,n,sum=0,p,

12、same=0; char c,account4,password7;system(cls);for(i=0;i40;i+)if(Parki.Space=0)sum+;if(sum=0)printf(對不起,已無空余車位。n);printf(按任意鍵返回主菜單);return; /檢測是否有剩余車位,有車位則繼續(xù)存車else /VIP賬戶存車需要提供賬戶和密碼printf(請輸入會員賬號(賬號為3位數(shù)數(shù)字)n);for(i=0;i=0&c=9)accounti=c;putchar(c);elsei-;account3=0;printf(n請輸入6位英文密碼。n);for(i=0;i=a&c=A&

13、c0) /密碼正確繼續(xù)停車system(cls);printf(帳號為%s的尊貴會員登陸成功。n,account);printf(歡迎尊貴的會員您來%s停車場存車。n,name);printf(會員客戶存車費用為4元/小時,不滿一小時按一小時計算。n); printf(您是否要存車?n); printf(1.是n2.否n); c=getch(); switch (c) case 1: system(cls); for(i=0;i=0&n41) printf(您選擇的是第%d號車位,請確認。n,n); printf(按1確認,按其他鍵重新選擇車位號。n); c=getch(); if(c=1)w

14、hile(1) printf(請輸入車牌號。n); scanf(%s,Parkn.Number); if(numcheck(Parkn.Number)=1) break; else printf(您輸入的車牌號有誤,請任意鍵重新輸入。); getch(); system(cls); timep=time(NULL); Parkn.TimeStar=timep; Parkn.Space=1;Parkn.Vip=1;strcpy(Parkn.Account,account);strcpy(Parkn.Password,password); printf(您已成功選定停車位,停車位為%d號,停車牌號

15、為%s,停車時間為%s。n,n+1,Parkn.Number,ctime(&timep); printf(兩秒后將返回主菜單。n);rec+; Sleep(2000); break; /停車成功 break; default: printf(您沒有選擇繼續(xù)停車,一秒后將返回主菜單。n); Sleep(1000); List();else /提供的賬號密碼錯誤printf(您的賬號不存在或密碼錯誤。n);printf(按1重新輸入賬號密碼或按其他鍵返回主菜單。n);c=getch();if(c=1)VipSave();elseList(); List();5、會員辦理功能代碼void VipRe

16、gister() /VIP賬戶注冊功能char c,account4,password7,str14,str27;int i,a=1;system(cls);printf(您正在使用會員注冊功能。n);printf(注冊為會員停車更優(yōu)惠。n);printf(是否注冊為會員?n);printf(1.是2.否n);c=getch();if(c=1)while(a)system(cls); printf(您即將注冊為會員。n); printf(會員賬號為3位數(shù)數(shù)字,請輸入您要注冊的賬戶賬號。n); for(i=0;i=0&c=9) accounti=c; putchar(c); else i-; a

17、ccount3=0; a=0; if(fpv=fopen(vip.txt,a+)=NULL) printf(會員記錄文件操作異常。n); exit(1); while (!feof(fpv) fscanf(fpv,%s%s,str1,str2); if(strcmp(str1,account)=0) /檢測輸入的賬號是否已經(jīng)存在system(cls); printf(此賬號已被注冊,請重新注冊。n); printf(請選擇是否繼續(xù)注冊?n);printf(1.重新注冊n2.返回主菜單n);c=getch();if(c!=1)fclose(fpv);List();a=1;fclose(fpv);

18、 printf(n請輸入6位英文密碼。n); for(i=0;i=a&c=A&c=Z) passwordi=c; putchar(*); else i-;password6=0; if(fpv=fopen(vip.txt,a+)=NULL) printf(會員記錄文件操作異常。n); exit(1);fprintf(fpv,%sn%sn,account,password);fclose(fpv);if(fpb=fopen(balance.txt,a+)=NULL) printf(余額記錄文件操作異常。n); exit(1);fprintf(fpb,%sn%-4dn%sn%dn,account,

19、0,*,8888);fclose(fpb);printf(已成功注冊為會員。n);printf(會員賬號為%s,密碼為%s。n,account,password);printf(按任意鍵返回主菜單。n);c=getch();List(); /成功注冊elseprintf(您選擇了否,一秒后將返回主菜單。n);Sleep(1000);List();6、停車場剩余車位查詢功能代碼void Query() /查詢停車場剩余停車位int i,sum=0,p;char c;for(i=0;i40;i+)if(Parki.Space=0)sum+;if(p=(i+1)%10)=0)p=10;printf(

20、第%d排第%d個車位還未占用。n,i/10+1,p);printf(總共還有%d個車位還未占用。n,sum);printf(按任意鍵返回主菜單。n);c=getch(); List();7、會員余額查詢功能代碼void Balance() /VIP賬戶余額查詢int mo;int i,same;char c,account4,password7,str4;system(cls);printf(歡迎會員使用%s停車場。n,name);printf(您正在使用會員余額查詢功能。n);printf(請輸入會員賬號。n); for(i=0;i=0&c=9)accounti=c;putchar(c);e

21、lsei-;account3=0;printf(n請輸入6位英文密碼。n);for(i=0;i=a&c=A&c0)if(fpb=fopen(balance.txt,r)=NULL) printf(會員余額文件操作異常。n); exit(1); while (!feof(fpb) fscanf(fpb,%s%d,str,&mo); if(strcmp(str,account)=0) fclose(fpb);system(cls); printf(您的賬戶(%s)余額為%d元。n,account,mo);printf(請選擇是功能。n);printf(1.會員賬戶充值。n);printf(按其他鍵

22、返回主菜單。n);c=getch();switch(c)case 1:Recharge();break;default:List();fclose(fpb);else /賬號密碼輸入錯誤printf(n您輸入的賬號密碼錯誤n);printf(一秒后返回上級菜單。n);Sleep(1000);VipService();8、會員賬戶充值功能代碼void Recharge() /VIP賬戶充值功能int i,mo; int amount=0;char c,account4,str4;system(cls);printf(您正在使用會員充值功能。n);printf(是否對賬號進行充值。n);print

23、f(1.是。2.否。n);c=getch();if(c=1)system(cls);printf(請輸入要充值的賬號。n); for(i=0;i=0&c=9) accounti=c; putchar(c); else i-; account3=0; if(fpb=fopen(balance.txt,r+)=NULL)printf(會員余額文件操作異常。n); exit(1); while (!feof(fpb)fscanf(fpb,%s%d,str,&mo); if(strcmp(str,account)=0) /檢測輸入的賬號是否存在system(cls); printf(是否為此賬號%s充

24、值?n,str); printf(1.是2.否n); c=getch(); if(c=1)printf(請選擇充值金額(賬戶最大額度9999元)n); printf(1.充值100。n); printf(2.充值200。n); printf(3.充值500。n); printf(4.充值1000。n); c=getch(); switch(c) case 1:amount=100;break; case 2:amount=200;break; case 3:amount=500;break; case 4:amount=1000;break; default: printf(錯誤的輸入金額。n); printf(一秒

溫馨提示

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

評論

0/150

提交評論