![數(shù)據(jù)結(jié)構(gòu)c語言版課程設(shè)計(jì)停車場管理系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed14/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed141.gif)
![數(shù)據(jù)結(jié)構(gòu)c語言版課程設(shè)計(jì)停車場管理系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed14/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed142.gif)
![數(shù)據(jù)結(jié)構(gòu)c語言版課程設(shè)計(jì)停車場管理系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed14/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed143.gif)
![數(shù)據(jù)結(jié)構(gòu)c語言版課程設(shè)計(jì)停車場管理系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed14/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed144.gif)
![數(shù)據(jù)結(jié)構(gòu)c語言版課程設(shè)計(jì)停車場管理系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed14/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed145.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.課程設(shè)計(jì):停車場c語言版本的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),要求用棧模擬停車場,用隊(duì)列模擬便道,實(shí)現(xiàn)停車場的收費(fèi)管理系統(tǒng).停車場停滿車后車會停在便道上面下面附上源碼,vc:(下編譯#include/#include/malloc#include/獲取系統(tǒng)時(shí)間所用函數(shù)#include/getch()#include/設(shè)置光標(biāo)信息mallco#definemaxsize5/*定義停車場棧長度*/#defineprice0.05/*每車每分鐘收費(fèi)值*/#definebaseprice0.5/基礎(chǔ)停車費(fèi).#defineesc27/退出系統(tǒng)#defineexit3/結(jié)束對話#definestop1/停車#defin
2、edrive2/取車intjx=0,jy=32;/全局變量日志打印位置typedefstructinthour;intminute;time,*ptime;/*時(shí)間結(jié)點(diǎn)*/typedefstruct/*定義棧元素的類型即車輛信息結(jié)點(diǎn)*/intnum;/*車牌號*/timearrtime;/*到達(dá)時(shí)刻或離區(qū)時(shí)刻*/carnode;typedefstruct/*定義棧,模擬停車場*/carnodestackmaxsize;inttop;sqstackcar;typedefstructnode/*定義隊(duì)列結(jié)點(diǎn)的類型*/intnum;/*車牌號*/structnode*next;queuenode;t
3、ypedefstruct/*定義隊(duì)列,模擬便道*/queuenode*front,*rear;linkqueuecar;/*函數(shù)聲明*/ptimeget_time();carnodegetcarinfo();voidqingping(inta);voidgotoxy(intx,inty);voidprintlog(timet,intn,intio,charab,intpo,doublef);voidprintstop(inta,intnum,intx0,inty0);voidprintleave(inta,intpo,intnum);/*初始化棧*/voidinitseqstack(sqsta
4、ckcar*s)s-top=-1;/*push入站函數(shù)*/intpush(sqstackcar*s,carnodex)/數(shù)據(jù)元素x入指針s所指的棧if(s-top=maxsize-1)return(0);/如果棧滿,返回0else.s-stack+s-top=x;/棧不滿,到達(dá)車輛入棧return(1);/*棧頂元素出棧*/carnodepop(sqstackcar*s)carnodex;if(s-toptop-;return(s-stacks-top+1);/棧不空,返回棧頂元素/*初始化隊(duì)列*/voidinitlinkqueue(linkqueuecar*q)q-front=(queuen
5、ode*)malloc(sizeof(queuenode);/產(chǎn)生一個(gè)新結(jié)點(diǎn),作頭結(jié)點(diǎn)if(q-front!=null)q-rear=q-front;q-front-next=null;q-front-num=0;/頭結(jié)點(diǎn)的num保存隊(duì)列中數(shù)據(jù)元素的個(gè)數(shù)/*數(shù)據(jù)入隊(duì)列*/voidenlinkqueue(linkqueuecar*q,intx)queuenode*p;p=(queuenode*)malloc(sizeof(queuenode);/產(chǎn)生一個(gè)新結(jié)點(diǎn)p-num=x;p-next=null;q-rear-next=p;/新結(jié)點(diǎn)入隊(duì)列q-rear=p;q-front-num+;/隊(duì)列元素個(gè)
6、數(shù)加1/*數(shù)據(jù)出隊(duì)列*/intdelinkqueue(linkqueuecar*q)queuenode*p;intn;if(q-front=q-rear)/隊(duì)空返回0.return(0);elsep=q-front-next;q-front-next=p-next;if(p-next=null)q-rear=q-front;n=p-num;free(p);q-front-num-;return(n);/返回出隊(duì)的數(shù)據(jù)信息/*車輛到達(dá)*/參數(shù):停車棧停車隊(duì)列車輛信息/返回值:空/功能:對傳入的車輛進(jìn)行入棧棧滿則入隊(duì)列voidarrive(sqstackcar*stop,linkqueuecar*
7、lq,carnodex)intf;f=push(stop,x);/入棧if(f=0)/棧滿enlinkqueue(lq,x.num);/入隊(duì)printstop(1,lq-front-num,0,23);printlog(x.arrtime,x.num,1,b,lq-front-num,0);qingping(0);printf(您的車停在便道%d號車位上n,lq-front-num);/更新對話elseprintstop(0,stop-top+1,0,23);printlog(x.arrtime,x.num,1,p,stop-top+1,0);qingping(0);printf(您的車停在停
8、車場%d號車位上n,stop-top+1);/更新對話qingping(1);printf(按任意鍵繼續(xù));getch();/*車輛離開*/參數(shù):停車棧指針s1,暫存棧指針s2,停車隊(duì)列指針p,車輛信息x/返回值:空/功能:查找棧中s1的x并出棧,棧中沒有則查找隊(duì)p中并出隊(duì),打印離開收費(fèi)信息voidleave(sqstackcar*s1,sqstackcar*s2,linkqueuecar*p,carnodex)doublefee=0;intposition=s1-top+1;/車輛所在車位intn,f=0;carnodey;queuenode*q;.while(s1-top-1)&(f!=1
9、)/當(dāng)棧不空且未找到xy=pop(s1);if(y.num!=x.num)n=push(s2,y);position-;elsef=1;if(y.num=x.num)/找到xgotoxy(33,17);rintf(%d:%-2d,(x.arrtime.hour-y.arrtime.hour),(x.arrtime.minute-y.arrtime.minute);ee=(x.arrtime.hour-y.arrtime.hour)*60+(x.arrtime.minute-y.arrtime.minute)*price+baseprice;gotoxy(48,17);printf(%2.1f元
10、n,fee);qingping(0);printf(確認(rèn)您的車輛信息);qingping(1);printf(按任意鍵繼續(xù));getch();while(s2-top-1)y=pop(s2);f=push(s1,y);n=delinkqueue(p);if(n!=0)y.num=n;y.arrtime=x.arrtime;f=push(s1,y);printleave(p-front-num+1,position,s1-top+1);/出棧動(dòng)畫ji隊(duì)列成員入棧printlog(x.arrtime,x.num,0,p,position,fee);printlog(y.arrtime,y.num,
11、1,p,s1-top+1,0);elseprintleave(0,position,s1-top+2);printlog(x.arrtime,x.num,0,p,position,fee);else/若棧中無xwhile(s2-top-1)/還原棧y=pop(s2);f=push(s1,y);q=p-front;f=0;.position=1;while(f=0&q-next!=null)/當(dāng)隊(duì)不空且未找到xif(q-next-num!=x.num)q=q-next;position+;else/找到xq-next=q-next-next;p-front-num-;if(q-next=null
12、)p-rear=p-front;gotoxy(33,17);printf(0:0);gotoxy(48,17);printf(0元);qingping(0);printf(您的車將離便道);qingping(1);printf(按任意鍵繼續(xù));getch();printleave(-1,position,p-front-num+1);/出隊(duì)動(dòng)畫printlog(x.arrtime,x.num,0,b,position,0);f=1;if(f=0)/未找到xqingping(0);printf(停車場和便道上均無您的車);qingping(1);printf(按任意鍵繼續(xù));getch();/*
13、獲取系統(tǒng)時(shí)間*/返回ptime類型ptimeget_time()time*t;t=newtime;time_ttimer;structtm*tblock;timer=time(null);tblock=localtime(&timer);t-minute=tblock-tm_min;t-hour=tblock-tm_hour;returnt;/*移動(dòng)光標(biāo)*/蔣光標(biāo)移動(dòng)到(x,y)點(diǎn)voidgotoxy(intx,inty)coordcoord;coord.x=x;.coord.y=y+3;setconsolecursorposition(getstdhandle(std_output_hand
14、le),coord);/*畫圖*/畫出系統(tǒng)界面voidpanitpl()gotoxy(20,4);printf(*對話框*);intx=18,y=6;/起始點(diǎn)inta24=2,0,0,1,-2,0,0,-1;/方向for(inti=0;i2;i+)for(intj=0;j20;j+)x+=ai0;y+=ai1;gotoxy(x,y);printf()x+=ai0;y+=ai1;gotoxy(x,y);if(i=0)printf()elseprintf()for(j=0;j);c=getch();if(c=13)returny-10;/enter鍵返回當(dāng)前選項(xiàng)if(c!=-32)continue
15、;/不是方向鍵進(jìn)行下次循環(huán)c=getch();if(c=72)if(y11)y-;/上if(c=80)if(y13)y+;/下/輸入車輛信息carnodegetcarinfo()ptimet;carnodex;.qingping(0);printf(請輸入您的車牌號n);qingping(1);printf(在下面輸入車輛信息);qingping(2);scanf(%d,&(x.num);t=get_time();x.arrtime=*t;gotoxy(48,15);printf(%d:%d,x.arrtime.hour,x.arrtime.minute);getch();returnx;/打
16、印停車場voidprintcar()gotoxy(0,20);/printf();printf(出場暫放區(qū)12345);printf(-);printf(主車道);printf(-);printf(121110987654321);printf();printf();printf(便道停車區(qū)12345);printf();printf(停車場管理日志nn);printf(時(shí)間車牌號進(jìn)(1)/出(0)車位(b便道p停車場)收費(fèi)(元);/打印日志記錄voidprintlog(timet,intn,intio,charab,intpo,doublef)jy+;gotoxy(jx,jy);/print
17、f(時(shí)間車牌號進(jìn)(1)/出(0)車位(b便道p停車場)收費(fèi)(元);if(io=0)printf(/%2.1f,f);gotoxy(jx,jy);printf(/%d/%c:%d,io,ab,po);gotoxy(jx,jy);printf(%d:%d/%d,t.hour,t.minute,n);voidprintstop(inta,intnum,intx0,inty0)staticchar*car=【】;/intx0=0,y0=23;intx=0,y=28;if(a=0).x=(num+6)*6;for(;x072;x0+)gotoxy(x0,y0);printf(%s,car);sleep(
18、30);gotoxy(x0,y0);printf();for(;y0x;x0-)gotoxy(x0,y0);printf(%s,car);sleep(50);gotoxy(x0,y0);printf();gotoxy(x,y);printf(%s,car);elsex=(12-num)*6;y=y-3;for(;x0num)gotoxy(12-num)*6,y);printf();gotoxy(x,y);printf(%s,car);.for(;xx0;x-)gotoxy(x,y-2);printf(%s,car);sleep(30);gotoxy(x,y-2);printf();elsei=
19、num+1;for(;numpo;num-)x=(num+6)*6;y=28;for(;x21;y-)gotoxy(x,y);printf(%s,car);sleep(50);gotoxy(x,y);printf();for(;x(i-num+6)*6;x-)gotoxy(x,y);printf(%s,car);sleep(30);gotoxy(x,y);printf();gotoxy(x,y);printf(%s,car);x=(po+6)*6;y=28;for(;x23;y-)gotoxy(x,y);printf(%s,car);sleep(50);gotoxy(x,y);printf()
20、;for(;x0;x-)gotoxy(x,y);printf(%s,car);sleep(30);gotoxy(x,y);printf();num+;for(;i-num0;num+)x=(i-num+6)*6;y=21;for(;x72;x+)gotoxy(x,y);printf(%s,car);sleep(30);gotoxy(x,y);printf();.for(;y(num-1+6)*6;x-)gotoxy(x,y);printf(%s,car);sleep(30);gotoxy(x,y);printf();gotoxy(x,y);printf(%s,car);if(a0)x=66;y=25;gotoxy(x,y);printf();gotoxy(x,y-2);printf(%s,car);sleep(100);if(12a)gotoxy(12-a)*6,y);printf();if(a1)gotoxy(x,y);printf(%s,car);printstop(0,i-1,x,y-2);/*main*/intmain(void)sqstackcars1,s2;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代辦公環(huán)境下的技術(shù)趨勢分析報(bào)告
- 生態(tài)修復(fù)技術(shù)在水域生態(tài)保護(hù)中的作用
- 2 認(rèn)識幾種常見的巖石(說課稿)-2023-2024學(xué)年科學(xué)四年級下冊教科版
- 2024-2025學(xué)年高中化學(xué) 化學(xué)實(shí)驗(yàn)基本方法說課稿 新人教版必修1
- Unit 1 Lesson 1 At the Airport(說課稿)-2024-2025學(xué)年冀教版(三起)英語六年級上冊
- 2024-2025學(xué)年高中物理 第10章 熱力學(xué)定律 1 功和內(nèi)能說課稿 新人教版選修3-3
- 2023八年級道德與法治上冊 第二單元 遵守社會規(guī)則 第五課 做守法的公民 第2框 預(yù)防犯罪說課稿 新人教版
- Unit 2 Ways to school Part A Let's learn (說課稿)-2024-2025學(xué)年人教PEP版英語六年級上冊001
- 10的再認(rèn)識(說課稿)-2024-2025學(xué)年一年級上冊數(shù)學(xué)人教版
- 2 時(shí)、分、秒(說課稿)-2023-2024學(xué)年二年級下冊數(shù)學(xué)蘇教版
- 【招投標(biāo)管理探究的國內(nèi)外文獻(xiàn)綜述2600字】
- 一例蛇串瘡患者個(gè)案護(hù)理課件
- DB63-T 2269-2024 公路建設(shè)項(xiàng)目安全生產(chǎn)費(fèi)用清單計(jì)量規(guī)范
- 低壓電工理論考試題庫低壓電工考試題
- 國家電網(wǎng)培訓(xùn)課件
- 五年級上冊口算練習(xí)400題及答案
- 駱駝祥子選擇題100道及答案
- 2024年公務(wù)員考試題庫附答案【完整版】
- 關(guān)于闖紅燈的調(diào)查報(bào)告
- T-GDWCA 0019-2018 輻照工藝操作規(guī)范
- 為什么偉大不能被計(jì)劃
評論
0/150
提交評論