2023年停車場(chǎng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
2023年停車場(chǎng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
2023年停車場(chǎng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
2023年停車場(chǎng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
2023年停車場(chǎng)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

UniversityofInternationalBusinessandEconomics

《算法與數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)

題目:停車場(chǎng)的收費(fèi)管理系統(tǒng)

組長(zhǎng):張賽

成員:王佳琪,袁潔瑩,張瑜

完畢日期:2023年12月25日

一、設(shè)計(jì)目的與內(nèi)容

1.問(wèn)題描述

任務(wù):停車場(chǎng)可以同時(shí)停放M輛車,停車場(chǎng)的入口和出口可分別有N輛車排隊(duì)。停車每小時(shí)

收費(fèi)5元,天天不超過(guò)50元,停車不滿半小時(shí)不收費(fèi),超過(guò)半小時(shí)按一小時(shí)收費(fèi)。

功能規(guī)定:完畢停車場(chǎng)進(jìn)出車的收費(fèi)管理以及查詢每輛車的停車記錄(按照車牌號(hào)查詢):停

車場(chǎng)目前的狀況(滿或空的車位數(shù))。

規(guī)定:輸入數(shù)據(jù)形式和范圍:車牌號(hào)、停車開(kāi)始時(shí)間

輸出形式:有中文提醒,停車的時(shí)間長(zhǎng)短、離開(kāi)停車場(chǎng)的時(shí)間、費(fèi)用

界面規(guī)定:有合理的提醒。

存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能規(guī)定自己設(shè)計(jì),但是規(guī)定停車記錄要存儲(chǔ)在數(shù)據(jù)文獻(xiàn)中。

測(cè)試數(shù)據(jù):規(guī)定使用1、所有合法數(shù)據(jù);2、整體非法數(shù)據(jù);3、局部非法數(shù)據(jù)。進(jìn)行程序測(cè)試,

以保證程序的穩(wěn)定。測(cè)試數(shù)據(jù)及測(cè)試結(jié)果請(qǐng)?jiān)谏辖坏馁Y料中寫明;

2.基本規(guī)定

(1)停車場(chǎng)管理重要實(shí)現(xiàn)以下幾個(gè)功能:

①、停車場(chǎng)車位的劃分。

②、車輛進(jìn)出管理及收費(fèi)功能。

③、停車場(chǎng)車輛信息查詢功能。

④、退出系統(tǒng)。

(2)以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管

理。

(3)棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)。

3.目的:

程序所能達(dá)成的功能:

程序重要服務(wù)于停車場(chǎng)使用者和停車場(chǎng)管理者。

對(duì)于使用停車場(chǎng)的停車者,在其等待期間,系統(tǒng)為使用者提供查詢,修改,刪除車輛信息的操

作。當(dāng)使用者想要離開(kāi)停車場(chǎng),停車場(chǎng)自動(dòng)計(jì)算出停車費(fèi)用,并自動(dòng)讓正在等待的使用者有

序進(jìn)入停車位。

而管理者可以通過(guò)本系統(tǒng)查詢過(guò)場(chǎng),在場(chǎng),等待的車輛信息,也可以記錄24小時(shí)內(nèi)的停車收

入。

停車場(chǎng)的管理系統(tǒng)運(yùn)用棧和隊(duì)列的這些特點(diǎn)來(lái)實(shí)現(xiàn)模擬停車場(chǎng)和便道。

二、算法的基本思想

1.數(shù)據(jù)結(jié)構(gòu)定義

(1)隊(duì)列數(shù)據(jù)類型定義:

ADTQueue{

數(shù)據(jù)對(duì)象:D={ai|aiGE1emSet,i=l,2,....,n,n20}

數(shù)據(jù)關(guān)系:R1={|ai-1,aieD,i-2...,n)

基本操作:

InitQueue(&Q)

操作結(jié)果:構(gòu)造一個(gè)空隊(duì)列Q。

DestroyQueue(&Q)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:隊(duì)列Q被銷毀,不再存在。

CiearQueue(&Q)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:將Q清為空隊(duì)列。

QueueEmpty(&Q)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:若Q為空隊(duì)列,則返回TRUE,否則返回FALSEO

QueueLength(Q)

初始條件:隊(duì)列Q己存在。

操作結(jié)果:返回Q的元素個(gè)數(shù),即隊(duì)列的長(zhǎng)度。

GetHead(Q,&e)

初始條件:Q為非空隊(duì)列。

操作結(jié)果:用e返回Q的隊(duì)頭元素。

EnQueue(&Q,e)

初始條件:隊(duì)列Q已存在。

操作結(jié)果:插入元素e為Q的新的隊(duì)尾元素。

DeQueue(&Q,&e)

初始條件:Q為非空隊(duì)列。

操作結(jié)果:刪除Q的隊(duì)頭元素,并用e返回其值。

QueueTraverse(Q,visit())

初始條件:Q已存在且非空。

操作結(jié)果:從隊(duì)頭到隊(duì)尾,依次對(duì)Q的每個(gè)數(shù)據(jù)元素調(diào)用函數(shù)visit()?一旦visit。

失敗,則操作失敗。

}ADTQueue

(2)棧數(shù)據(jù)類型定義

ADTstack{

數(shù)據(jù)對(duì)象:D={ai|aiGcharset,i=l,2,....,n,n20}

數(shù)據(jù)關(guān)系:R1={IaiT,aieD,i=2...,n}

基本操作:

initstack(&S,n)

操作結(jié)果:構(gòu)造一個(gè)空棧S,該棧可存放n個(gè)元素。

push(&S,e)

初始條件:棧S已存在。

操作結(jié)果:在棧S的棧頂插入新的棧頂元素e。

pop(&S,&e)

初始條件:棧S已存在。

操作結(jié)果:刪除S的棧頂元素,并以e返回其值。

DestroyStack(&S)

初始條件:棧S已存在。

操作結(jié)果:銷毀棧S。

C1earStack(&S)

初始條件:棧S已存在。

操作結(jié)果:將S清為空棧。

StackLength(&S)

初始條件:棧S已存在。

操作結(jié)果:返回棧S的長(zhǎng)度。

StackEmpty(&S)

初始條件:棧S已存在。

操作結(jié)果:若S為空棧,則返回TRUE,否則返回FALSE。

GetTop(S,&e)

初始條件:棧S已存在。

操作結(jié)果:若棧S不空,則以e返回棧頂元素。

StackTraverse(S,visit())

初始條件:棧S己存在。

操作結(jié)果:從棧底到棧頂依次對(duì)S中的每個(gè)元素調(diào)用函數(shù)visit().

}ADTstack

2.主程序流程

基本框架:

入櫛

獨(dú)入

1入隊(duì)列

r

出櫛

駛出<

出隊(duì)列

c----->過(guò)場(chǎng)、在場(chǎng)與等待車輛信息查找(棧數(shù)組)

杳詢

榻作《----?

修改在場(chǎng)主輛信息修改(桂)

【刪除一

?等待車輛隊(duì)列刪除(隊(duì)列)

汨錄-------?

1已收取的總停車費(fèi)用

(1).車輛信息類型

typedefstruct{

intHtime;

intMtime;

}Time;//簡(jiǎn)樸模擬時(shí)間信息,記錄小時(shí)和分鐘

typedefstruct{

charnum[20];

◎Timereachtime;

Timeleavetime;

}carinfo;

(2).棧類型

typedefstruetstack

{carinfocar[5];

。inttop;}Stack;

intinistack(Stack*S)〃初始化棧

S->top=-l;

return1;

)

