下载此文档

c++版模拟银行窗口排队叫号系统.doc


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
c++版模拟银行窗口排队叫号系统
c++版模拟银行窗口排队叫号系统 
看了两位LZ的银行排队系统blog,感觉不错,就也产生了用C++写个排号系统,原因有二,1、对Java不太熟悉,没有看太懂。2、练练手。3、提高一下C++的人气。
进入主题:
对于这一块的业务系统需求没有做过多的分析,只在两位LZ的基础做了小小的改动,然后用C++实现。
题目:
模拟实现银行业务调度系统逻辑,具体需求如下:
    银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。
    有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。
    异步随机生成各种类型的客户,生成各类型用户的概率比例为:
        VIP客户:普通客户:快速客户  =  1 :6 :3。
    客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。
    各类型客户在其对应窗口按顺序依次办理业务。
    当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。
    随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。
    不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。
修改:1、在这里为了简化程序的设计(只省了只行代码),FAST和VIP窗口只办理对应的客户,不办普通客户的业务。
      2、由于对于客户的到来,也采用1S来一个的做法,但因为在console程序对于时间不太好控制,在这里只是设定了客户数,即每个1秒来一个客户,根据来的客户数控制时间。
开发环境:Linux
代码:

该文件中定义了一些常量,其中MAX_WAITING_CLIENT_NUM指的是,最多正在等待的客户数,如果客户数到达最大,后来的客户将会离开。
[cpp] view plaincopy
#ifndef CONSTANCES_H_  
#define CONSTANCES_H_  
enum {  
    MAX_SERVICE_TIME = 10,  
    MIN_SERVICE_TIME = 1,  
    CLIENT_INTERVAL_TIME = 1,  
    MAX_WAITING_CLIENT_NUM = 50,  
    MAX_CLIENT_NUM = 100,  
};  
#endif /* CONSTANCES_H_ */  
 

1、每一个窗口对应一个线程,在此创建了6个线程,分别对应4个客户窗口,1个FAST窗口中,1个VIP窗口中。
2、在这里本想用Unix中的alarm信号来控制客户的间隔时间,但因为时间不好控制就废弃了
[cpp] view plaincopy
#include <iostream>  
#include <>  
#include <>  
#include <>  
#include <>  
#include <>  
#include ""  
#include ""  
#include ""  
#include ""  
Client::ClientType createClientType() {  
    int type;  
    type = rand() % 10 + 1;  
    if (type <= 6)  
        return Client::MON;  
    else if (type >= 7 && type <= 9)  
        return Client::CLIENT_FAST;  
    return Client::CLIENT_VIP;  
}  
int createTasktime() {  
    return rand() % MAX_SERVICE_TIME + 1;  
}  
void createClient() {  
    Client::ClientType clientType;  
    int t

c++版模拟银行窗口排队叫号系统 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人plm860108
  • 文件大小75 KB
  • 时间2018-05-18