停車場管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)課程設(shè)計)_第1頁
停車場管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)課程設(shè)計)_第2頁
停車場管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)課程設(shè)計)_第3頁
停車場管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)課程設(shè)計)_第4頁
停車場管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)課程設(shè)計)_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、停車場管理系統(tǒng)一編程思想:將停車場設(shè)計成一個虛擬的棧,將其入口設(shè)計成棧頂,在設(shè)計一個倒車場,也將其設(shè)計成一個虛擬的棧,使其入口為棧頂,再根據(jù)隊列設(shè)計一個供車來停放的便道,當(dāng)停車場里的車輛不為滿時,車輛進入停車場,當(dāng)停車場里的車輛為滿時,車輛在便道里等候,當(dāng)車輛從停車場里出來的時候,如果出來的不是第一個車輛,則其前面的車輛將進入倒車場里面,待車輛出去后,倒車場里的車再依次進入停車場,如果停車場不滿的話,便道里等候的第一輛車進入停車場,進入停車場的時間為停車場中車輛出來的時間,再設(shè)計一個函數(shù)用來顯示停車場以及便道中車輛的信息。二程序流程圖:結(jié)束三,程序代碼:#include#defineSize3

2、/*車庫容量*/#definePrice5/*單位價格*/#defineNull0typedefstructtimeinthour;/*時間結(jié)點*/Time;typedefstructintcar_number;Timearrivetime,leavetime;/*車信息結(jié)點*/intfee;car_info;typedefstructcar_info*north;car_info*south;/*停車場信息*/intnumber;car_park;typedefstructcar_info*west;car_info*east;/*倒車場信息*/intnumber;car_park_back

