为了简单起见,本程序添加如下限制:
1、一个收银员只负责一个结帐队列
2、每位顾客拥有相同数目的商品等待结账,并且需要相同的服务时间。
3、新顾客到达结账台的概率不会随着时间而变化。
另:程序的输入的如下:
1、模拟程序需要计算总体的运行时间。
2、为单个的顾客提供服务所需要的分钟数。
3、在下一分钟,新顾客到达收款台前排队的概率。
程序的输出是,当时间用完的时候,所服务的顾客的总数,排队中剩下的顾客的数目,以及一位顾客的平均等待时间。
假设系统的用户界面如下:
欢迎来到教育超市
请输入整体的运行时间:60
请输入每个顾客的平均服务时间:3
请输入在下一分钟新顾客到达的概率:0.2
收银员的服务汇总情况
服务的顾客总数:
队列中剩下的顾客数目:
顾客的平均等待时间:
建议的类定义如下:
另关键类的运行伪代码如下
MarketMode:
for each minute of the simulation:
Ask the Customer class to generate a new customer.
If a Customer is generated:
Cashier.addCustomer( customer)
Cashier.serveCustomers( current time)
Return cashier’s results.
Customer中的serveCustomer的伪代码
If currentCustomer is none.
If The queen is empty
return
else
Current customer =quee.pop()
totalCustomer Waittime=totalCustomerWaitTime + currentTime
– currentCustomer.arrivalTime ()
Increment customerServed
CurrentCustomer. Serve()
if currentCustomer .amountOfServiceNeeded ()==0
currentCustomer= None.
写完程序后请思考如下话题并做简短的设计说明。
- 在一天的不同时段该如何设置收银员数量?
- 顾客最大的排队时长是多少?
求给出思路和框架 作业题 实在不知道如何下手 这里需要考虑写哪些东西呢?