银行业务模拟C++

银行业务模拟C++

ID:42690708

大小:46.00 KB

页数:6页

时间:2019-09-20

银行业务模拟C++_第1页
银行业务模拟C++_第2页
银行业务模拟C++_第3页
银行业务模拟C++_第4页
银行业务模拟C++_第5页
资源描述:

《银行业务模拟C++》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#includeusingnamespacestd;inttotal;//初始时银行现存资金总额intcloseTime;//营业结束时间intarriveTime;//两个到达事件之间的间隔时间intdealTime;//客户之间交易的时间上限intdealMoney=5000;//交易额上限intcurrentTime=0;//当前时间inttotalTime=0;//客户逗留时间intcounter=0;//客户总

2、数intnumber=1;//初始客户序列号structservice{intnum;//客户号stringtype;//到达或离开intbeginTime;intendTime;intmoney;//正数为存款,负数为取款service*next;};structqueue{//队列service*head;service*rear;};voidpush(queue&q,intd){//插入元素d为Q的新的队尾元素service*temp=newservice;temp->money=d;temp->

3、next=NULL;if(NULL==q.head){//队列为空,初始化q.head=temp;q.rear=temp;}else{//队列不为空,插入元素dq.rear->next=temp;q.rear=q.rear->next;}}voidpop(queue&q){//若队列不为空,出队列函数service*temp;temp=q.head;if(NULL==q.head->next)q.head=q.rear=NULL;elseq.head=q.head->next;deletetemp;}s

4、ervice*front(queue&q){//返回队首元素returnq.head;}service*back(queue&q){//返回队尾元素returnq.rear;}service*searchAndDel(queue&q,intm){//在队列中寻找可处理元素service*sign=q.head;//标记头结点service*temp;while(NULL!=q.head){if((-(q.head->money))

5、=q.head;q.head=q.rear=NULL;returntemp;}else{//队首元素出列temp=q.head;q.head=q.head->next;//首节点后移一位,返回原首节点returntemp;}}else{//队首元素不能被处理if(q.head==q.rear){}else{//首节点移到队列尾部q.rear->next=q.head;q.rear=q.rear->next;q.head=q.head->next;q.rear->next=NULL;}}if(q.head

6、==sign)//队列循环一周时停止returnNULL;}returnNULL;}boolstate=1;//用于判断是否有窗口在处理intcurrentTimeOfDeal=0;inttheArriveTime=0;queueeq;//事件队列queuefq;//事件一queuesq;//事件二//初始化三个队列voidarrive(){/*“到达”函数随机产生顾客,进入队列一,产生到达事件,进入事件处理*/push(fq,(rand()%(2*dealMoney)-dealMoney));//随机

7、产生顾客进入第一队列back(fq)->beginTime=currentTime;back(fq)->num=number;push(eq,(back(fq)->money));//将产生事件加入事件队列back(eq)->beginTime=currentTime;back(eq)->type="到达";//到达back(eq)->num=number;++number;}voidputMoney(){//存款函数total+=front(fq)->money;//更新资金总额push(eq,fro

8、nt(fq)->money);//加入事件队列离开back(eq)->type="离开";//离开back(eq)->num=front(fq)->num;back(eq)->endTime=(front(fq)->beginTime+rand()%dealTime+1);++counter;//更新客户总数totalTime+=(back(eq)->endTime-front(fq)->beginTime);//更新逗留时间pop(fq)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。