voidPush(Stack*S,carinfox)〃進(jìn)棧操作

{oS->toP++;

S->car[S->top]=x;

。printf("進(jìn)站成功!\n〃);

voidPop(Stack*S,carinfox)〃出棧操作

{if(S->top=-l)

。p「intf(〃空棧,無(wú)法出棧!〃);

x=S—>car[S->top];

S->top—;

printf(〃出棧成功!\n〃);

)

intIsEmpty(Stack*S)〃判斷???/p>

{if(S—>top==-l)

。return1;

else

greturn0;

)

(3).隊(duì)列類型(便道)

typedefstructNode(

carinfodata;

structNode*next;

}QueueNode;

typedefstruct{

QueueNode*front;

QueueNode*rear;

}Queue,*1inkQueue;

intEnterQ(Queue*Q,carinfox);

intiniQueue(Queue*Q)//初始化便道

{Q->front=(QueueNode*)malloc(sizeof(QueueNode))//申

請(qǐng)節(jié)點(diǎn)

if(Q->front!=NULL)

{Q->rear=Q->front;

。Q—>front—>next=NULL;

oreturn1;

}

elsereturn0;

)

intEnterQ(Queue*Q,carinfox)//進(jìn)便道

{QueueNode*newNode;

newNode=(QueueNode*)malloc(sizeof(QueueNode));

if(newNode!=NULL)

!

newNode->data=x;

newNode->next=NULL;

Q->rear->next=newNode;

Q->rear=newNode;

return1;

0}

elsereturn0;

)

intDe1eteQ(Queue*Q,carinfox)〃出便道

I

QueueNode*p;

op=Q->front->next;

if(Q—>front==Q->rear)〃判斷便道是否有車

oreturn0;

x=p->data;

if(p->next==Q—>rear)

(

8Q->rear=Q->front;

8Q->front->next=NULL;

)

Q—>front->next=p->next;

。free(p);

return1;

)

