欢迎来到天天文库
浏览记录
ID:35506745
大小:63.02 KB
页数:10页
时间:2019-03-25
《数据结构银行业务活动的模拟》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构课程设计报告题目:银行业务活动的模拟一、实验目的银行业务活动的模拟任务:假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反Z,若个窗口均冇客户所山,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。功能要求:1)•实现数据的输入;2).各个窗口数据的访问和输!11:3)当前窗口的人员分布情况动态显示。界面
2、要求:有合理的提示,每个功能可以设立菜单,根据捉示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料屮指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料屮写明;二、总体设计1.设计原理:为了计算平均吋间,就要掌握每个客户到达银行和离开银行这两个吋亥IJ,后者减去前者即为每个客户在银行逗留的时间。所冇客户逗留时间的总和被一天内进入银行的客户数除便是所求的平均时间。事件的主耍信息是事件类型和事件
3、发生的时刻,算法中耍处理的事件有两类:一类是客户到达的时间,另一类是客户离开的时间。前一类事件发生的吋刻随客户到来自然形成,后一•类事件发生吋刻则由客户事务所需时间和等待所耗时间而定。由于驱动程序是按时间发生时刻的先后顺序进行,则事件表应该是有序表,其主要操作是插入和删除事件。2.设计方案及流程由于在实际的银行中,客户到达的时刻及其办理事务所需时间都是随机的,在模拟程序屮可用随机数代替,不失一般性。假设第一个客户进门的时刻为0,即是模拟程序处理的第一个事件,之后每个客户到达的时刻在前一个客户到达时设定。因此在客户到达事件发生时需先产生
4、两个随机数:其一为此时刻到达的客户办理事务所需时间durtime;其二为下一个客户将到达的时间间隔intertime,假设当前事件发生的时刻为occurtime,则下一个客户到达事件发生的吋刻为occurtime+intertime0由此应产生一个新的客户到达吋间插入表;刚到达的客户则应插入到当前所含元素最少的队列中;若该队列在插入前为空,则还应产生一个客户离开事件插入事件表。客户离开时间的处理比较简单。首先计算该客户在银行逗留的时间,然后从队列屮删除该客户后查看队列是否为空,若不空则设定一•个新的队头客户离开事件。三、实验步骤次次次
5、123第第第完成程序的主框架设计,进行调试,验证其正确性;详细设计,进行调试,验证其止确性;进行整体调试,运行程序,对运行结呆进行分析,完成实验报告。程序代码如下:#include#include//malloc()等#include#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0typedefintStatus;//Status是函数的类型,Jt值是函数结呆状态
6、代码,如OK等#defineQu4//客户队列数typedefstruct{intOccurTime;//事件发生时刻intNType;}Event,ElemType;typedefstructLNode{ElemTypedata;LNode*next;}*Link,*Position;structLinkList//链表类型{Linkhead,tail;intlen;};typedefstruct{intArrivalTime;//到达吋刻intDuration;//办理事务所需时间JQElemType;//定义QElemType(
7、队列的数据元素类型)为结构体类型;typedefstructQNode{QElemTypedata;QNode*next;}*QueuePtr;structLinkQueue{QueuePtrfront,rear;//队头、队尾指针};typedefLinkListEventList;//事件链表类型,定义为有序链表EventListev;//事件表Eventen;//事件Eventet;〃临时变量LinkQueueqfQu];//Qu个客户队列QElemTypecustomer;//客户记录intTotalTime=0,Custom
8、erNum=0;//累计客户逗留时间,客户数(初值为0)intCloseTime;II银彳亍营业时间(单位是分)〃对链表的操作:StatusInitList(LinkList&L){//构造一个空的线性链表Linkp;p
此文档下载收益归作者所有