假设某银行有n个窗口对外接待客户,从早晨银行9点开门起到5点关门,不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。 首先从题目分析:N个窗口排队,首先就要建立N个队列来存储排队的用户信息 ,然后算出那个队列最短就用户就到那个队伍排队,同时通过随机生成他办理业务的时间和到来的时间,通过计算用户的到来时间和离开时间就可以计算出某个用户在银行的逗留时间 ;话不多说直接上代码。 下面是主函数,由用户输入银行上下班时间,计算营业多长时间Total_time,如何当前时间小于关门的时间,就一直进入customer_into();函数,用户不断的进来 #define FALSE 0 #define TRUE 1 #define QUEUE_SUM 4 //窗口的数量 int rand_business_time=0, rand_wait_time=0;//定义办理时间,等待时间变量 int Total_time=0,now_tim=0;//总时间,当前时间 int go_time[4] = {0,0,0,0};//定义数组存储每个窗口最后一位办理完业务的时间 int sum_nan[4] = {0,0,0,0};//定义数组存储每个窗口排队的人数 int Sign=TRUE; //是否关门标志位 float Sum_Wait_Time=0.0; //等待的总时间 float Sun_Nan=0.0; //总人数 int open_time;//开门时间 int off_time; //关门时间 int main() { Prompted(); printf("输入银行的24小时制营业时间:如营业时间为9:00--17:00,则应输入:9,17\n"); scanf("%d,%d", &open;_time,&off;_time); Total_time = (off_time - open_time) * 60;//计算银行总营业多少分钟 for (int i = 0; i now_time) { customer_into(); //客户进入函数 } printf("银行关门时间到不再接收客人\n\n"); for (int i = 0; i < QUEUE_SUM; i++) { DisposeQueue(&queue;[i],i);//输入在银行关门前还没有办理完业务的客户信息 } printf("平均时间为%.2f分钟",Sum_Wait_Time/Sun_Nan); /*通过各个客户的总等待时间总和/总人数算出逗留平均时间*/ _getch(); return 0; }
2019-12-21 21:48:29 12KB 银行排队系统
1
使用GUI实现银行排队叫号系统 模拟实现银行业务调度系统逻辑,具体需求如下: • 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 • 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 • 异步随机生成各种类型的客户,生成各类型用户的概率比例为: VIP客户:普通客户:快速客户 = 1 :6 :3。
2019-12-21 21:42:13 40.57MB Java GUI 多线程
1
银行排队系统(c语言源代码) 仅供粗学者们学习。
2019-12-21 21:31:42 7KB 银行排队系统
1
本项目用QT实现客户端,服务器,实例仅供参考
2019-12-21 21:31:21 394KB QT 银行排队
1
模拟银行排队的仿真系统,内含结构图,可以外部导入用户到达的时间和所选业务表,通过排队论安排最短时间。
2019-12-21 20:50:18 7.75MB 银行排队
1
银行排队本文设计了一套排队叫号系统。该系统是以排队抽号顺序为核心,客户利用客户端抽号,工作人员利用叫号端叫号;通过显示器及时显示当前所叫号数,客户及时了解排队信息,通过合理的程序结构来执行排队抽号。以提高排队等待效率,解决排队秩序混乱,前拥后挤等现象,实现排队自动化,规范化。通过该系统的使用,客户不必为排队浪费大量精力,便于管理排队秩序,同时适应信息时代管理数字化的要求,提高服务水平与质量。
2019-12-21 20:43:17 3.57MB 系统
1
该系统采用qt编写,分为client端,server端与employee端,采用udpsocket实现通讯,能够实现取号,叫号与经理检查的功能
2019-12-21 20:42:52 4.18MB 银行排队系统
1
此为我个人开发的银行叫号系统,采用多线程机制。全程模仿银行的叫号过程,程序自动运行 此为我个人开发的银行叫号系统,采用多线程机制。全程模仿银行的叫号过程,程序自动运行
2019-12-21 20:25:28 14.43MB 银行 叫号 系统 源码
1
该程序模拟客户到银行取号-排队-被叫号-被服务的过程; 2) 程序执行流程如下: Step1: 客户到达银行,并从取号机取号; Step2: 如果大厅中有空闲座位,则座下等待,否则,在大厅外等待; Step3: 银行职员如果发现有客户等待,则依次叫号服务,否则休息; Step4: step1-step4重复执行 3) 大厅中座椅数量为20个; 4) 服务窗口为2个; 5) “客户到来”通过命令行输入客户名字模拟; 6) 为了模拟实际情况,每个客户服务时间不小于20秒,可随机确定; 7) 程序顺序列出不同窗口服务客户的:名称,窗口号,服务时间 思想:程序等待一特定信号输入,若接收到该信号,则创建对应的进程。 如果目前等待态的进程个数等于座位数,则该进程阻塞。否则,进入等待态。 若等待态的进程个数小于座位数,查看是否有阻塞进程,若有则唤醒,若无,则不做任何操作。 ps:本程序在Linux下已经运行成功
1
VC6.0编译! 利用的算法类似于买票排队,你总会到队列最短的窗口去排队,但往往会有其他队列办事速度快,队列长度很快变得比你所在队列的还短,但你改变自己的队列去当前较短的队列时,可能没过多久刚刚你在的队列又比你现在所处的队列短了,因为队短不代表等待时间短,你无法预测每个队列你需要等待的时间。所以在该种制度下,不同于买票排队的这种可以随便更换队列的随意性,我们在第一种算法中设定:每到达一个客户将其排在队列最短的队尾,且不管其它队列是否变的更短,甚至已经空闲,该客户也只能在已队列中等待前面的客户办理完业务自己才能办理业务,很明显这种算法效率不是最好的。一是时间利用率不高,而是无法保证先到达的客户的办理业务时间一定比后到达的客户早。
2019-12-21 20:18:40 1.38MB C语言 队列 离散时间
1