银行业务模拟系统的实现.docx

银行业务模拟系统的实现.docx

ID:53331860

大小:152.65 KB

页数:16页

时间:2020-04-03

银行业务模拟系统的实现.docx_第1页
银行业务模拟系统的实现.docx_第2页
银行业务模拟系统的实现.docx_第3页
银行业务模拟系统的实现.docx_第4页
银行业务模拟系统的实现.docx_第5页
资源描述:

《银行业务模拟系统的实现.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、程序设计与算法综合训练》设计报告3学号:E姓名:汪泓章年级:大一专业:计科项目名称:银行业务模拟系统的设计与实现完成日期:2016年7月1日1.需求分析 (1)问题描述:假设某银行有四个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需在每个窗口前顺次排队,对于刚进入银行的客户,如果某个窗口的业务员正空闲,则可上前办理业务,反之,若四个窗口均有客户所占,他便会排在人数最少的队伍后面。现在需要编制程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。 (2)基本要求1)初始化(OpenForDay),模拟银行开门

2、时各数据结构的状态。2)事件驱动(EventDrived),对客户到达和离开事件做相应处理。3)下班处理(CloseForDay),模拟银行关门时的动作,统计客户平均逗留时间。4)按照题意要求独立进行设计,设计结束后按要求写出设计报告。①输入的形式和输入值的范围:规定银行一天的营业时间为480分钟。②输出的形式:所有顾客业务办理的总时间;办理业务的总顾客数;平均每人办理时间③程序所能达到的功能:通过队列的知识完成离散时间模拟,即已知窗口数和一天的营业时间可以求得平均每人办理的时间。2.概要设计 总体设计思想:为了计算这个平均的逗留时间,自然需要知道每个客户到达银行和离开银行这两个时刻,后

3、者减去前者即为每个客户在银行的逗留时间。所有客户逗留时间的总和被一天内进入银行的客户数除便是所求的平均时间。称客户到达银行和离开银行这两个时间发生的事情为“事件”,则整个模拟程序将按事件的先后顺序进行处理。这样一种程序称做事件驱动模拟。下面是上述银行客户的离散事件驱动的模拟算法(1) 数据结构和程序模块:                                                    下面是模拟程序中需要的数据结构及其操作。 a.模拟算法的主要处理对象是“事件”,事件的主要信息是事件的类型和事件的发生时刻。算法中处理的事件有两类:一类是客户到达事件;另一类是客户离开

4、事件。前一类事件发生的时刻随客户的到来自然形成;后一类事件发生的时刻由客户办理业务所需时间和等待时间而定。由于程序驱动是按事件发生时刻的先后顺序进行的,所以事件表应是有序表,其主要操作是插入和删除事件,用一个单链表表示。 b.模拟程序中需要的另一数据结构是表示客户排队的队列,由于假设银行有4个窗口,因此程序中需要4个队列,队列中有关客户的信息是客户到达的时刻和客户办理业务所需要的时间。每个队列中的队头客户即为正在窗口办理事务的客户,他办完业务离开队列的时刻就是即将发生的客户离开事件的时刻,这就是说,对每个队头客户都存在一个将要驱动的客户离开事件。因此在任何时刻即将发生的事伯只有5种可能:

5、1)新的客户到达;2)1号窗口的客户离开;3)2号窗口的客户离开;4)3号窗口的客户离开;5)4号窗口的客户离开; 从以上分析可知,在模拟程序中只需要两种数据结构:有序链表和队列。 程序中用到的头文件、类型定义及主要的函数原型如下: #include"stdio.h" #include"malloc.h" #include"time.h" #include"stdlib.h"    int OccurTime; // 事件发生时刻 int NType; // 事件类型,Qu表示到达事件,0至Qu-1表示Qu个窗口的离开事件  }Event,ElemType; // 事件类型,有序链表Li

6、nkList的数据元素类型 typedef struct LNode  //定义事件表的结点类型 {   ElemType data   struct LNode *next;  } LNode, *LinkList;  typedef LinkList EventList; // 事件链表类型,定义为有序链表 typedef struct  //定义客户队列的元素类型  {    int ArrivalTime; // 到达时刻    int Duration; // 办理事务所需时间  }QElemType; // 定义QElemType(队列的数据元素类型)为结构体类型; type

7、def struct QNode  //定义客户队列的结点类型 {   QElemType data   struct QNode *next;  } QNode, *Queue;  typedef  struct { Queue head; Queue tail;} LinkQueue; LinkQueue  q[Qu+1]; // Qu个客户队列 void OpenForDay(); //模拟银行开门的动作,即初始化操作  vo

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

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

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