ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:17.58KB ,
资源ID:13285170      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13285170.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言银行业务模拟16页精选文档文档格式.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言银行业务模拟16页精选文档文档格式.docx

1、一是两个到达事件之间的间隔很短,而客户的交易时间很长;另一个正好相反,设置两个到达事件的间隔时间很长,而客户之间交易的时间很短。实现提示事件有两类:到达银行和离开银行。初始时银行现存资金总额为Total。开始营业后的第一个事件是客户到达,营业时间从0到Closetime。到达事件发生时随机地设置各客户的交易时间和距下一次到达时间之间的时间间隔。每个客户要办理的款项也是随机确定的,用负值和正值分别表示第一类和第二类业务。变量Total、CloseTime以及上述两个随机量的上下界均交互地从终端读入,作为模拟参数。两个队列和一个事件表均要用动态的存储结构实现。注意弄清应该在什么条件下设置离开事件,

2、以及第二个队列用怎样的存储结构实现可以获得较高的效率。时间表是按照时间顺序有序的。#include stringtime.husing namespace std;int total; /初始时银行现存资金总额int closeTime; /营业结束时间int arriveTime; /两个到达事件之间的间隔上限int dealTime; /客户之间交易的时间上限int dealMoney = 5000; /交易额上限int currentTime = 0; /当前时间int totalTime = 0; /客户逗留总时间int counter = 0; /客户总数int number = 1

3、; /初始客户序列号+struct serviceint num; /客户号string type; /到达或离开int beginTime;int endTime;int money; /正数为存款,负数为取款service* next;struct queue /队列service* head;service* rear;void push(queue &q,int d)/ 插入元素d为Q的新的队尾元素service* temp = new service;temp-money = d;next = NULL;if(NULL = q.head)/队列为空,初始化q. head = temp

4、;q. rear = temp;/ifelse /队列不为空,插入元素dq. rear-next = temp;q. rear = q.rear-next;/elsevoid pop(queue &q)/ 若队列不空,出对列函数service* temp;temp = q. head;if(NULL =q. head-next)q.head = q. rear =NULL;elseq. head=q. head-delete temp;service* front(queue &/返回队首元素return q. head;service* back(queue &/返回队尾元素return q

5、. rear;service* searchAndDel(queue &q,int m)/在对列中寻找可处理元素service* sign = q. head; /标记头节点while(NULL != q. head)if(-(q. head-money) / 首节点后移一位,返回原首节点/while/队首元首不能被处理if(q. head = q. rear)/首节点移到队列尾部next = q. head;q. rear = q. rear-q. head =q. head-if(q. head = sign)/队列循环一周时停止return NULL;bool state =1; /用于

6、判断是否有窗口在处理int currentTimeOfDeal = 0;int theArriveTime = 0;queue eq; /事件队列queue fq; /队列一queue sq; /对列二/初始化三个队列void arrive()/*到达函数 随机产生顾客,进入队列一产生到达事件 进入事件队列*/push(fq,(rand()% (2*dealMoney) -dealMoney); /随机产生顾客加入第一队列back(fq)-beginTime = currentTime;num = number;push(eq,(back(fq)-money); /将产生事件加入事件队列bac

7、k(eq)-type = ;+number;void putMoney() /存款函数total += front(fq)-money; /更新资金总额push(eq,front(fq)-money); /加入事件队列 离开离开num = front(fq)-num;endTime = (front(fq)-beginTime + rand()%dealTime +1);+counter; /更新客户总数totalTime += (back(eq)-endTime - front(fq)-beginTime); /更新逗留时间pop(fq); /删除第一队列第一个业务currentTimeOf

8、Deal = back(eq)-endTime;state =0;void getMoney()/取款函数if( (-fq.head-money) total ) /资金短缺 加入第二队列push( sq,front(fq)-money );back(sq)-beginTime = front(fq)-beginTime;total += back(fq)-beginTime = 0; /更新客户总数 totalTime += ( back(eq)-endTime - back(fq)-beginTime );service* temped ;int randomTemp;void findA

9、ndDeal()/在对列中寻找可处理元素,对其进行处理while( (temped= searchAndDel(sq,total)&NULL != temped ) /查找可处理取款total += temped-push(eq,temped- /加入事件队列训 离开num = temped-randomTemp = rand()%dealTime +1;endTime = currentTime + randomTemp ;currentTimeOfDeal += randomTemp;endTime - temped- /更新逗留时间 delete temped; /删除节点temped = NULL;state = 0;int main() printf( *n); 欢迎进入银行模拟系统n1.开始模拟 0.退出nint n;scanf(%d,&n);while(n=1)srand(time(NULL); /初始化随机函数输入银行的初始存款:ntotal);

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

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