电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

《银行离散事件模拟》数据结构上机实习报告VIP免费

《银行离散事件模拟》数据结构上机实习报告_第1页
1/7
《银行离散事件模拟》数据结构上机实习报告_第2页
2/7
《银行离散事件模拟》数据结构上机实习报告_第3页
3/7
《银行离散事件模拟》数据结构上机实习报告一.实习题目:《银行离散事件模拟》二.需求分析:为了计算所有客户在银行的平均逗留时间,需要掌握每个客户到达银行和离开银行的时间,后者减去前者即为每个客户在银行的逗留时间。用当天的客户数去除以所有客户的逗留时间之和便是所求的平均逗留时间。三.概要设计:数据结构,使用到带头结点链表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//链表类型{Linkhead,tail;//分别指向线性链表中的头结点和最后一个结点intlen;//指示线性链表中数据元素的个数};typedefLinkListEventList;2.队列的设计typedefstruct{intArrivalTime;//到达时刻intDuration;//办理事务所需时间}QElemType;//定义队列的数据元素类型QElemType为结构体类型typedefstructQNode{QElemTypedata;QNode*next;}*QueuePtr;structLinkQueue{QueuePtrfront,rear;//队头、队尾指针};3.主要过程voidBank_Simulation(){//银行业务模拟函数开门营业;while(有客户进入或者等待办理)//事件表ev不空{判断应该进行何种操作若是客户到达CustomerArrived();//处理客户到达事件若是客户处理结束离开银行CustomerDeparture();//处理客户离开事件}计算平均使用时间输出相关数据}四.详细设计:LinkList.h#defineQu2#definejg5#definedoing30#include#include#include#include#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0typedefintStatus;typedefintBoolean;typedefstruct{intOccurTime;intNType;}Event,ElemType;typedefstructLNode{ElemTypedata;LNode*next;}*Link,*Position;structLinkList{Linkhead,tail;intlen;};typedefLinkListEventList;EventListev;Eventen,et;voidInitList(LinkList&L){Linkp;p=(Link)malloc(sizeof(LNode));if(p){p->next=NULL;L.head=L.tail=p;L.len=0;}elseexit(ERROR);}StatusDelFirst(LinkList&L,Linkh,Link&q){q=h->next;if(q){h->next=q->next;if(!h->next)L.tail=h;L.len--;returnOK;}elsereturnFALSE;}ElemTypeGetCurElem(Linkp){returnp->data;}StatusListEmpty(LinkListL){if(L.len)returnFALSE;elsereturnTRUE;}PositionGetHead(LinkListL){returnL.head;}voidOrderInsert(LinkList&L,ElemTypee,int(*comp)(ElemType,ElemType)){Linko,p,q;q=L.head;p=q->next;while(p!=NULL&&comp(p->data,e)<0){q=p;p=p->next;}o=(Link)malloc(sizeof(LNode));o->data=e;q->next=o;o->next=p;L.len++;if(!p)L.tail=o;}Queue.htypedefstruct{intArrivalTime;intDuration;}QElemType;typedefstructQNode{QElemTypedata;QNode*next;}*QueuePtr;structLinkQueue{QueuePtrfront,rear;};voidInitQueue(LinkQueue&Q){if(!(Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode))))exit(OVERFLOW);Q.front->next=NULL;}voidDestroyQueue(LinkQueue&Q){while(Q.front){Q.rear=Q.front->next;free(Q.front);Q.front=Q.rear;}}StatusQueueEmpty(LinkQueueQ){if(Q.front->next==NULL)returnTRUE;elsereturnFALSE;}intQue...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

《银行离散事件模拟》数据结构上机实习报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部