1. 需求:银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。
当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。
2. 分析:见图
digraph G {
fontname="kaiti";
label = "\n银行叫号系统";
node [shape = "box", fontname="kaiti"];
edge [fontname="kaiti"];
服务窗口 -> 叫号机器 [ label = "取客户",headlabel="1",taillabel="n"];
叫号机器 -> 服务号管理[headlabel="n",taillabel="1"];
node [shape = "ellipse" color="blue"] {
服务号管理 -> 产生客户并保存在队列中;
产生客户并保存在队列中 -> 客户类型;
产生客户并保存在队列中 -> 客户编号;
}
edge[dir=none];
node[shape=plaintext]{
叫号机器 -> 单例;
}
}