停車場管理系統C語言實習報告范本_第1頁
停車場管理系統C語言實習報告范本_第2頁
停車場管理系統C語言實習報告范本_第3頁
停車場管理系統C語言實習報告范本_第4頁
停車場管理系統C語言實習報告范本_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、. . . . C語言課程實習報告要求 設有一個可以停放n輛汽車的狹長停車場,它只有一個大門可以供車輛進出。車輛按到達停車場時間的早晚依次從停車場最里面向大門口停放(最先到達的第一輛車放在停車場的最里面)。如果停車場已放滿n輛車,則后來的車輛只能在停車場大門外的便道上等待,一旦停車場有車開走,則排在便道上的第一輛車就進入停車場。停車場如有某輛車要開走,在它之后進來的車都必須先退出停車場為它讓路,待其開出停車場后,這些車輛再依原來的次序進場。每輛車在離開停車場時,都應依據它在停車場停留的時間長短交費。如果停留在便道上的車未進停車場就要離去,允許其離去,不收停車費,并且仍然保持在便道上等待的車輛的

2、次序。編制一程序模擬停車場管理。提示 汽車的模擬輸入信息格式可以是:(到達/離去,汽車牌照,到達/離去的時刻)。 基本要求:要求程序輸出每輛車到達后的停車位置(停車場或便道上),以與某輛車離開停車場時應交納的費用和它在停車場停留的時間。根據題目要求,停車場可以用一個長度為n的堆棧來模擬。由于停車場如有某輛車要開走,在它之后進來的車輛都必須先退出停車場為它讓路,待其開出停車場后,這些車輛再依原來的次序進場,所以可以設兩個堆棧。一、需求分析根據題目要求,程序應該提供“到達/離去,汽車牌照,到達/離去”的輸入、輸出操作;在程序中需要瀏覽停車場的車位信息,應提供顯示、查找、排序等操作;此外還應提供鍵盤

3、式菜單實現功能選擇。二、總體設計:根據需求分析,可以將系統的設計分為以下五大模塊:(1)車輛進入;(2)車輛退出;(3)車輛等待;(4)車輛查詢;(5)退出。停車場管理系統車輛進入車輛退出車輛等待車輛信息顯示車輛查詢退出系統一、 詳細設計:主函數中只包含菜單函數,菜單部分單獨寫成函數,只提供輸入、功能處理和輸出部分的函數調用,其中各功能模塊用菜單方式選擇。程序#define N 30 /*等待車輛*/#define M 20 /*車位*/#define P 2 /*單位時間所收費用*/#include<stdio.h>#include<stdlib.h>#include

4、<string.h>struct cars /*定義車輛信息*/ char state; int num; int in_time; int out_time; int time_spend; int money_to_pay;carM;struct carleft char state; int num;waitN;1、主函數模塊流程圖主菜單輸入n,判斷n是否是1-4N根據n的值調用各功能模塊函數程序main() /*主函數*/ pre_manage(); menu(); /*調用主菜單函數*/ return 0;void menu() /*主菜單函數*/int n,w;dopu

5、ts("tt*MENU*nn"); puts("tttt 1.car_arrive"); /*有車到來*/ puts("tttt 2.car_depart"); /*有車離開*/ puts("tttt 3.car_browse"); /*瀏覽車位信息*/ puts("tttt 4.exit"); /*退出*/ puts("nntt *n")printf("Choice your number(1-4): bb"); /*選擇所需服務*/ scanf(&qu

6、ot;%d",&n); getchar(); if(n<1|n>4) w=1; getchar(); else w=0; while(w=1); switch(n)case 1: car_arrive();break; case 2: car_depart();break; case 3: car_browse();break; case 4: exit(0); void pre_manage() /*循環結構*/int i;for(i=0;i<M;i+)cari.state='E'for(i=0;i<N;i+)waiti.state=

7、'E'2、各功能模塊設計:(1)、車輛進入模塊分析車輛進入停車場后,判斷車位和等待車位是否有剩余。若車位有空余則輸入車輛編號和進入時間,記錄在已停放車輛信息中;若車位無剩余而等待車位有剩余則輸入車輛編號和進入時間,記錄在等待車輛信息中;若兩者都無剩余則提示無剩余空間。流程圖車輛進入是否有空余車位NY是否有空余等待車位輸入車輛編號和進入時間輸入車輛編號和進入時間顯示車位已滿返回主菜單NY程序車輛到來模塊void car_arrive() /*車輛到來模塊*/ int s,w1,w2,t; void menu(); /*顯示主菜單*/ s=whether(); /*判斷是否有空余車

8、位*/ w1=whether_cars_full();w2=whether_carwait_full();if(s=1) /*有空余車位*/puts("ttInput the NO. of the coming car! n "); /*輸入車輛編號*/ carw1.state='A' scanf("%d",&carw1.num); puts("nttInput the in_time!n"); /*輸入車輛進入時間*/ scanf("%d",&carw1.in_time);else

9、 if(s=2) /*有空余等待車位*/puts("ttInput the NO. of the coming car! n "); /*輸入車輛編號*/waitw2.state='A' scanf("%d",&waitw2.num);else printf("No extra space"); /*無剩余空間*/printf("what do you want to do next?n");/*選擇所需服務*/puts("tt*MENU*nn");puts("

10、tttt 1).Another car is coming");puts("tttt 2).Back to Menu");puts("nntt *n");printf("nttChoice your number(1-2): bb"); scanf("%d",&t); getchar();if(t=1) /*另一輛車進入*/car_arrive();else /*返回主菜單*/menu();判斷車位是否空余模塊int whether() /*判斷車位是否空余模塊*/int w1,w2,s; w1=

