数据结构课程设计报告 题目:银行业务活动的模拟 一、实验目的 银行业务活动的模拟 任务:假设某银行有 4 个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。 功能要求: 1 ).实现数据的输入; 2 ).各个窗口数据的访问和输出; 3 )当前窗口的人员分布情况动态显示。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用 1 、全部合法数据;2 、整体非法数据;3 、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 二、总体设计 1.设计原理: 为了计算平均时间,就要掌握每个客户到达银行和离开银行这两个时刻,后者减去前者即为每个客户在银行逗留的时间。所有客户逗留时间的总和被一天内进入银行的客户数除便是所求的平均时间。 事件的主要信息是事件类型和事件发生的时刻,算法中要处理的事件有两类:一类是客户到达的时间,另一类是客户离开的时间。前一类事件发生的时刻随客户到来自然形成,后一类事件发生时刻则由客户事务所需时间 和等待所耗时间而定。由于驱动程序是按时间发生时刻的先后顺序进行,则事件表应该是有序表,其主要操作是插入和删除事件。 2.设计方案及流程 由于在实际的银行中,客户到达的时刻及其办理事务所需时间都是随机的,在模拟程序中可用随机数代替,不失一般性。假设第一个客户进门的时刻为 0,即是模拟程序处理的第一个事件,之后每个客户到达的时刻在前一个客户到达时设定。因此在客户到达事件发生时需先产生两个随机数:其一为此时刻到达的客户办理事务所需时间 durtime;其二为下一个客户将到达 的时 间 间隔intertime ,假设当前 事件 发生 的时刻为occurtime,则下一个客户到达事件发生的时刻为 occurtime+intertime。由此应产生一个新的客户到达时间插入表;刚到达的客户则应插入到当前所含元素最少的队列中;若该队列在插入前为空 ,则还 应产生一个客户离开事件插...