银行叫号系统.docx

上传人:b****0 文档编号:17750736 上传时间:2023-08-03 格式:DOCX 页数:14 大小:16.15KB
下载 相关 举报
银行叫号系统.docx_第1页
第1页 / 共14页
银行叫号系统.docx_第2页
第2页 / 共14页
银行叫号系统.docx_第3页
第3页 / 共14页
银行叫号系统.docx_第4页
第4页 / 共14页
银行叫号系统.docx_第5页
第5页 / 共14页
银行叫号系统.docx_第6页
第6页 / 共14页
银行叫号系统.docx_第7页
第7页 / 共14页
银行叫号系统.docx_第8页
第8页 / 共14页
银行叫号系统.docx_第9页
第9页 / 共14页
银行叫号系统.docx_第10页
第10页 / 共14页
银行叫号系统.docx_第11页
第11页 / 共14页
银行叫号系统.docx_第12页
第12页 / 共14页
银行叫号系统.docx_第13页
第13页 / 共14页
银行叫号系统.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

银行叫号系统.docx

《银行叫号系统.docx》由会员分享,可在线阅读,更多相关《银行叫号系统.docx(14页珍藏版)》请在冰点文库上搜索。

银行叫号系统.docx

银行叫号系统

#include

#include

usingnamespacestd;

template

classLinkNode//用户的节点类

{

public:

Tdata;

LinkNode*link;

LinkNode(LinkNode*ptr=NULL)

{

link=ptr;

}

};

template

classLinkQueue//模拟用户队列

