停车场管理系统设计源代码文档格式.docx

上传人:b****8 文档编号:22758871 上传时间:2023-02-05 格式:DOCX 页数:23 大小:17.76KB
下载 相关 举报
停车场管理系统设计源代码文档格式.docx_第1页
第1页 / 共23页
停车场管理系统设计源代码文档格式.docx_第2页
第2页 / 共23页
停车场管理系统设计源代码文档格式.docx_第3页
第3页 / 共23页
停车场管理系统设计源代码文档格式.docx_第4页
第4页 / 共23页
停车场管理系统设计源代码文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

停车场管理系统设计源代码文档格式.docx

《停车场管理系统设计源代码文档格式.docx》由会员分享,可在线阅读,更多相关《停车场管理系统设计源代码文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

停车场管理系统设计源代码文档格式.docx

if(stack==NULL)

returnNULL;

stack->

count=0;

top=NULL;

returnstack;

}

voidpush(Stack*stack,void*data)

nodeS*node;

node=newnodeS;

if(node==NULL||stack==NULL)

return;

node->

data=data;

link=stack->

top;

top=node;

count++;

void*pop(Stack*stack)

if(stack->

count==0)

data=stack->

top->

data;

node=stack->

top=node->

link;

count--;

returndata;

voidDestroyStack(Stack*stack)

