Answer:
Check the explanation
Explanation:
PYTHON CODE :
#import random function
from random import randint
#class Queue declaration
class Queue:
#declare methods in the Queue
def __init__(self):
self. items = []
def isEmpty(self):
return self. items == []
def enqueue(self, item):
self.items. insert(0, item)
def dequeue(self):
return self. items. pop()
def size(self):
return len(self. items)
def getInnerList(self):
return self.items
#This is customer Queue
class Customer:
#declare methods
def __init__(self,n):
self.numberOfItems=n
def __str__(self):
return str(self. numberOfItems)
def getNumberOfItems(self):
return self. numberOfItems
#This is expresscheker customer queue
class Expresschecker:
def __init__(self,n):
self.numberOfItems=n
def __str__(self):
return str(self. numberOfItems)
def getNumberOfItems(self):
return self. numberOfItems
#Returns random checkout time, based on number of items
def checkOut(Expresschecker):
items = Expresschecker. getNumberOfItems()
if items <= 10:
return randint(2, 5)
if items <= 20:
return randint(6, 9)
return randint(10, 14)
#Initiate queue for the Expresschecker
Expresschecker = Queue()
#declare total customers
totalcheckoutCustomers = 10
#express Customers shopping..
for i in range(totalcheckoutCustomers):
#Each putting Between 1 to 25 items
randomItemsQty = randint(1, 25)
customer = Customer(randomItemsQty)
#Getting into queue for checkout
Expresschecker. enqueue(customer)
#====Now all express Customers having
#random qty of items are in Queue======
#intial time
totalTime=0
#define the size of the queue
totalcheckoutCustomers = Expresschecker. size()
#using for-loop until queue is empty check out
#the items in the express cheker queue
while not(Expresschecker. isEmpty()):
totalTime+=randint(1,5)
#Picking a customer
expresscustomer = Expresschecker. dequeue()
#Processing the customer
timeTaken = checkOut(expresscustomer)
#add the time for each custimer
totalTime+=timeTaken
#compute average waiting time
averageWaitingTime = totalTime/totalcheckoutCustomers
#display the average waiting time
print("Average waiting time for the express customer queue is "
+str(averageWaitingTime)+" minutes ")
print("Remaining Custimers in the express customer Queue is: ",
Expresschecker. size())
#Returns random checkout time, based on number of items
def checkOut(customer):
items = customer. getNumberOfItems()
if items <= 10:
return randint(1, 5)
if items <= 20:
return randint(6, 10)
return randint(11, 15)
#in
customersQueue = Queue()
totalCustomers = 20 #Change number of customers here
#Customers shopping..
for i in range(totalCustomers):
#Each putting Between 1 to 25 items
randomItemsQty = randint(1, 25)
customer = Customer(randomItemsQty)
#Getting into queue for checkout
customersQueue. enqueue(customer)
#====Now all Customers having random qty
#of items are in Queue======
totalTime=0
totalCustomers = customersQueue. size()
while not(customersQueue. isEmpty()):
totalTime+=randint(1,5)
#Picking a customer
customer = customersQueue. dequeue()
#Processing the customer
timeTaken = checkOut(customer)
totalTime+=timeTaken
#Result=============================
averageWaitTime = totalTime/totalCustomers
print("Average wait time for the customer queue is
"+str(averageWaitTime)+" minutes ")
print("Remaining Customers in the customer Queue is:
",customersQueue. size())