- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
银行业务模拟系统的实现讲述
程序设计与算法综合训练》设计报告3
学号: 姓名:汪泓章 年级: 大一 专 业:计科
项目名称:银行业务模拟系统的设计与实现 完成日期:2016年7月1日
1.需求分析
?(1) 问题描述:假设某银行有四个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需在每个窗口前顺次排队,对于刚进入银行的客户,如果某个窗口的业务员正空闲,则可上前办理业务,反之,若四个窗口均有客户所占,他便会排在人数最少的队伍后面。现在需要编制程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。
?(2)基本要求
1)初始化(OpenForDay),模拟银行开门时各数据结构的状态。
2)事件驱动(EventDrived), 对客户到达和离开事件做相应处理。
3)下班处理(CloseForDay),模拟银行关门时的动作,统计客户平均逗留时间。
4)按照题意要求独立进行设计,设计结束后按要求写出设计报告。
①输入的形式和输入值的范围:规定银行一天的营业时间为480分钟。
②输出的形式:所有顾客业务办理的总时间;办理业务的总顾客数;平均每人办理时间
③程序所能达到的功能:通过队列的知识完成离散时间模拟,即已知窗口数和一天的营业时间可以求得平均每人办理的时间。
2.概要设计?
总体设计思想:为了计算这个平均的逗留时间,自然需要知道每个客户到达银行和离开银行这两个时刻,后者减去前者即为每个客户在银行的逗留时间。所有客户逗留时间的总和被一天内进入银行的客户数除便是所求的平均时间。称客户到达银行和离开银行这两个时间发生的事情为“事件”,则整个模拟程序将按事件的先后顺序进行处理。这样一种程序称做事件驱动模拟。下面是上述银行客户的离散事件驱动的模拟算法
(1)?数据结构和程序模块:????????????????????????????????????????????????????
下面是模拟程序中需要的数据结构及其操作。?
a.模拟算法的主要处理对象是“事件”,事件的主要信息是事件的类型和事件的发生时刻。算法中处理的事件有两类:一类是客户到达事件;另一类是客户离开事件。前一类事件发生的时刻随客户的到来自然形成;后一类事件发生的时刻由客户办理业务所需时间和等待时间而定。由于程序驱动是按事件发生时刻的先后顺序进行的,所以事件表应是有序表,其主要操作是插入和删除事件,用一个单链表表示。?
b.模拟程序中需要的另一数据结构是表示客户排队的队列,由于假设银行有4个窗口,因此程序中需要4个队列,队列中有关客户的信息是客户到达的时刻和客户办理业务所需要的时间。每个队列中的队头客户即为正在窗口办理事务的客户,他办完业务离开队列的时刻就是即将发生的客户离开事件的时刻,这就是说,对每个队头客户都存在一个将要驱动的客户离开事件。因此在任何时刻即将发生的事伯只有5种可能:1)新的客户到达;2)1号窗口的客户离开;3)2号窗口的客户离开;4)3号窗口的客户离开;5)4号窗口的客户离开;?
从以上分析可知,在模拟程序中只需要两种数据结构:有序链表和队列。?程序中用到的头文件、类型定义及主要的函数原型如下:
?#includestdio.h
?#includemalloc.h
?#includetime.h
?#includestdlib.h?
???int?OccurTime;?//?事件发生时刻?
int?NType;?//?事件类型,Qu表示到达事件,0至Qu-1表示Qu个窗口的离开事件??}Event,ElemType;?//?事件类型,有序链表LinkList的数据元素类型?typedef?struct?LNode??//定义事件表的结点类型
?{???ElemType?data???
struct?LNode?*next;?
?}?LNode,?*LinkList;??
typedef?LinkList?EventList;?//?事件链表类型,定义为有序链表?typedef?struct??//定义客户队列的元素类型
??{?
???int?ArrivalTime;?//?到达时刻????
int?Duration;?//?办理事务所需时间?
?}QElemType;?//?定义QElemType(队列的数据元素类型)为结构体类型;?typedef?struct?QNode??//定义客户队列的结点类型
?{???
QElemType?data??
?struct?QNode?*next;?
?}?QNode,?*Queue;??
typedef??struct?{?Queue?head;?Queue?tail;}?LinkQueue;?LinkQueue??q[Qu
您可能关注的文档
最近下载
- 100以内加减法竖式练习题-两位数加减法竖式练习题A4直接打印.doc VIP
- 铁道供电技术职业生涯规划书.pptx VIP
- 会计职业生涯规划书5篇.pdf VIP
- 2024必威体育精装版民事起诉状.doc VIP
- 3D工程图学(华中科大)中国大学MOOC慕课 章节测验 客观题答案.docx
- 血液透析患者护理查房课件.pdf VIP
- 初级消防设施操作员.docx VIP
- 北京市宣武区2024-2025学年六年级数学第一学期期末调研试题含解析.doc VIP
- 2024-2025学年英语三年级上册人教精通版(三起)(2024)教学设计(附教材目录).docx VIP
- 二年级语文上册-第七单元【教材解读】.pptx VIP
文档评论(0)