第一范文网 - 专业文章范例文档资料分享平台

模拟银行排队取号系统 - 命令行版 - 代码 (3)

来源:用户分享 时间:2020-06-22 本文由十里画廊 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

11 1 if(VIPmaxNUM>VIPminNUM) { for(i=0; i<2; i=i+1) { if(Win[i].WindowState==WaitWin) { Win[i].WindowState=Call; VIPminNUM=VIPminNUM+1; Win[i].serveNum=VIPminNUM; Win[i].start = clock(); Win[i].timeInterval=rand()P00+5000;//叫号时间为5~10秒随机数 Win[i].timeSum = Win[i].timeSum + Win[i].timeInterval;//服务时间增加 Win[i].sum = Win[i].sum +1; change = 1; break; } } } }

void windowControl(void)//增减窗口控制 { int i; int maxVIPCount = 0; static clock_t present = 0, previous = 0; present = clock(); //普通窗口的增加 if((maxNUM-minNUM)>=(3*WinCount)) { for(i=2;i<8&&Win[i].WindowState!=Unopen;i=i+1) { }

12 1 if(i<8) { Win[i].WindowState = WaitWin; WinCount = WinCount + 1; change = 1; } }

//普通窗口的减少

if(((maxNUM-minNUM)<(2*WinCount))&&(WinCount>3)) { for(i=7;i>=2&&Win[i].WindowState==Unopen;i=i-1) { } if(i>=2) { switch(Win[i].WindowState) { case WaitWin: Win[i].WindowState = Unopen; WinCount = WinCount - 1; change = 1; break; case Rest: Win[i].WindowState = Unopen; WinCount = WinCount - 1; change = 1; break; case Call: Win[i].closeLater = 1; WinCount=WinCount-1; case Serve: Win[i].closeLater = 1; WinCount=WinCount-1; break; } } }

13 1

//VIP窗口的增加

if(VIPmaxNUM-VIPminNUM>3&&Win[1].WindowState==Unopen) { Win[1].WindowState = WaitWin; VIPWinCount = VIPWinCount + 1; change = 1; }

//VIP窗口的减少

if(present-previousmaxVIPCount) { maxVIPCount = VIPmaxNUM-VIPminNUM; } else previous = present; }

if(present-previous>=VIPSERVLen) { if(maxVIPCount<3) { switch(Win[1].WindowState) { case WaitWin: Win[1].WindowState = Unopen; VIPWinCount = VIPWinCount - 1; change = 1; break; case Rest: Win[1].WindowState = Unopen; VIPWinCount = VIPWinCount - 1; change = 1; break; case Call: Win[1].closeLater = 1; VIPWinCount=VIPWinCount-1; break; case Serve: Win[1].closeLater = 1; VIPWinCount=VIPWinCount-1; break; }

14 1 previous = present; } } }

void windowWork(void) { int i;

clock_t present; present = clock(); srand(time(NULL)); //随机种子 for(i=0; i<8; i=i+1) { switch(Win[i].WindowState) { case Serve: if(present>=Win[i].start+Win[i].timeInterval) { Win[i].appraise = rand()%3 + 1;//客户满意度由随机数产生 if(Win[i].closeLater==0) { Win[i].WindowState = WaitWin;//窗口服务结束 change = 1; } if(Win[i].closeLater==1) { Win[i].WindowState = Unopen;//窗口关闭 Win[i].closeLater=0;

15 1 change = 1; } if(Win[i].restLater==1) { Win[i].WindowState = Rest;//窗口休息 Win[i].start = present; Win[i].timeInterval = rand()%((MaxRestSec-MinRestSec)*1000)+MinRestSec*1000; Win[i].restLater=0; change = 1; } } break; case Call:

if(present>=Win[i].start+Win[i].timeInterval) { Win[i].WindowState = Serve; Win[i].start = present; Win[i].timeInterval = rand()%((MaxSec-MinSec)*1000)+MinSec*1000;//客户办理业务的时间长短由随机数产生,范围在MinSec到MaxSec之间 Win[i].timeSum = Win[i].timeSum + Win[i].timeInterval;//服务时间增加 change = 1; } break; case Rest: if(present>=Win[i].start+Win[i].timeInterval) { Win[i].WindowState = WaitWin;//窗口休息结束 if(i<2) { VIPWinCount = VIPWinCount+1; } else WinCount = WinCount+1; change = 1; } break;

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育模拟银行排队取号系统 - 命令行版 - 代码 (3)全文阅读和word下载服务。

模拟银行排队取号系统 - 命令行版 - 代码 (3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1097446.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top