3、;/*初始化停車場*/*/Typedefstructcarcar_info*data;structcar*next;/*結(jié)點信息*/carnode;typedefstructnodecarnode*head;carnode*rear;/*便道信息*/intnumber;car_park_temp;voidinit_car_park(car_park*cp)cp-north=(car_info*)malloc(Size*sizeof(car_info);if(!cp-north)printf(errorn);cp-south=cp-north;/*令棧頂?shù)扔跅5?/cp-number=0;voi

4、denter_car_park(car_park*cp,car_info*car)*cp-south+=*car;/*車輛進入停車場*/cp-number+;intnotfull_car_park(car_park*cp)inte;if(cp-south-cp-north=Size)/*判斷常常是否已滿e=0;elsee=1;return(e);intnotempty_car_park_back(car_park_back*cpb)inte;if(cpb-east=cpb-west)e=0;/*判斷倒車場是否不空*/elsee=1;return(e);voidback_car_park(car

5、_park*cp,car_info*car)*car=*cp-south;/*進行倒車操作*/cp-number-;voidinit_car_park_back(car_park_back*cpb)cpb-west=(car_info*)malloc(Size*sizeof(car_info);if(!cpb-west)printf(errorn);/*倒車場初始化*/cpb-east=cpb-west;cpb-number=0;voidenter_car_park_back(car_park_back*cpb,car_info*car)*cpb-east+=*car;cpb-number+;

6、/*進入倒車場操作*/voidleave_car_park_back(car_park_back*cpb,car_info*car)*car=*-cpb-east;cpb-number-;/*離開倒車場操作*/voidinit_car_park_temp(car_park_temp*cpt)cpt-head=cpt-rear=(carnode*)malloc(sizeof(carnode);/*初始化便道*/cpt-head-next=Null;cpt-number=0;voidenter_car_park_temp(car_park_temp*cpt,car_info*car)carnode

7、*p;p=(carnode*)malloc(sizeof(carnode);/*進入便道操作*/p-data=car;p-next=Null;cpt-rear-next=p;cpt-rear=p;cpt-number+;voidleave_car_park_temp(car_park_temp*cpt,car_info*car,car_park*cp)carnode*p;p=cpt-head-next;car=p-data;/*離開便道操作*/cpt-head-next=p-next;enter_car_park(cp,car);/*進入停車場操作*/cpt-number-;intnotemp

8、ty_car_park_temp(car_park_temp*cpt)inte;if(cpt-head=cpt-rear)/*判斷便道是否為空*/e=0;elsee=1;return(e);voidleave_car_park(car_park*cp,car_info*car,car_park_back*cpb)inte,a1,b1,t;/*定義時間變量*/car_info*car1,*car2;car1=(car_info*)malloc(sizeof(car_info);/*車輛實體化*/car2=(car_info*)malloc(sizeof(car_info);while(-cp-s

9、outh)-car_number!=car-car_number)/*判斷車號是否為要出去的車號*/back_car_park(cp,car1);/*進行倒車操作*/enter_car_park_back(cpb,car1);/*進入倒車場*/car-arrivetime.hour=cp-south-arrivetime.hour;a1=car-arrivetime.hour;b1=car-leavetime.hour;t=(b1-a1);car-fee=t*Price;/*計算價格*/printf(thetimeofthecaris%3dhourn,t);printf(themoneyis%

10、3dyuann,car-fee);e=notempty_car_park_back(cpb);/*判斷倒車場是否為空*/while(e=1)leave_car_park_back(cpb,car2);/*離開倒車場enter_car_park(cp,car2);進入停車場e=notempty_car_park_back(cpb);判斷倒車場是否為空*/cp-number-;voidmain()/*主函數(shù)*/charch;/*定義字符和inte,n,i;整形變量*/car_park_back*cpb;/*定義停車場,倒車場以及便道的變量*/car_park*cp;car_park_temp*cp

11、t,*cpt2;car_info*car;cp=(car_park*)malloc(sizeof(car_park);/*實體化變量*/cpb=(car_park_back*)malloc(sizeof(car_park);cpt=(car_park_temp*)malloc(sizeof(car_park_temp);init_car_park(cp);/*實體化停車場,倒車場,便道*/init_car_park_back(cpb);init_car_park_temp(cpt);docar=(car_info*)malloc(sizeof(car_info);printf(ninputth

12、eAorLorX,endwith0:);/*輸入待操作的命令*/scanf(%s,&ch);e=notfull_car_park(cp);/*判斷車場是否為空*/switch(ch)/*判斷要輸入的命令*/caseA:if(e=1)/*車場不滿,進入車輛*/printf(inputthecar_number:);/*輸入車輛的基本信息*/scanf(%d,&car-car_number);printf(inputthearrivetime:);scanf(%d,&(*car).arrivetime.hour);enter_car_park(cp,car);/*進入車場*/printf(thec

13、arisinthecar_park,theplaceis%dn,cp-number);else/*若車場滿,進入便道*/enter_car_park_temp(cpt,car);printf(inputthecar_number:);scanf(%d,&car-car_number);printf(thecarisinthecar_park_temp,theplaceoftempis%dn,cpt-number);break;caseL:/*離開停車場*/printf(inputthecar_number:);/*輸入要離開車輛的號碼以及離開時間*/scanf(%d,&car-car_numb

14、er);printf(inputtheleavetimeofthecar:);scanf(%d,&(*car).leavetime.hour);leave_car_park(cp,car,cpb);/*執(zhí)行離開車場*/i=(*car).leavetime.hour;/*令便道里車輛進入車場的時間和車場里面的車離開的時間相等*/n=notempty_car_park_temp(cpt);/*判斷便道是否不空*/if(n=1)printf(Thecar%d,cpt-head-next-data-car_number);/*記住便道里第一輛車的號碼*/leave_car_park_temp(cpt,

15、car,cp);/*離開便道,進入停車場*/printf(isenterthecar_park,arrivetimeis%d,theplaceofcarparkis%dn,i,cp-number);break;caseX:/*查看車場以及便道里的車輛信息*/printf(nThereare%dcarsincarpark!nFolowingisthecarnumberinthecarpark:n,cp-number);for(i=1;inumber;i+)/*做循環(huán),依次輸出停車場里車輛的信息*/printf(%d,(cp-north+)-car_number);cp-north=cp-north-cp-number;cpt2-head=cpt-head;/*設(shè)一個虛擬指針使其指向頭結(jié)點的下一個位置*/if(cpt-number=0)/*便道里沒有車的情況*/printf(nThereisnocarsintemp!);elseprint

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論