![數(shù)據(jù)結構c語言版課程設計停車場管理系統(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ù)結構c語言版課程設計停車場管理系統(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ù)結構c語言版課程設計停車場管理系統(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ù)結構c語言版課程設計停車場管理系統(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ù)結構c語言版課程設計停車場管理系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/24/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed14/c5b5a75c-d39f-4c8e-a129-0e5c2af8ed145.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.課程設計:停車場c語言版本的數(shù)據(jù)結構課程設計,要求用棧模擬停車場,用隊列模擬便道,實現(xiàn)停車場的收費管理系統(tǒng).停車場停滿車后車會停在便道上面下面附上源碼,vc:(下編譯#include/#include/malloc#include/獲取系統(tǒng)時間所用函數(shù)#include/getch()#include/設置光標信息mallco#definemaxsize5/*定義停車場棧長度*/#defineprice0.05/*每車每分鐘收費值*/#definebaseprice0.5/基礎停車費.#defineesc27/退出系統(tǒng)#defineexit3/結束對話#definestop1/停車#defin
2、edrive2/取車intjx=0,jy=32;/全局變量日志打印位置typedefstructinthour;intminute;time,*ptime;/*時間結點*/typedefstruct/*定義棧元素的類型即車輛信息結點*/intnum;/*車牌號*/timearrtime;/*到達時刻或離區(qū)時刻*/carnode;typedefstruct/*定義棧,模擬停車場*/carnodestackmaxsize;inttop;sqstackcar;typedefstructnode/*定義隊列結點的類型*/intnum;/*車牌號*/structnode*next;queuenode;t
3、ypedefstruct/*定義隊列,模擬便道*/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;/棧不滿,到達車輛入棧return(1);/*棧頂元素出棧*/carnodepop(sqstackcar*s)carnodex;if(s-toptop-;return(s-stacks-top+1);/棧不空,返回棧頂元素/*初始化隊列*/voidinitlinkqueue(linkqueuecar*q)q-front=(queuen
5、ode*)malloc(sizeof(queuenode);/產生一個新結點,作頭結點if(q-front!=null)q-rear=q-front;q-front-next=null;q-front-num=0;/頭結點的num保存隊列中數(shù)據(jù)元素的個數(shù)/*數(shù)據(jù)入隊列*/voidenlinkqueue(linkqueuecar*q,intx)queuenode*p;p=(queuenode*)malloc(sizeof(queuenode);/產生一個新結點p-num=x;p-next=null;q-rear-next=p;/新結點入隊列q-rear=p;q-front-num+;/隊列元素個
6、數(shù)加1/*數(shù)據(jù)出隊列*/intdelinkqueue(linkqueuecar*q)queuenode*p;intn;if(q-front=q-rear)/隊空返回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);/返回出隊的數(shù)據(jù)信息/*車輛到達*/參數(shù):停車棧停車隊列車輛信息/返回值:空/功能:對傳入的車輛進行入棧棧滿則入隊列voidarrive(sqstackcar*stop,linkqueuecar*
7、lq,carnodex)intf;f=push(stop,x);/入棧if(f=0)/棧滿enlinkqueue(lq,x.num);/入隊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,停車隊列指針p,車輛信息x/返回值:空/功能:查找棧中s1的x并出棧,棧中沒有則查找隊p中并出隊,打印離開收費信息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、)/當棧不空且未找到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(確認您的車輛信息);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);/出棧動畫ji隊列成員入棧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)/當隊不空且未找到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);/出隊動畫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)時間*/返回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;/*移動光標*/蔣光標移動到(x,y)點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;/起始點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鍵返回當前選項if(c!=-32)continue
15、;/不是方向鍵進行下次循環(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(時間車牌號進(1)/出(0)車位(b便道p停車場)收費(元);/打印日志記錄voidprintlog(timet,intn,intio,charab,intpo,doublef)jy+;gotoxy(jx,jy);/print
17、f(時間車牌號進(1)/出(0)車位(b便道p停車場)收費(元);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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)藥冷鏈運輸服務合同
- 建筑工程人才中介合同
- 花店翻新墊資合同
- 行業(yè)專項作業(yè)指南 財務管理基礎
- 經營用房租租賃合同書
- 印刷合同協(xié)議書
- 門衛(wèi)臨時聘用合同
- 軟件開發(fā)流程優(yōu)化與項目管理體系建立指南
- 員工離職后保密協(xié)議
- 購房協(xié)議和購房合同
- 蔣中一動態(tài)最優(yōu)化基礎
- 華中農業(yè)大學全日制專業(yè)學位研究生實踐單位意見反饋表
- 七年級英語閱讀理解10篇(附答案解析)
- 抖音來客本地生活服務酒旅商家代運營策劃方案
- 鉆芯法樁基檢測報告
- 【學前教育小學化成因分析及其對策10000字(論文)】
- 無線網網絡安全應急預案
- 國籍狀況聲明書【模板】
- 常用保潔綠化人員勞動合同范本5篇
- 腕管綜合征課件
- 新高考高一英語時文閱讀
評論
0/150
提交評論