银行业务模拟与离散事件模拟课程设计工学系课程设计报告设计题目:银行业务模拟与离散事件模拟系别:工学系专业(方向):年级、班:学生姓名:学生学号:指导教师:年月日目录一、系统开发的背景。1(一)系统功能要求1(二)系统模块结构设计1三、系统的设计与实现2(一)开门函数:3(二)顾客到达函数:5(三)顾客离开函数:6四、系统测试7五、总结8六、附件(代码、部分图表)8银行业务模拟与离散事件模拟一、系统开发的背景。为了在现实生活中,方便银行业务员更好的操作和管理银行出现的各种事件,以及方便算出各种时间,我们设计了银行业务模拟与离散事件模拟系统。通过此次课程设计中银行业务模拟的题目,掌握队列,或链表等数据结构的基本操作方面的知识并能灵活的解决一些基本的问题,加深对其性质及操作的理解。将所学数据结构方面的知识与一门具体的语言相结合来进行实现,感受数据结构的强大作用,加深理解。(一)系统功能要求编制一个程序,可以以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间1、客户到达时间随机产生,一天客户的人数设定为100人;2、银行业务员处理时间随机产生,平均处理时间为10分钟;3、将一天的数据结构(包括业务员和客户)以文件方式输出。.(二)系统模块结构设计通过对系统功能的分析,银行业务模拟与此资料由网络收集而来,如有侵权请告知上传者立即删除。资料共分享,我们负责传递知识。离散事件模拟系统功能如下图所示。银行业务模拟与离散事件模拟开门函数(OpenForday())顾客到达函数(CustomerArrived())顾客离开函数(CustomerDeparture())银行业务模拟与离散事件模拟系统通过上图的功能分析,把整个系统划分为3个模块:1、开门函数,该模块主要实现:银行开始正常营业时间,借助函数OpenForDay()来实现2、顾客到达函数,该模块主要实现:客户在银行里从排队到办理完银行业务的功能,借助函数CustomerArrive()来实现;3、顾客离开函数,该模块主要实现:银行下班时间及顾客全部离开的功能,借助函数CustomerDepart()来实现。三、系统的设计与实现【流程图】客户到达开始选择服务窗口窗口忙服务并展开链表空窗口闲置结束排队对头取客户处理并离开否时间到(一)开门函数:OpenForDay()分析:首先输入随机数种子,然后输入银行办理时的基本信息。如下图所示。voidOpenForDay(){/*初始化事件链表*/inti;InitList(ev);en.OccurTime=0;en.NType=Qu;/*到达*/OrderInsert(ev,en,cmp);for(i=0;i(二)顾客到达函数CustomerArrived()客户到达处理产生随机数插入到达事件表插入最短队插入离事件该模块的具体代码如下所示:voidCustomerArrived(){/*处理客户到达事件*/QElemTypef;intdurtime,intertime,i;++CustomerNum;/*客户数增加1*/Random(durtime,intertime);et.OccurTime=en.OccurTime+intertime;/*下一客户到达时刻=当前客户的到达时间+时间间隔*/et.NType=Qu;/*下一客户到达事件*/i=Minnimum(q);if(et.OccurTimevoidCustomerDeparture(){此资料由网络收集而来,如有侵权请告知上传者立即删除。资料共分享,我们负责传递知识。/*处理客户离开事件*/inti;i=en.NType;DeQueue(q[i],customer);/*删除队列排头客户*/TotalTime+=en.OccurTime-customer.ArrivalTime;if(!QueueEmpty(q[i])){GetHead(q[i],customer);et.OccurTime=en.OccurTime+customer.Duration;et.NType=i;OrderInsert(ev,et,cmp);}}四、系统测试(一)测试函数测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。(二)(三)(四)五、总结通过此次实验,熟悉了链表在实际应用中的简单操作,通过实际数产生函数,完成了一系列银行活动的模拟,可以给银行业务的办理提供更大的便利。实验中,存在问题,在进行了一系列的修改和请教下,解决了问题。利用随机产生种子进行事件的模拟,即到达和办理业务的时间都是随机产生。如果事件尚未到达下班时间,则将插入到空列队或者是人数(元素)最少的列队,通过检验,算出在不同服务窗口数下的等待时间以及服务时间,基本实现了银行业务的模拟。六、附件(代码、部分图表)LinkList.h#...