数据结构课程设计银行业务模拟

数据结构课程设计银行业务模拟

ID:16014512

大小:341.50 KB

页数:26页

时间:2018-08-07

数据结构课程设计银行业务模拟_第1页
数据结构课程设计银行业务模拟_第2页
数据结构课程设计银行业务模拟_第3页
数据结构课程设计银行业务模拟_第4页
数据结构课程设计银行业务模拟_第5页
资源描述:

《数据结构课程设计银行业务模拟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构课程设计报告班级:191113学号:20111000611姓名:黄建钊指导老师:朱晓莲日期:2013年3月261.银行业务模拟1.需求分析客户的业务分为两种:第一种是申请从银行得到一笔资金,即取款或借款;第二种是向银行中投入一笔资金,即存款或还款。银行有两个服务窗口,相应地有两个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足,则立刻排入第二个队等候,直至满足时才离开银行;否则业务处理完后立刻离开银行。每接待完一个第二种业务的客户,则顺序检查和处理(如果可能)第二个队列中的客

2、户,对能满足的申请者予以满足,不能满足者重新排到第二个队列的队尾。注意,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止检查(因为此时已不可能还有能满足者)转而继续接待第一个队列的客户。任何时刻都只开一个窗口。假设检查不需要时间。营业时间结束时所有客户立刻离开银行。要求:写一个上述银行业务的事件驱动模拟系统,模拟出并输出系统处理所有客户的流程,并计算出所有客户在银行内逗留的平均时间。2.设计2.1设计思想本问题主要需要处理两个交易队列(fq,sq

3、)和一个事件队列(eq)。当有客户来交易时,让客户先进队列一fq,然后让事件队列eq记下客户随机产生的到达时间,如果客户办理存款,则更新银行的资金并且记下客户随机产生的逗留时间,办理完后让事件队列记录客户的离开时间,然后从队列一中删除该客户的结点;如果客户办理取款,当银行此刻的金额可以满足该客户,则更新银行的资金并且记下客户随机产生的逗留时间,办理完后让事件队列记录客户的离开时间,然后从队列一中删除该客户的结点,当银行此刻的金额不能够满足该客户,则将该客户转移到队列二等待,直到下一个办理存款的客户办理完存款后,从队列二的头结点开始搜索,看看有没

4、有可以满足其取款的客户,如果队列二的头结点客户能满足,则为其办理取款,然后从队列二中删除该节点,并让事件队列记录该客户的离开时间,如果队列二的头结点客户仍然不能满足,则搜索下一个客户直到将队列二搜索完。等到银行的营业时间到了后,输出事件队列,需要办理两种业务的顾客数,已成功办理两种业务的顾客数,两种业务的成功办理率,客户在银行内的平均逗留时间和下班时银行所剩余的资金总额。实现:输入:用户需要在程序运行开始时输入以下数据:银行初始资金total;银行营业时间closetime;26客户交易时间上下界dealmaxtime和dealmintime,

5、用于给随机数产生函数传递参数,产生一个介于这两个值之间的值;客户到达时间间隔上界arrivemaxtimearrivemintime,用于给随机数产生函数传递参数,产生一个介于这两个值之间的值;交易额的最大上限dealMaxMoney.用于给随机函产生函数参数,产生一个介于-dealMaxMoney和dealMaxMoney之间的值,作为顾客到银行办理业务的交易额,。输出:本程序用dos界面模拟输出整个银行业务办理及排队的结果,最后给出一下数据:分别列出需要办理两种业务的顾客数;分别列出已成功办理两种业务的顾客数;分别列出两种业务的成功办理率;

6、客户在银行内的平均逗留时间;下班时银行所剩余的资金总额。(1)数据结构设计:结构体的定义如下:structservice{intnum;//客户号stringtype;//到达或离开intbeginTime;//到达时间intendTime;//离开时间intmoney;//正数为存款,负数为取款service*next;//指针域};队列的抽象数据类型定义如下:ADTQueue{数据对象:D={ai

7、ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:R1={

8、ai-1,ai∈D,i=2,...,n}基本操作:v

9、oidinit_Q(Queue&Q);操作结果:构造空队列QintQ_empty(QueueQ);初始条件:队列Q存在操作结果:若Q为空队列,则返回TRUE,否则FALSEintQ_length(QueueQ);初始条件:队列Q存在操作结果:返回队列Q的元素个数,即队列长度intgethead_Q(QueueQ);初始条件:队列Q存在26操作结果:返回队列Q的队头元素voiden_Q(Queue&Q,inte);初始条件:队列Q存在操作结果:插入元素e为Q的新的队尾元素。voidde_Q(Queue&Q,int&e);初始条件:队列Q存在操作结

10、果:删除Q的队头元素。}ADTQueue(2)算法设计队列类型typedefstructQNode{//队列节点类型intdata;structQNo

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

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

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