fei liang rong 1 year ago
parent c3a25676bd
commit c7d8918cdd

@ -45,7 +45,7 @@
## 1.1 问题描述
设计一个银行业务模拟系统,模拟银行的业务运行并计算一天中客户在银行逗留的平均时间。银行有 $N$ 个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数多时需分别在各个窗口前排队,对于刚进入银行的客户,如果某个窗口的业务员正在空闲,则可上前办理业务;反之,若 $N$ 个窗口均有客户正在办理业务,新来的客户便会排在人数最少的队伍后面。
设计一个银行业务模拟系统,模拟银行的业务运行并计算一天中客户在银行逗留的平均时间。银行有 N 个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数多时需分别在各个窗口前排队,对于刚进入银行的客户,如果某个窗口的业务员正在空闲,则可上前办理业务;反之,若 N 个窗口均有客户正在办理业务,新来的客户便会排在人数最少的队伍后面。
1通过人机交互的方式设定程序所需的参数银行的开门时间和关门时间营业窗口数目。
@ -61,7 +61,7 @@
解决此问题的核心数据结构是有序链表和队列
客户排队的过程是一个按照到达时间先到先接受服务的过程,这一过程可以通过队列实现。$N$ 个不同的窗口对应 $N$ 个队列,队列中每一个元素对应一个客户。
客户排队的过程是一个按照到达时间先到先接受服务的过程这一过程可以通过队列实现。N 个不同的窗口对应 N 个队列,队列中每一个元素对应一个客户。
算法中处理的事件有两类:一类是客户到来事件,另一类是客户离开事件。客户到来事件发生的时刻随客户到来自然形成,客户到来后,使用排序算法找到最短的等待队列,将客户插入队列;客户离开事件发生的时刻由银行窗口为其办理业务的完成时间决定,业务办理完成后,客户从等待队列中出队,窗口为下一个客户(如果存在的话)服务。由于程序驱动是按事件发生时刻的先后顺序进行,则事件表应是有序表,其主要操作是插入和删除事件。

@ -700,4 +700,10 @@ printf("\n");
return OK;
}
}
# 参考文献
[1] 严蔚敏, 吴伟民. 数据结构C语言版. 北京: 清华大学出版社, 2007.
[2] 作者:回到唐朝当少爷 https://www.bilibili.com/read/cv15955830 出处bilibili

Loading…
Cancel
Save