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

  • 33
  • 0
  • 约1.3万字
  • 约 11页
  • 2019-03-16 发布于未知
  • 举报
? HYPERLINK /yanjiashang/article/details/6359652 ?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 代码: 文件constances.h 该文件中定义了一些常量,其中MAX_WAITING_CLIENT_NUM指的是,最多正在等待的客户数,如果客户数到达最大,后来的客户将会离开。 [cpp]? HYPERLINK /yanjiashang/article/details/6359652 \o view plain view plain HYPERLINK /yanjiashang/article/details/6359652 \o copy copy #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_?*/?? ? 文件main.cpp 1、每一个窗口对应一个线程,在此创建了6个线程,分别对应4个客户窗口,1个FAST窗口中,1个VIP窗口中。 2、在这里本想用Unix中的alarm信号来控制客户的间隔时间,但因为时间不好控制就废弃了 [cpp]? HYPERLINK /yanjiashang/article/details/6359652 \o view plain view plain HYPERLINK /yanjiashang/article/details/6359652 \o copy copy #include?iostream?? #include?unistd.h?? #include?pthread.h?? #include?stdio.h?? #include?stdlib.h?? #include?time.h?? #include?numMachine.h?? #include?serviceWin.h?? #include?client.h?? #include?constances.h?? Client::ClientType?createClientType()?{?? ????int?type;?? ????type?=?rand()?%?10?+?1;?? ????if?(type?=?6)?? ????????return?Client::CLIENT_COMMON;?? ????else?if?(type?=?7??type?=?9)?? ????????

文档评论(0)

1亿VIP精品文档

相关文档