数据结构课程设计--银行业务模拟与离散事件模拟

数据结构课程设计--银行业务模拟与离散事件模拟

ID:35626430

大小:180.00 KB

页数:13页

时间:2019-04-03

数据结构课程设计--银行业务模拟与离散事件模拟_第1页
数据结构课程设计--银行业务模拟与离散事件模拟_第2页
数据结构课程设计--银行业务模拟与离散事件模拟_第3页
数据结构课程设计--银行业务模拟与离散事件模拟_第4页
数据结构课程设计--银行业务模拟与离散事件模拟_第5页
资源描述:

《数据结构课程设计--银行业务模拟与离散事件模拟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据结构课程设计报告《数据结构》课程设计报告12数据结构课程设计报告银行业务模拟与离散事件模拟一、实验目的1.通过此次课程设计中银行业务模拟的题目,掌握队列(或者链表)等数据结构的基本操作方面的知识,并能灵活的解决一些基本的问题,加深对其性质及各项操作的理解;2.将所学数据结构方面的知识与一门具体的语言相结合(C/C++)来进行实现,感受数据结构的强大作用,加深理解。二、问题描述1.问题描述假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时

2、需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),若某个窗口的业务员正空闲,则上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。2.任务要求编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。建议有如下设置:(1)客户到达时间随机产生,一天客户的人数设定为100人。(2)银行业务员处理时间随机产生,平均处理时间10分钟。(3)将一天的数据(包括业务员和客户)以文件方式输出。三、算法的思想与算法实现步骤1.基本思想通过队列数据类型进行基本操作,主要有三个模块:分别是主函数模块、

3、主要操作函数及基本操作函数。其中,主函数负责其他子函数的调用实现以及基本界面的操作,主要函数包括开门函数的实现:OpenForDay,顾客到达函数:CustomerArrived,顾客离开的函数:CustomerDepartion12数据结构课程设计报告等;而基本操作函数就是对其中牵扯到的操作进行具体的实现,如按时间先后插入队列OrderInsert、寻求最短的队列MinCuQueue、删除队列元素以及销毁等。2.实现步骤首先,分析题目要求划分实现模块、画出大致的流程图,定义基本数据类型,诸如结构体、队列等;其次,考虑基本大致的操作,比如要拟定开门的时间、

4、顾客到来为其提供服务以及离开时的操作等;再次,针对上述的基本操作实现具体需要进行的操作,具体实现每个环节需要进行的基本操作,即具体编写每个小函数实现功能;最后,编写主函数对每个实现进行按需调用,实现操作。3.流程图排队开始客户到达窗口忙选择服务窗口服务并展开窗口闲置时间到结束队列空处理并离开队头取客户是否否图-1事件流程图12数据结构课程设计报告开始结束Customerarrive()进入or离开CutomDepation()()main()队列是否为空输出结果图-2主函数流程图四、程序核心代码#defineOK1#defineTRUE1#defineFA

5、LSE0#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;//-----------------银行排队模拟//事件和事件表typedefstructQCuEvent{intOccurTime;intNType;structQCuEvent*next;}QCuEvent,*EventList;12数据结构课程设计报告//窗口前队列元素typedefstructQCuElem{intArrivalTime;intDuration;structQCuElem*next;}QCuE

6、lem,*QEptr;//窗口指针typedefstruct{QEptrfront;QEptrrear;}QCustomerp,*QCupp;//主要操作函数StatusOpenForDay(EventList&ev,QCuEventen,QCupp&q);//开门StatusCustomerArrived(EventList&ev,QCupp&q,QCuEventen);//顾客到达StatusCustomerDeparture(EventList&ev,QCupp&q,QCuEventen);//顾客离开voidCloseForDay();//基本操作

7、函数StatusOrderInser(EventList&ev,QCuEventen);//按时间顺序插入事件到事件表intQLength(QCustomerpqn);//求窗口队列长度intMinCuQueue(QCuppq);//求队最短的窗口StatusDelFirstEvent(EventList&ev);//删除事件表中的第一个事件StatusInitCuQueue(QCustomerp&qn);//初始化窗口队列StatusEnCuQueue(QCustomerp&qn,QEptrQ);//进入队列StatusDeCuQueue(QCustom

8、erp&qn,QCuElem&Q);//删除队列中的元素Statu

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

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

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