class CashBooth: def __init__(self): self.total = 0 self.ticketsCurrentlyBeingSold = 0 self.costOfTicketsBeingSold = 0 self.timeLeftWithCustomer = 0 self.timeNeededToBuyTickets = 0 self.costPerTicket = 0.25 self.line = Line() self.avgTransactionTime = 120 self.inProgress = False self.person = Person() def InitializeTransaction(self): if self.line.HasNext(): self.ticketsCurrentlyBeingSold = 150 self.costOfTicketsBeingSold = float(150 * 0.25) self.person = self.line.GetPerson() self.timeNeededToBuyTickets = (150 / 10) + self.avgTransactionTime self.timeLeftWithCustomer = self.timeNeededToBuyTickets self.inProgress = True return True else: return False def GetProgress(self): self.timeLeftWithCustomer -= 1 if self.timeLeftWithCustomer == 0: return True else: return False def FinishTransaction(self): self.total += self.costOfTicketsBeingSold self.inProgress = False self.person.AddTickets(self.ticketsCurrentlyBeingSold) self.line.DecrementLineCount() return self.person def GetTotal(self): return self.total def AddToLine(self, person): self.line.AddPerson(person)
class ExpressBooth: def __init__(self): self.inProgress=False self.total=0 self.ticketsCurrentlyBeingSold=200 self.costOfTicketsBeingSold=50.00 self.timeToBuyTickets=15 self.timeLeftWithCustomer=0 self.line = Line() self.person = Person() def InitializeTransaction(self): if self.line.HasNext(): self.person = self.line.GetPerson() self.timeLeftWithCustomer=self.timeToBuyTickets self.inProgress=True return True else: return False def GetProgress(self): self.timeLeftWithCustomer-=1 if self.timeLeftWithCustomer==0: return True else: return False def FinishTransaction(self): self.total+=50.00 self.inProgress=False self.person.AddTickets(200) self.line.DecrementLineCount() return self.person def GetTotal(self): return self.total def AddToLine(self,person): self.line.AddPerson(person)