11、whether_cars_full();w2=whether_carwait_full(); if(w1<M) s=1; /*有空余車位*/ else if(w1=M&&w2<N) s=2; /*車位已滿,等待車位有空余*/ else s=3; /*車位和等待車位都已滿*/ return s; 判斷停泊車位是否空余模塊int whether_cars_full() /*判斷停泊車位是否有空余模塊*/ int i,k;for(i=0;i<M;i+)if(cari.state='E') break; /*當輸入為“E”的時候退出系統*/ k=i;r

12、eturn k; 判斷等待車位是否空余模塊int whether_carwait_full() /*判斷等待車位是否有空余模塊*/ int i,k=N;for(i=0;i<N;i+)if(waiti.state='E') k=i;break; /*當輸入為“E”的時候退出系統*/ return k;(2)、車輛退出模塊分析 該部分需要實現功能:用戶選擇車輛離開后,先查詢該車位于停泊車位還是等待車位,若位于停泊車位則在輸入離開時間后顯示所需交納費用;若位于等待車位則不需交費。流程圖車輛退出系統該車處于停泊車位輸入車輛編號該車處于等待車位提示未找到該車輸入離開時間計算需交納費

13、用退出系統YNNY程序停泊車輛離開模塊void car_in_left(int k) /*停泊車輛離開模塊*/int w1,i,j,n,s;void car_wait_left(int n); struct cars tempM;w1=whether_cars_full();n=w1-k-1;for(i=w1,j=0;j<n;i-,j+)tempj=cari;cark.state='D'printf("Input the out_time!"); /*輸入離開時間*/scanf("%d",&cark.out_time);s=

14、cark.out_time;cark.time_spend=cark.out_time-cark.in_time; /*計算停泊時間*/cark.money_to_pay=cark.time_spend*P; /*計算所需交納費用*/printf("the NO.%d car need to pay %d yuan",cark.num,cark.money_to_pay);for(i=k,j=n-1;j>=0;i+,j-)cari=tempj;carM.state=wait1.state;carM.in_time=s;carM.num=wait1.num;car_wa

15、it_left(1);等待車輛離開模塊void car_wait_left(int n) /*等待車輛離開模塊*/int i;for(i=n;i<N-1;i+)waiti=waiti+1; waitN-1.state='E'車輛所處車位查詢模塊int search() /*查詢模塊*/ int temp_num,n1,n2,w=0,n;doprintf("Input the num of the leaving car!"); /*輸入離開車輛編號*/scanf("%d",&temp_num); if(temp_num=-1

16、)exit(0);n1=search_car(temp_num); /*調用查詢已用停泊車位模塊*/n2=search_carwait(temp_num); /*調用查詢已用等待車位模塊*/if(n1<M) whether_in=1; n=n1; /*車輛處于停泊車位*/else if(n1=M&&n2<N) /*車輛處于等待車位*/ whether_in=0; return n=n2; else /*無該車輛信息*/ printf("Not Found!Input again! nOr input -1 to exit "); w=1;n=-1

17、; while(w=1);return n;查詢已用停泊車位模塊:int search_car(int temp_num) /*查詢已用停泊車位*/ int i,k;for(i=0;i<M;i+)if(cari.state='A'&&cari.num=temp_num) break;k=i; /*車輛處于停泊車位,返回車輛編號*/return k;查詢已用等待車位模塊:int search_carwait(int temp_num) /*查詢已用等待車位*/ int i,k;for(i=0;i<N;i+)if(waiti.state='A&#

18、39;&&waiti.num=temp_num) break;k=i; /*車輛處于等待車位,返回車輛編號*/return k; int whether_in; /*判斷是否存在*/車輛離開模塊void car_depart() /*車輛離開模塊*/ int n,w; void menu();int search(); /*調用車輛位置查詢模塊*/n=search();if(whether_in=1) car_in_left(n); else car_wait_left(n); printf("ntt_ Do it successful_n"); puts(

19、"nn");printf("what do you want to do?n"); /*選擇所需服務*/puts("tt*MENU*nn"); puts("tttt 1).Another car depart"); /*另一車輛離開*/ puts("tttt 2).Back to Menu"); /*返回主菜單*/ puts("nntt *n");printf("nnChoice your number(1-2): bb"); scanf("%d

20、",&w); getchar();if(w=1)car_depart(); /*調用車輛離開模塊*/elsemenu(); /*返回主菜單*/(3)、車位信息瀏覽模塊分析該模塊需要實現功能:用戶選擇瀏覽車位信息時進入該模塊,查詢并顯示車位使用信息。流程圖車位信息瀏覽系統顯示車位使用信息返回主菜單程序void car_browse() /*車位信息瀏覽模塊*/ int s,w1,w2;void menu(); s=whether(); w1=whether_cars_full(); /*判斷是否還有空閑停泊車位*/w2=whether_carwait_full(); /*判斷是否還有空閑等待車位*/if(s=1) /*停泊車位未滿*/printf("There are %d lot in the parking lotn",M);printf("And there are %d cars in it.",w1); /*顯示

溫馨提示

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

評論

0/150

提交評論