欢迎来到天天文库
浏览记录
ID:8968371
大小:70.00 KB
页数:13页
时间:2018-04-13
《c语言银行排队事件模拟》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、//离散事件模拟,模拟银行营业时的排队情况//不考虑顾客中途离开,顾客到达事件随机,业务办理时间//长度随机,选择最短的队排队,不再换队//时间:2012年9月17日#include#include#include#include#defineOK1#defineERROR0#defineTRUE1#defineFALSE0/**********************结构体*****************************
2、*******************///事件表节点typedefstructEvent{intOccurTime;//事件发生时刻intNType;//事件类型,0表示到达事件,1至n表示四个窗口的离开事件structEvent*next;}Event,*EventList;//队列节点typedefstructQElemType{intArriveTime;//到达时间intDuration;//办理业务所需时间structQElemType*next;}QElemType;//队列指针typede
3、fstruct{QElemType*front;//头指针QElemType*rear;//尾指针}LinkQueue;/********************函数申明*************************************************///事件表基本操作函数EventNewEvent(intoccurT,intnType);//根据OccurTime和NType值,创建新事件intInitList();//初始化事件链表intOrderInsert(EventListL,
4、Evente);//将事件e按发生时间顺序插入有序链表L中intListEmpty(EventListL);//判断链表L是否为空,为空返回TRUE,否则返回FALSEintDelFirst(EventListL,Event*memorry);//链表L不为空,删除其首结点,用memorry返回,并返回OK;否则返回ERRORintListTraverse(EventListL);//遍历链表//队列基本操作函数intInitQueue(LinkQueue*Q);//初始化队列QintEmptyQueue
5、(LinkQueue*Q);//若队列Q为空,返回TRUE,否则返回FALSEintDelQueue(LinkQueue*Q,QElemType*memrroy);//若队列Q不为空,首结点出队,用memrroy返回,并返回OK;否则返回ERRORintEnQueue(LinkQueue*Q,QElemTypee);//结点e入队QintQueueLength(LinkQueue*Q);//返回队列Q的长度,即元素个数intGetHead(LinkQueue*Q,QElemType*memorry);//
6、若队列Q不为空,用memrroy返回其首结点,并返回OK,否则返回ERRORintQueueTraverse(LinkQueue*Q);//遍历队列Q//排队主操作函数intShortestQueue();//获取最短队列的编号voidOpenForDay();//初始化操作voidCustomerArrived();//顾客达到事件voidCustomerDepature();//顾客离开事件voidBank_Simulation();//银行排队模拟//显示函数voidPrintEventList()
7、;//显示当前事件表voidPrintQueue();//显示当前窗口队列/****************************全局变量*****************************************/#defineMAXSIZE20//宏定义EventListev;//事件指针变量Eventen;//事件LinkQueueq[MAXSIZE];//队列指针结构体数组QElemTypecustomer;//队列节点intwindows_num;//窗口个数intTotalTime,C
8、ustomerNum;//顾客总时间,顾客总人数intCloseTime=50;//关闭时间,即营业时间长度/***********************主函数***********************************************/intmain(){srand((unsigned)time(NULL));//设置随机种子Bank_Simulation();//银行模拟排队return0;}/****
此文档下载收益归作者所有