{

public:

intsize;

intcal;

LinkNode*front;

LinkNode*rear;

LinkQueue()

{

size=0;

front=rear=NULL;

cal=0;

}

~LinkQueue()

{

Clear();

}

voidClear()

{

while(front!

=NULL)

{

rear=front;

front=front->link;

deleterear;

}

rear=NULL;

size=0;

}

voidEnQueue()//向队列新插入一个节点,并分配一个新ID

{

if(size==0)

{

front=rear=newLinkNode(NULL);

}

else

{

rear->link=newLinkNode(NULL);

rear=rear->link;

}

size++;

cal++;

(rear->data).ID+=cal;

}

TTop()//返回队列的第一个元素

{

returnfront->data;

}

intTopID()

{

return(front->data).ID;

}

voidPop()//删除队列的第一个元素

{

LinkNode*temp;

if(size==0)

{cout<<"队列为空!

"<

else

{

temp=front;

front=front->link;

deletetemp;

size--;

}

}

voidCou()//队列的输出函数

{

if(size==0)

{

cout<<"队列为空!

"<

}

else

{

while(front!

=NULL)

{

cout<<(front->data).ID<<"";

front=front->link;

}

cout<

}

}

};

classUser//用户类

{

public:

intID;//用户ID

intisWait;//等候时间

intServetime;//服务时间

User()

{

Servetime=0;

isWait=0;

}

voidgetServed();

};

classNormalUser:

publicUser//普通用户类

{

public:

NormalUser(){ID=1000;}

voidgetServed();

};

classVIPUser:

publicUser//VIP用户类

{

public:

VIPUser(){ID=2000;}

voidgetServed();

};

classOfficalUser:

publicUser//公务用户类

{

public:

OfficalUser(){ID=3000;}

voidgetServed();

};

classBankWindow//窗口类

{

public:

intID;//用户ID

intserivetime;//窗口服务时间

voidHandleUser();

};

intmain()

{

LinkQueuep1;//普通用户队列

LinkQueuep2;//VIP用户队列

LinkQueuep3;//公务用户队列

stringstr;

intii=1,jj=1,mm=2,nn=3;

intnorServetime[3];//普通窗口服务时间

for(intn=0;n<3;n++)

{

norServetime[n]=0;

}

intvipServetime=0;//VIP窗口服务时间

intoffServetime=0;//公务窗口服务时间

for(intn=0;n<7;n++)//模拟用户取号

{

cout<<"*********************************当前时间为:

"<<2*n<<"s********************************"<

cout<<"请输入当前时间新进入银行的客户,用1、2、3表示(1:

普通用户、2:

VIP用户、3:

公务用户)"<

cin>>str;

intlen=str.length();

for(intn=0;n

{

if(str[n]=='1')

{p1.EnQueue();}

elseif(str[n]=='2')

{p2.EnQueue();}

elseif(str[n]=='3')

{p3.EnQueue();}

}

if(ii==1)//普通窗口

{

if(p1.size!

=0)//1号普通窗口

{

if(norServetime[0]==0)

{

cout<<"1号窗口空闲,请"<data.ID<<"号顾客到1号窗口!

"<

norServetime[0]+=2;

p1.Pop();

}

elseif(norServetime[0]==2)

{

cout<<"1号窗口忙!

"<

norServetime[0]=0;

}

}

elseif(p1.size==0)

{

if(norServetime[0]==2)

{

cout<<"1号窗口忙!

"<

norServetime[0]=0;

}

else

{

cout<<"1号窗口空闲!

"<

norServetime[0]=0;

}

}

if(p1.size!

=0)//2号普通窗口

{

if(norServetime[1]==0)

{

cout<<"2号窗口空闲,请"<data.ID<<"号顾客到2号窗口!

"<

norServetime[1]+=2;

p1.Pop();

}

elseif(norServetime[1]==2)

{

cout<<"2号窗口忙!

"<

norServetime[1]=0;

}

}

elseif(p1.size==0)

{

if(norServetime[1]==2)

{

cout<<"2号窗口忙!

"<

norServetime[1]=0;

}

else

{

cout<<"2号窗口空闲!

"<

norServetime[1]=0;

}

}

if(p1.size!

=0)//3号普通窗口

{

if(norServetime[2]==0)

{

cout<<"3号窗口空闲,请"<data.ID<<"号顾客到3号窗口!

"<

norServetime[2]+=2;

p1.Pop();

}

elseif(norServetime[2]==2)

{

cout<<"3号窗口忙!

"<

norServetime[2]=0;

}

}

elseif(p1.size==0)

{

if(norServetime[2]==2)

{

cout<<"3号窗口忙!

"<

norServetime[2]=0;

}

else

{

cout<<"3号窗口空闲!

"<

norServetime[2]=0;

}

}

}

if(mm==2)//VIP窗口叫号

{

if(p2.size!

=0)

{

if(vipServetime==0)

{

cout<<"VIP窗口空闲,请"<data.ID<<"号顾客到VIP窗口!

"<

vipServetime+=2;

p2.Pop();

}

elseif(vipServetime==2)

{

cout<<"VIP窗口忙!

"<

vipServetime=0;

}

}

elseif(p1.size!

=0)

{

if(vipServetime==0)

{

cout<<"VIP窗口空闲,请"<data.ID<<"号顾客到VIP窗口!

"<

vipServetime+=2;

p1.Pop();

}

elseif(vipServetime==2)

{

cout<<"VIP窗口忙!

"<

vipServetime=0;

}

}

else

{

if(vipServetime==2)

{

cout<<"VIP窗口忙!

"<

}

else

{

cout<<"VIP窗口空闲!

"<

}

vipServetime=0;

}

}

if(nn==3)

{

if(p3.size!

=0)//公务窗口叫号

{

if(offServetime==0)

{

cout<<"公务窗口空闲,请"<data.ID<<"号顾客到公务窗口!

"<

offServetime+=2;

p3.Pop();

}

elseif(offServetime==2)

{

cout<<"公务窗口忙!

"<

offServetime=0;

}

}

elseif(p1.size!

=0)

{

if(offServetime==0)

{

cout<<"公务窗口空闲,请"<data.ID<<"号顾客到公务窗口!

"<

offServetime+=2;

p1.Pop();

}

elseif(offServetime==2)

{

cout<<"公务窗口忙!

"<

offServetime=0;

}

}

else

{

if(offServetime==2)

{

cout<<"公务窗口忙!

"<

}

else

{

cout<<"公务窗口空闲!

"<

}

offServetime=0;

}

}

cout<<"***********************等待用户数:

**************************"<

cout<<"普通用户:

"<

cout<<"VIP用户:

"<

cout<<"公务用户:

"<

cout<<"*********************************"<

}

return0;

}

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2