数据结构 模拟超市收款队列

队列通常用于模拟人、汽车、飞机、业务等等的流动情况。
应用queue.java程序(Listing 4.4)的Queue类,编写一个程序模拟超市的收款队列。可以用Task2中的display()方法,显示出顾客的几条队列。
可以通过键盘录入一个特定的字母(例如’e’)来模拟一个新的顾客加入收款(可以用一个随机整数来代替每位顾客,如33,35,…。并为该顾客选择排在哪一个队列上(可选择的排队策略:按人最少,或按结账时间最短)。
收银员为每个顾客服务的时间是随机的(也可以按顾客编号的个位数,例如顾客“33”,轮到他以后,所需的结账时间为33%10=3分钟)。一旦结完账,就从队列中删除该顾客。为了简单起见,通过敲击某个特定键(例如’t’)模拟时间的流逝。例如:每点击一下键表示时间过去了1分钟。
运行界面如下图所示,分别输入:
“t”---时间流逝
“e”---顾客入队

img

“s”---显示当前队列情况

上述界面中反复出现的Checker 1~3所在的行,是模拟当时收银台对应的顾客队列。
33、35、69模拟等待结账的顾客编号。数字消失表示顾客已经结账离开。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。