新华东交通大学数据结构课程设计(银行模拟系统) - 副本(3)

1970-01-01 08:00

int CloseTime; //关门时间 int windowsnum = 0; //主函数 int main() { EventList ev; // 事件表 QCuEvent en; QCupp QCu = NULL; OpenForDay(ev, en, QCu); while (ev->next) { en.NType = ev->next->NType; en.OccurTime = ev->next->OccurTime; DelFirstEvent(ev); if (en.NType == 0) CustomerArrived(ev, QCu, en);

else

CustomerDeparture(ev, QCu, en); Ptint_QStatus(QCu);

}

CloseForDay();

}

//主要功能子函数

Status OpenForDay(EventList &ev, QCuEvent en, QCupp &q)

11

int temp = 0;

printf(\请输入随机数种子(或输入0使用随机种子):\scanf(\

if (temp==0) srand((unsigned)time(NULL)); else srand(temp);

printf(\请输入营业时间(单位:分钟):\scanf(\CloseTime = temp;

TotalTime = 0; CustomerNum = 0; en.OccurTime = 0; en.NType = 0; en.next = NULL;

ev = (EventList) malloc(sizeof(QCuEvent)); ev->next = NULL; OrderInser(ev, en);

printf(\请输入办理业务的窗口数(至少1个):\scanf(\

q = (QCustomerp *) malloc((windowsnum+1)*sizeof(QCustomerp)); for (int i=1;i<=windowsnum;i++) {

12

{

InitCuQueue(q[i]);

}

return OK;

}

Status CustomerArrived(EventList &ev, QCupp &q, QCuEvent en) { test(\顾客到达处理<<<<<<<<\ CustomerNum ++; // 产生随机数 //srand(54);

int durtime = rand()0+1; int intertime = rand()%5+1; // 插入到达事件表 QCuEvent enTemp;

int t = en.OccurTime + intertime; enTemp.OccurTime = t; enTemp.NType = 0; enTemp.next = NULL;

if (t < CloseTime) OrderInser(ev, enTemp); printf(\时间%d\\n\ // 插入最短队 QEptr Q;

Q = (QEptr) malloc(sizeof(QCuElem));

Q->ArrivalTime = en.OccurTime;

13

Q->Duration = durtime; Q->next = NULL; int i = MinCuQueue(q); EnCuQueue(q[i],Q); // 插入离开事件

enTemp.OccurTime = en.OccurTime + durtime; enTemp.NType = i; enTemp.next = NULL;

if(QLength(q[i]) == 1) OrderInser(ev, enTemp); return OK;

}

Status CustomerDeparture(EventList &ev, QCupp &q, QCuEvent en) { test(\顾客离开处理\ int i = en.NType;

printf(\离开时间%d\\n\ if(en.OccurTime>CloseTime) { DestoryQueue(q[i]);

} else{ QCuElem customer; DeCuQueue(q[i],customer);

// 客户逗留时间 14

TotalTime += en.OccurTime - customer.ArrivalTime; printf(\总时间为%d\\n\ if (q[i].front->next) { GetQHead(q[i],customer); QCuEvent enTemp;

enTemp.OccurTime = en.OccurTime + customer.Duration; enTemp.NType = i; OrderInser(ev, enTemp);

}

}

return OK;

}

void CloseForDay() { printf(\ printf(\

printf(\ 所有顾客业务办理总时间:%d分钟\\n\ printf(\ 业务办理顾客数:%d\\n\

printf(\ 平均每人办理时间:%f\\n\ printf(\

printf(\

}

15


新华东交通大学数据结构课程设计(银行模拟系统) - 副本(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2006新会计准则完整DOC版(含准则原文、解释和指南)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: