《银行离散事件模拟》数据结构上机实习报告一.实习题目:《银行离散事件模拟》二.需求分析:为了计算所有客户在银行的平均逗留时间,需要掌握每个客户到达银行和离开银行的时间,后者减去前者即为每个客户在银行的逗留时间
用当天的客户数去除以所有客户的逗留时间之和便是所求的平均逗留时间
三.概要设计:数据结构,使用到带头结点链表EvevtList,结点是LNode,,提供的操作有:InitList,DelFirst,GetCurElem,GetHead,OrderInsert,此链表用于存放客户的进入或者离开的事件,存放数据包括进入的时间,处理的时间,离开的时间使用一个队列Queue,节点是QNode,队列的数据元素类型为QElemType,提供的主要操作有:InitQueue,QueueEmpty,QueueLength,GetHead,EnQueue,DeQueue,此队列用于模拟进入银行后等待办理业务的客户排队情况
其存储的数据有时间到达的时间和处理事物所需的时间
层次调用关系,包括三个文件:Main
cpp,Queue
h和LinkList
h,后两个用于数据结构的定义,主要的程序在Main
cpp中,从main()进入调用Bank_Simulation(),Bank_Simulation()调用到OpenForDay(),CustomerArrived()和CustomerDeparture(),CustomerArrived()调用Random()和Minimum();1
事件链表的设计typedefstruct{intOccurTime;intNType;}Event,ElemType;typedefstructLNode//结点类型{ElemTypedata;LNode*next;}*Link,*Position;structLinkList//链表类型{Linkhea