while(stack->

{

deletestack->

node=stack->

stack->

}

deletestack;

Que*CreateQueue()

Que*queue;

queue=newQue;

if(queue==NULL)

queue->

front=NULL;

rear=NULL;

returnqueue;

voidEnqueue(Que*queue)

nodeQ*node;

node=newnodeQ;

if(node==NULL||queue==NULL)

next=NULL;

if(queue->

{

queue->

front=node;

}else

rear->

next=node;

rear=node;

void*Dequeue(Que*queue)

dataptr=queue->

front->

dataptr;

count==1)

front=queue->

else

next;

returndataptr;

voidDestroyqueue(Que*queue)

while(queue->

deletequeue->

node=queue->

front;

front=node->

deletequeue;

3.主文件ThePort.cpp

CTime>

fstream>

string>

typedefstructInFor

stringnum;

inthour;

intmin;

intsec;

intyear;

intmon;

intday;

}Infor;

intface();

intFace();

boolBook(Stack*stack,Que*queue,intmax);

voidbookface();

time_tcompare(Infor*infor);

voidDisplay(Infor*infor);

time_tarrival(Stack*stack,Infor*infor,Que*queue,intmax);

voidleave(Stack*stack,Que*queue,time_tinform);

voidGetmoney(Infor*infor,intBianhao,time_tinform);

voidchecknum(stringnum);

voidInforBook(Stack*stack,Que*queue,intmax);

intInforface();

voidInforstack();

voidInforleave();

voidInforqueue(Que*queue);

intmain()

{

ofstreamfout("

estdout.txt"

ios:

:

trunc);

ofstreamfout2("

leaveout.txt"

bookface();

fout.close();

fout2.close();

return0;

voidbookface()

stack=Createstack();

queue=CreateQueue();

intmax;

boolflag=false;

while(max=face())

if(max>

20||max<

=0)

{

cout<

<

"

\t\t\t输入错误,请重新输入!

endl;

system("

pause"

);

cls"

}else

flag=Book(stack,queue,max);

}

if(flag==true)

break;

intface()

cout<

endl<

请输入停车场的最大容量(1-20):

;

cin>

>

max;

returnmax;

intFace()

system("

\t\t\t*************************************"

\t\t\t**"

\t\t\t*1、停车登记2、离开结算*"

\t\t\t*3、登记记录4、退出系统*"

\t\t请输入你的业务:

intchoose;

choose;

returnchoose;

boolBook(Stack*stack,Que*queue,intmax)

time_tinform;

while(choose=Face())

Infor*infor;

infor=newInfor;

if(choose>

4||choose<

switch(choose)

{

case1:

inform=arrival(stack,infor,queue,max);

max--;

break;

case2:

leave(stack,queue,inform);

case3:

InforBook(stack,queue,max);

case4:

cout<

\t\t\t谢谢使用,欢迎下次再来"

flag=true;

}

if(flag==true)

returnflag;

time_tarrival(Stack*stack,Infor*infor,Que*queue,intmax)

if(max>

0)

inform=compare(infor);

push(stack,infor);

Display(infor);

returninform;

cout<

\t\t\t对不起停车场已满,请停靠在便道上"

Enqueue(queue);

time_tcompare(Infor*infor)

time_tnow;

structtm*inform;

time(&

now);

inform=localtime(&

infor->

hour=inform->

tm_hour;

min=inform->

tm_min;

sec=inform->

tm_sec;

year=inform->

tm_year;

mon=inform->

tm_mon;

day=inform->

tm_mday;

请输入你的车牌号<

B23548>

infor->

num;

checknum(infor->

num);

returnnow;

voidDisplay(Infor*infor)

app);

\t\t\t车牌号:

num<

\t\t\t当前年月:

year+1900<

/"

mon+1<

day<

\t\t\t当前时刻:

"

hour<

min<

sec<

fout<

mon+1

<

voidleave(Stack*stack,Que*queue,time_tinform)

Stack*stacktemp;

stacktemp=Createstack();

Infor*temp,*a;

temp=newInfor;

a=newInfor;

intm;

boolflag;

m=stack->

count;

if(m<

\t\t\t停车场没有车!

请输入将要离开的车的车牌号:

cin>

while

(1)

checknum(num);

for(inti=0;

i<

m;

i++)

temp=(Infor*)pop(stack);

push(stacktemp,temp);

for(intk=0;

k<

6;

k++)

{

if(temp->

num[k]!

=num[k])

{

flag=false;

break;

}else

flag=true;

}

if(flag==true)

if(m==1)

Getmoney(temp,m,inform);

a=(Infor*)pop(stacktemp);

Getmoney(a,i,inform);

for(intj=0;

j<

i;

j++)

{

a=(Infor*)pop(stacktemp);

push(stack,a);

}

if(queue->

count>

a=(Infor*)Dequeue(queue);

compare(a);

}

if(flag==false)

没有此车的车牌号或车牌号错误,请重新输入:

cin>

for(intn=0;

n<

n++)

temp=(Infor*)pop(stacktemp);

push(stack,temp);

}elsebreak;

return;

voidchecknum(stringnum)

while

(1)

boolflag=true;

if(num.length()!

=6||num[0]>

'

Z'

||num[0]<

A'

{

flag=false;

for(inti=1;

num.length();

if(num[i]>

9'

||num[i]<

0'

flag=false;

if(flag==false)

你输入的车牌类型,请重新输入你的车牌号<

cin>

continue;

else

}

voidGetmoney(Infor*infor,intBianhao,time_tinform)

structtm*inform2;

inform2=localtime(&

doublepay;

pay=(difftime(now,inform)*1)/10;

\t\t编号:

Bianhao<

\t\t车牌号:

\t\t起始年月:

\t\t起始时刻:

\t\t当前年月:

inform2->

tm_year+1900<

tm_mon+1<

tm_mday<

\t\t当前时刻:

tm_hour<

tm_min<

tm_sec<

\t\t你的需要缴纳的费用:

pay<

元"

tm_mday

voidInforBook(Stack*stack,Que*queue,intmax)

while(choose=Inforface())

Inforstack();

Inforleave();

Inforqueue(queue);

Book(stack,queue,max);

intInforface()

\t\t\t*1、今天登记情况2、离开车辆记录*"

\t\t\t*3、便道信息查询4、返回主页面*"

voidInforstack()

ifstreamfin("

if(fin.eof()==NULL)

\t\t\t当前没有停车记录!

system("

while(fin.eof()!

=NULL)

fin>

num>

year>

mon>

day>

hour>

min>

sec;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1