- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告-银行业务模拟
《数据结构》
课 程 设 计 报 告
题 目: 银行业务模拟
学院(系): 数学与计算科学学院
班 级: 11级信息与计算科学4班
学生学号: 1107020404
姓 名: 石站锋
指导教师: 彭叶辉
2013年 6月28 日 目 录
摘要………………………………………………………………………2
一、需求分析……………………………………………………………2
二、概要设计……………………………………………………………3
三、详细设计……………………………………………………………3
1、预定义和定义结构体 ……………………………………………………3
2、基本操作的算法描述………………………………………………………6
3、测试界面操作提示 ………………………………………………………8
4、不断进入队列,出队列,时间的更新,总金额的更新 …………………………9
5、营业结束时判断是否为所有客户服务,并输出最后的银行总金额 ………………9
四、设计和调试分析……………………………………………………10五、用户手册……………………………………………………………11
六、测试结果……………………………………………………………11
七、设计心得……………………………………………………………14八、参考文献……………………………………………………………14
九、附录…………………………………………………………………14
摘 要
在日常生活中,我们经常会遇到许多为了维护社会正常秩序而需要排队的情况,这样一类活动的模拟程序通常需要用到队列和线性表之类的数据结构,因此是队列的典型应用例子之一,而这次实验的题目银行业务的模拟程序就正是这样一个典型的例子。队列是一种先进先出的线性表,它只允许在表的一端插入,而在另一端删除元素。在队列中允许插入的一端叫做队尾,允许删除的一端则称为队头。我们需要编写一个程序已模拟银行的这种各种业务活动,并计算一天中客户在银行逗留的平均时间。这是一个离散事件驱动模拟程序。这也是一个的操作系统中的排队问题。假设某银行有3个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务。
关键词:排队、队列、先进先出、离散事件驱动模拟程序、
一、需求分析
程序中处理的对象主要是“事件”,事件的主要信息是事件类型和事件发生的时刻。算法中处理的事件有两类:一类是客户到达事件,另一类是客户离开事件。前一类事件发生的时间随客户到来自然形成,后一类事件发生时刻则由客户事物所需时间和等待所耗时间而定。由于程序驱动是按事件发生时刻的先后顺序进行,则时间应是有序表,其主要操作是插入和删除事件。
由于在实际的银行中,客户到达的时刻及其办理事物所需时间都是随机的,在模拟中可用随机数代替。客户到达时间时需产生两个随机数,其一为此时刻到达的客户办理事务所需时间solvetime;其二为下一客户将到达的时间间隔waitTime,假设当前事件发生的时刻为occurtime,则下一个客户到达事件发生的时刻为occurtime+waitTime。由此应产生一个新的客户到达事件插入事件表。将客户到达事件插入事件表,刚到达的客户则插入到当前所含元素最少的队列中。
客户离开事件的处理比较简单。首先计算该客户在银行逗留时间,然后从队列中删除该客户后查看队列是否空,若不空则设定一个新的队头客户离开此事件。
当然其中涉及到存取款功能,测试窗口会出现很多提示信息。测试出来的结果相应的也会很全面。
界面要求使用VC++6.0的运行环境。
二、概要设计
1、队列抽象数据类型的定义如下:
ADT Queue{数据对象:D={ai|ai∈ElemSet, i=1,2, …,n, n≥0}数据关系:R1={ai-1,ai|ai-1,ai∈D, i=1,2, …,n } 约定a1为队列头,an为队列尾。基本操作: InitQueue( Q ) 操作结果:构造一个空队列Q。 DestroyQueue ( Q ) 初始条件:队列Q已存在。
文档评论(0)