银行模拟.docx

上传人:b****2 文档编号:2687133 上传时间:2023-05-04 格式:DOCX 页数:8 大小:147.60KB
下载 相关 举报
银行模拟.docx_第1页
第1页 / 共8页
银行模拟.docx_第2页
第2页 / 共8页
银行模拟.docx_第3页
第3页 / 共8页
银行模拟.docx_第4页
第4页 / 共8页
银行模拟.docx_第5页
第5页 / 共8页
银行模拟.docx_第6页
第6页 / 共8页
银行模拟.docx_第7页
第7页 / 共8页
银行模拟.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

银行模拟.docx

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

银行模拟.docx

银行模拟

银行模拟

运行图:

源代码:

#include"stdafx.h"

int_tmain(intargc,_TCHAR*argv[])

{

return0;

}

//yy.cpp:

主项目文件。

#include

#include"list"

#include"queue"

#include"time.h"

usingnamespacestd;

voidsolvequeue1();

voidsolvequeue2();

classEvent{

public:

intn;//客户的位子

intmoney;//存取款金额

intsolveTime;//处理需要的时间

intarriveTime;//到达时间,距开业的分钟数

intgrap;//与前一个客户的间隔时间,为了记录营业时间

intwaitTime;//等待时间

};

queueq1,q2;//声明两个队列

intclose_time=0,total_people=0,closetime,total_money;//close_time为当前时间,也是距离关门的时间closetime为营业总时间totle_money为开业时银行内的资金总额totle_people为一天之内办理总的客户数

intmax_solve_time,max_grap_time;//max_slove_time为事件的解决时间最大值//max_grap_time为客户的间隔时间的最大值

intmax_insertmoney,max_drawmoney;//max_insertmoney为存钱的最大值//max_drawmoney为取钱的最大值

intcurrentTime=0;

voidputqueue1(Eventm)

{

q1.push(m);

}

voidputqueue2(Eventm)

{

q2.push(m);

}

voidsolvequeue1()

{

Eventx=q1.front();

q1.pop();

cout<<"现在是"<<(x.arriveTime/60+9)<<":

"<<(x.arriveTime-(x.arriveTime/60)*60)<<",第"<

if(total_money+x.money>=0)

{

total_money+=x.money;

if(x.money>0)

{

if(currentTime>x.arriveTime)

x.waitTime=currentTime-x.arriveTime;

else

x.waitTime=0;

cout<<"第"<

currentTime=x.arriveTime+x.waitTime+x.solveTime;

solvequeue2();

}

else

{

if(currentTime>x.arriveTime)

x.waitTime=currentTime-x.arriveTime;

else

x.waitTime=0;

cout<<"第"<

currentTime=x.arriveTime+x.waitTime+x.solveTime;

}

}

else

{

cout<<"为第"<

putqueue2(x);

}

 

}

voidsolvequeue2()

{

intn=q2.size(),i=0;

while(n!

=0)

{

Eventx=q2.front();

q2.pop();

if(total_money+x.money>0)

{

total_money+=x.money;

if(currentTime>x.arriveTime)

x.waitTime=currentTime-x.arriveTime;

else

x.waitTime=0;

cout<<"第"<

n--;

currentTime=x.arriveTime+x.waitTime+x.solveTime;

}

else

{

putqueue2(x);

i++;

}

if(i==n)

break;

}

}

//主函数

voidmain()

{

cout<<"请输入银行总资金(元)和营业总时间(分钟):

"<

cin>>total_money>>closetime;

cout<<"请输入存钱的最大值(元)和取钱的最大值(元)"<

cin>>max_insertmoney>>max_drawmoney;

cout<<"请输入事件的解决时间最大值(分钟)和客户的间隔时间的最大值(分钟)"<

cin>>max_solve_time>>max_grap_time;

system("cls");

cout<<"*****************早上九点开业,欢迎光临*****************\n";

cout<<"银行每天开业总资金为"<

Eventtemp;

intgrap=0,n=1,i;

intsolveTime;

intmoney;

intwaitTime=0;

srand((unsigned)time(NULL));

grap=rand()%max_grap_time;

temp.grap=grap;

close_time=temp.grap+close_time;

temp.arriveTime=close_time;

money=rand()%(max_insertmoney+max_drawmoney)-max_drawmoney;

temp.money=money;

solveTime=rand()%max_solve_time;

temp.solveTime=solveTime;

temp.n=n;

putqueue1(temp);

solvequeue1();

//system("pause");

for(;;)

{

grap=rand()%max_grap_time;

temp.grap=grap;

close_time=temp.grap+close_time;

temp.arriveTime=close_time;

if(close_time>closetime)

{

cout<<"******************银行营业结束,谢谢光临*******************\n";

cout<<"今天来了"<

if(q2.size()!

=0)

cout<<"未能给"<

"<

else

cout<<"为全部的顾客提供的服务,欢迎再次光临!

"<

cout<<"银行余额为"<

break;

}

i=rand()%2;

if(i==0)

money=rand()%max_insertmoney;

else

money=-rand()%max_drawmoney;

temp.money=money;

solveTime=rand()%max_solve_time;

temp.solveTime=solveTime;

n++;

temp.n=n;

putqueue1(temp);

solvequeue1();

getchar();

getchar();

//system("pause");

}

}

注:

此程序为MicrosoftVisualStudio2012编译,执行。

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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