(4)主函數(shù)及其他函數(shù)的算法

voidmain()

{Queue*Q;

Stack*S=NULL;

S=(Stack*)mal1oc(sizeof(Stack));//申請(qǐng)棧節(jié)點(diǎn)

Q=(linkQueue)malloc(sizeof(Queue));//申請(qǐng)便道節(jié)點(diǎn)

inti;

iniQueue(Q);〃初始化調(diào)用

inistack(S);〃初始化調(diào)用

printf('\n****************************歡迎使用停車場(chǎng)管理界面******

************************\n");

printf(〃*******本停車場(chǎng)每小時(shí)收費(fèi)2元,停車不滿半小時(shí)不收費(fèi),超過(guò)半小時(shí)按一

小時(shí)收費(fèi)*******");

printGraph();

whi1e(1)

(

Printf(,z\n請(qǐng)輸入操作”);

scanf(〃%d”,&i);

switch(i)

(

case1:Arrive(S,Q);printGraph();break;

case2:Departure(S,Q);printGraph();break;

case3:Print(S);printGraph();break;

case0:exit(1);break;

case4:PrintQ(Q);break;

case5:Search(S);break;

default:printf("重新輸入");printGraph();

)

}

)

voidLpush(Stack*S,carinfox)

{Push(S,x);〃進(jìn)臨時(shí)棧

)

voidLPop(Stack*S,carinfox)

(

Pop(S,x);

)

intArrive(Stack*S,Queue*Q)//車輛到達(dá)

(

carinfox;

ointa;

。printf(〃輸入車牌號(hào):〃);

oseanf(〃%s",x.num);

。printf("請(qǐng)輸入進(jìn)車場(chǎng)的時(shí)間(**:**):〃);

oscanf("%d:%d”,&x.reachtiine.Htime,&x,reachtime.Mtime);

if(S->top==Size-1)

0{

printf(〃車場(chǎng)已滿,不能進(jìn)入,進(jìn)便道\n〃);

a=EnterQ(Q,x);//遞歸

調(diào)用進(jìn)便道操作

gif(a==l){

gp「intf("0K\n〃);

g}

?>else

oprintffNo!\n");

)

oelse

°(

Push(S,x);

。)

return1;

I

intDeparture(Stack*S,Queue*Q)//車輛離開(kāi)操作

{carinfoa;

?>intparktime,paytime;

ocharx[20];

Timeleavetime;

oStack*p=NULL;

◎intpointl=S->top;

ointpoint2=S->top;

Printf(”請(qǐng)輸入要拜別的車牌號(hào):〃);

scanf(〃%s〃,x);

while(point1!=-1&&point2!=-l)

(

if(stremp(S->car[point1].num,x)==0)//匹配函數(shù),是否輸入的

信息與車場(chǎng)信息匹配

(

gprintf("請(qǐng)輸入要離開(kāi)的時(shí)間(**:**):〃);

ascanf(〃%d:%d〃,&leavetime.Htime,&1eavetime.Mtime);

for(;point1!=S—>top;point1++,point2++)//

掃描直到結(jié)束

S->car[pointl]=S->car[point2];〃假如找到了,

出車

S->top—;

printf(〃成功出車場(chǎng)\n〃);

eparktime=(1eavetime.Htime—S->car[pointl].reachtime.Htime)

^60+(1eavetime.Mtime-S->car[point1].reachtime.Mtime);

gif(1eavetime.Htime-S->car[pointl].reachtime.Htime>=10)payt

ime=10;

。elseif(leavetime.Mtime-S->car[pointl].reachtime.Mtime

<=30)paytime=1eavetime.IItime-S->car[pointi].reachtime.H

time;

。eIsepaytime=leavetime.Htime-S->car[point1].reachtime.II

time+1;

oprintf(〃其在停車場(chǎng)內(nèi)停留時(shí)間為%d分鐘,實(shí)際按照%(1小時(shí)計(jì)費(fèi),所需付費(fèi)

為:%d元。\n”,parktime,paytime,paytime*2);

gpoint2=-1;

)

。else{

point2=pointl;

8pointl---;

)

I

if(Q->front!=Q->rear){

ga=Q->front->next->data;

printf("從便道進(jìn)入停車場(chǎng)的車牌號(hào):%s",a.num);

。printf("請(qǐng)輸入進(jìn)車場(chǎng)的時(shí)間:%d:%d",1eavetime.Htime,1eavetime.Mt

ime);

scanf(,z%d:%d",&a.reachtime.Htime,&a.reachtime.Mtime);

Push(S,a);De1eteQ(Q,Q->front->next->data);

)

if(pointl==T)//假如到結(jié)束了,還沒(méi)有找到,則輸出信息

{

。printf("此車沒(méi)有在停車場(chǎng)!\n");

return1;

)

}

voidPrintl(carinfox)//簡(jiǎn)樸的輸出操作

(

printf("車牌號(hào):%s\n",x.num);

printf(”進(jìn)車場(chǎng)的時(shí)間:%d:%d\n”,x.reachtime.Htime,x.reachtime.M

time);

printf(,z\n------------------------\n");

}

voidPrint(Stack*S)//打印車場(chǎng)信息

{carinfox;

intpoint=S—>top;//從棧頭開(kāi)始

if(S->top==-l)

8Printf("車場(chǎng)沒(méi)有車輛登記進(jìn)入!\n");

else

。{while(point!=-1)

8f

printf(〃\n-----------------------\n〃);

printf(〃車的位置號(hào):%d\n〃,point);

?x=S—>car[point];//把依次掃描到的信息賦值給x

Printi(x);〃調(diào)用輸出函數(shù)

point---;〃輸出所有的車場(chǎng)信息

。printf("顯示車場(chǎng)信息成功!\n");

}

voidPrintQ(Queue*Q)〃打印便道車輛信息

{

QueueNode*p;

o//p=(QueueNode*)malloc(sizeof(Queue));//申請(qǐng)結(jié)點(diǎn)

p=Q->front->next;

if(Q—>front!=Q—>rear){/*判斷通道上是否有車*/

叩rintf(〃\n等待車輛的車牌號(hào)為:〃);

while(p!=NULL){//判斷是否到結(jié)尾

printf('%s”,p->data.num);

P=p->next;〃假如沒(méi)找到,繼續(xù)向下找

8}

oprintf("\n");

)

else

printf("\n\t\t\t便道里沒(méi)有車。\n");

)

intSearch(Stack*S)//按車牌號(hào)查找車輛信息

{?charx[20];

?Timeleavetime;

Stack*p=NULL;

?carinfoa;

?intpointl=S->top;

ointpoint2=S—>top;

printf(〃請(qǐng)輸入要查找的車牌號(hào):");

seanf("%sz,,x);

whi1e(point1!=T&&point2!=-1)

(

if(strcmp(S->car[point1],num,x)==0)//匹配函

數(shù),是否輸入的信息與車場(chǎng)信息匹配

?{for(;pointl!=S—>top;point1++,point2++)//掃描直到

結(jié)束

S—>car[pointl]=S->car[point21;//假如找至IJ

了,輸出信息

printf("該車目前在停車場(chǎng)中。\n");

°point2=-1;

)

。else{

point2=pointl;

gpoint1一;

}

)

if(pointl-1)〃假如到結(jié)束了,還沒(méi)有找到,則輸出信息

{

。printf(〃此車沒(méi)有在停車場(chǎng)!”);

return1;

voidprintGraph(){

ointi;

oprintf(〃\n〃);

for(i=0;i<80;i++)printf。,);

printf(〃\n\t\t\t******請(qǐng)選擇操作序號(hào)******〃);

printf("\n\n\t\t\t----車輛到達(dá)請(qǐng)選1-----〃);

Printf(n\n\n\t\t\t-----車輛離開(kāi)請(qǐng)選2------〃);

printf("\n\n\t\t\t---查詢停車場(chǎng)信息請(qǐng)選3―〃);

printff\n\n\t\t\t——查詢便道信息請(qǐng)選4—〃);

printf(,z\n\n\t\t\t一按車牌號(hào)查找請(qǐng)選5一");

printf(〃\n\n\t\t\t-----退出系統(tǒng)請(qǐng)選0-----");

printfC\n\nH);

for(i=0;i<80;i++)printfC-n);

3.各模塊之間的調(diào)用關(guān)系

主函數(shù)voidmain()

初始化調(diào)用iniQueue(Q);

inistack(S);

調(diào)用到達(dá)函數(shù)Arrive(S,Q);

調(diào)用離開(kāi)函數(shù)Departure(S);

調(diào)用打印信息函數(shù)printGraph()

三、測(cè)試數(shù)據(jù)

所有合法數(shù)據(jù):

1.主界面

2.到達(dá):

■'D:\2\Debug\2.exe

KMXXXXXXXXXXXXXXXXXXXXXXXXX]卬用停'車_場(chǎng)I管^壬里界_面"XKXXXXXXXXXMXXXXXXXXXXXXXXXXXJ

?本停車場(chǎng)每小時(shí)收費(fèi)2元.停車不滿半小時(shí)不收費(fèi),超過(guò)半小時(shí)按一小時(shí)收費(fèi)?

******請(qǐng)選擇操作序號(hào)******

---車輛到達(dá)請(qǐng)選i-------

---車輛離開(kāi)請(qǐng)選2一—

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4—

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選。----

作1

號(hào)LF0

.i

場(chǎng)

人J1i8

車n0"<12

成.

******請(qǐng)選擇操作序號(hào)******

---車輛到達(dá)請(qǐng)選1-------

——車輛離開(kāi)請(qǐng)選2一—

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選。---

債辨心談作1

輸入車牌號(hào):JW1123

有鮑入進(jìn)車場(chǎng)的時(shí)間<**:**):13:30

3.離開(kāi):

請(qǐng)選擇操作序號(hào)*****

---車輛到達(dá)請(qǐng)選1一一

一一車輛離開(kāi)請(qǐng)選2——

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4—

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選。---

請(qǐng)輸入操作2

請(qǐng)輸入要離去的車牌號(hào):JWH23

,~開(kāi)的時(shí)間<**:?*>:14:15

具S在停車場(chǎng)內(nèi)停留時(shí)間為45分鐘,實(shí)際按照1小時(shí)計(jì)費(fèi),所需付費(fèi)為:2元。

****請(qǐng)選擇操作序號(hào)***

---車輛到達(dá)請(qǐng)選1-------

一一車輛離開(kāi)請(qǐng)選2

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選0-------

請(qǐng)輸入操作2

請(qǐng)箍入要離去的車牌號(hào):LF0118

嬲畬要曹開(kāi)的時(shí)間<**:”〉:13=45

矍翌曾奉招內(nèi)停留時(shí)間為皿分鐘,實(shí)際按照2小時(shí)計(jì)費(fèi),所需付費(fèi)為,4元。

******請(qǐng)選擇操作序號(hào)******

----車輛到達(dá)請(qǐng)選1------

一一車輛離開(kāi)請(qǐng)選2一—

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5―

----退出系統(tǒng)請(qǐng)選。----

人操

作2

車牌

號(hào)

開(kāi)

3時(shí)間13

要^:10

出<*

其§

內(nèi)

留時(shí)

場(chǎng)

實(shí)際按照1小時(shí)計(jì)費(fèi),所需付費(fèi)為:2元。

******1青選擇操作序號(hào)******

----車輛到達(dá)請(qǐng)選I------

一一車輛離開(kāi)請(qǐng)選2一—

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4—

一按車牌號(hào)查找請(qǐng)選5—

----退出系統(tǒng)請(qǐng)選。----

人2

號(hào)

開(kāi)

時(shí)23

理<*:55

內(nèi)

時(shí)

場(chǎng)

(丁,實(shí)際按照1。小時(shí)計(jì)費(fèi),所需付費(fèi)為:2。元。

(若便道有車等待)輸出從便道中進(jìn)入停車場(chǎng)的車牌號(hào)、進(jìn)車場(chǎng)時(shí)間(即為從便道中出車

的時(shí)間)、進(jìn)站成功!

■D:\2\Debug\2.exeI=?I回

一一車輛離開(kāi)請(qǐng)選2一—

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4—

一按車牌號(hào)查找請(qǐng)選5-

----退出系統(tǒng)請(qǐng)選。----

作1

馬03

.

場(chǎng)

勺S<

匕**:4?*>.3:45

.,進(jìn)便道

請(qǐng)選擇操作序號(hào)

----車輛到達(dá)請(qǐng)選1---------

一一車輛離開(kāi)請(qǐng)選2一—

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4—

一按車牌號(hào)查找請(qǐng)選5—

----退出系統(tǒng)請(qǐng)選。----

操作

請(qǐng)2

的車

請(qǐng)

號(hào)

的時(shí)

開(kāi)

請(qǐng)

一4:34

成<*

內(nèi)停

時(shí)

S間為

停車

車牌

從所需付費(fèi)為:4元。

:34

4.輸出車場(chǎng)信息

******請(qǐng)選擇操作序號(hào)******

----車輛到達(dá)請(qǐng)選1-------

----車輛離開(kāi)請(qǐng)選2-------

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

—按車牌號(hào)查找請(qǐng)選5—

----退出系統(tǒng)請(qǐng)選。----

請(qǐng)輸入操作。3

至由謔3丁

霹嬴需間,2:34

車的位置號(hào);0

季牌號(hào):01

迸暈玲的時(shí)間:i:23

應(yīng)^^信息麗;

******請(qǐng)選擇操作序號(hào)******

----車輛到達(dá)請(qǐng)選1-------

一--車輛離開(kāi)請(qǐng)選2——

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選。----

軍揚(yáng)沒(méi)有車輛登記進(jìn)入,

5輸出便車道信息

****i青選擇操作序號(hào)*****

---車輛到達(dá)請(qǐng)選1----

---車輛離開(kāi)請(qǐng)選2---

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

—按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選。---

請(qǐng)輸入操作4

便道里沒(méi)有車。

請(qǐng)輸入操作

******請(qǐng)選擇操作序號(hào)******

----車輛到達(dá)請(qǐng)選1----

———車輛離開(kāi)請(qǐng)選2

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4—

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選。----

青輸入操作4

軍待車輛的車牌號(hào)為:8304

6、按車牌號(hào)查找信息

39C:\Windows\system32\cmd.exe

、1

號(hào)

.0。1

內(nèi)

才間

場(chǎng)-

I車£BZ

nX06:00

、

r!

<*

******請(qǐng)選擇操作序號(hào)******

----車輛到達(dá)請(qǐng)選1-------

----車輛離開(kāi)請(qǐng)選2-------

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5—

----退出系統(tǒng)請(qǐng)選0-------

非法數(shù)據(jù)

1.主界面:

?D:\2\Debug\2.exe

?歡迎使用停車場(chǎng)管理界面

本停車場(chǎng)每小時(shí)收費(fèi)2元,停車不滿半小時(shí)不收費(fèi),超過(guò)半小時(shí)按一小時(shí)收費(fèi)

*???*請(qǐng)選擇操作序號(hào)**??*

----車輛到達(dá)請(qǐng)選1---------

一一車輛離開(kāi)請(qǐng)選2

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5—

----退出系統(tǒng)請(qǐng)選。----

道輸公舞作6

董薪輸入

2.車輛到達(dá):

*D:\2\Debug\2.exeIoI回I

XXXXXX請(qǐng)?選J舉操作序^號(hào)XXXXXM

——車輛到達(dá)請(qǐng)選I——

-—車輛離開(kāi)請(qǐng)選2——

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5—

----退出系統(tǒng)請(qǐng)選0---------

車餌

號(hào):001

車場(chǎng)的時(shí)間(**:24:05

輸入

3***請(qǐng)選擇操作序號(hào)*****

——車輛到達(dá)請(qǐng)選工——

----車輛離開(kāi)請(qǐng)選2---------

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選6—

----退出系統(tǒng)請(qǐng)選。----

贄入

售1

車001

喜.

場(chǎng)

出間

入.9

B23:61

3.車輛離開(kāi)

,D:\2\Debug\2.exe-I回ay

一查詢便道信息請(qǐng)選4—

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選0----

父人

s主

-車001

T事

曹人

場(chǎng)

時(shí)

nI223

Lk

V功

X-,

******請(qǐng)選擇操作序號(hào)*****

---車輛到達(dá)請(qǐng)選1----

---車輛離開(kāi)請(qǐng)選2----

一查詢停車場(chǎng)信息請(qǐng)選3—

一查詢便道信息請(qǐng)選4一

一按車牌號(hào)查找請(qǐng)選5—

---退出系統(tǒng)請(qǐng)選0----

操作

A入2

時(shí)車

號(hào)

24

開(kāi)

的時(shí)

江<E?34

開(kāi)

的時(shí)23

住67

一E

開(kāi)

的時(shí)23

M修

2間55

時(shí)

內(nèi)

停留

場(chǎng)

其實(shí)際按照10小時(shí)計(jì)費(fèi),所需付費(fèi)為:2。元。

四、源程序及系統(tǒng)文獻(xiàn)使用說(shuō)明

#include<stdio.h>

#inc1ude<std1ib.h>

#include<string.h>

#defineSize2

#defineprice5

typedefstruct

intHtime;

intMtime;

}Time;//簡(jiǎn)樸模擬時(shí)間信息,記錄小時(shí)和分鐘

typedefstruct{

ocharnum[20];

?Timereachtime;

Time1eavetime;

}carinfo;//通過(guò)結(jié)構(gòu)來(lái)保存來(lái)車的車牌號(hào),到達(dá)時(shí)間,

離開(kāi)時(shí)間

typedefstructstack

(

ocarinfocar[5];

。inttop;

}Stack;

typedefstructNode{

carinfbdata;

structNode*next;

}QueueNode;〃結(jié)點(diǎn)的定義

typedefstruct{

QueueNode*front;

QueueNode*rear;

}Queue,*linkQueue;〃定義隊(duì)列結(jié)點(diǎn)

intEnterQ(Queue*Q,carinfox);

intinistack(Stack火S)//初始化棧

(

S->top=-l;

。return1;

)

voidPush(Stack*S,carinfox)//進(jìn)棧操作

(

?S->top++;

S—>car[S->toP]=x;

。printf("進(jìn)站成功!\n”);

}

voidPop(Stack*S,carinfox)〃出棧操作

(

if(S->top=?1)

。printf("空棧,無(wú)法出棧!”);

x=S->car[S—>top];

S->top--;

Printf("出棧成功!'n”);

)

intIsEmpty(Stack*S)〃判斷???/p>

(

if(S—>top==-l)

?return1;

◎else

return0;

)

intiniQueue(Queue*Q)//初始化便道

(

Q->front=(QueueNode*)ma1loc(sizeof(QueueNode));//申請(qǐng)節(jié)

點(diǎn)

if(Q->front!=NULL)

{

Q—>rear=Q->front;

Q—>front—>next=NULL;

。return1;

)

elsereturn0;

)

intEnterQ(Queue*Q,carinfox)〃進(jìn)便道

(

QueueNodenewNode;

newNode=(QueueNode*)ma1loc(sizeof(QueueNode));

if(newNode!=NULL)

(

。newNode->data=x;

newNode->next=NULL;

Q->rear->next=newNode;

Q->rear=newNode;

return1;

0)

eIsereturn0;

)

intDe1eteQ(Queue*Q,carinfox)//出便道

(

。QueueNode*p;

。P=Q->front->next;

if(Q->front==Q->rear)//判斷便道是否有車

。。return0:

x=p->data;

if(p—>next==Q->rear)

°{

gQ->rear=Q->front;

Q->front—>next=NULL;

)

Q->front->next=p->next;

°free(p);

return1;

)

voidLpush(Stack*S,carinfbx)

{-Push(S,x);//進(jìn)臨時(shí)棧

)

voidLPop(Stack*S,carinfox)

(

Pop(S,x);

)

intArrive(Stack*S,Queue*Q)//車輛到達(dá)

carinfox;

。inta;

。printf(“輸入車牌號(hào):“);

。scanf(0%sM,x.num);

。printf("請(qǐng)輸入進(jìn)車場(chǎng)的時(shí)間(**:**):**);

scanf("%d:%d”,&x,reachtime.Htime,&x.reachtime.Mtime);

if(S->top==Size—1)

。(

3printf("車場(chǎng)已滿,不能進(jìn)入,進(jìn)便道\n”);

a=EnterQ(Q,x);〃遞歸調(diào)用進(jìn)便

道操作

^if(a==l){

ooprintf(uOK\nH);

6)

ooe1se

“printfC'No!\nn);

)

。eIse

0(

Push(S,x);

°}

retum1;

intDeparture(Stack*S,Queue*Q)//車輛離開(kāi)操作

{carinfoa;

。intparktime,paytime;

ocharx[20];

??Timeleavetime;

oStack*p=NULL;

intpoint1=S->top;

。intpoint2=S->top;

Printf(”請(qǐng)輸入要拜別的車牌號(hào):”);

scanf(H%sM,x);

while(pointI!=-1&&point2!=-l)

(

if(strcmp(S->car[pointl].num,x)==0)〃匹配函數(shù),是否輸入的信息與車

場(chǎng)信息匹配

6{

。printf(”請(qǐng)輸入要離開(kāi)的時(shí)間(**:**):”);

oscanf("%d:%d",&leavetime.Htime,&1eavetime.Mtime);

for(;pointl!=S—>top;pointl++,point2++)〃掃描直到結(jié)束

S->car[point1]=S—>car[poin

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論