Question: In C++, simulate a big box store utilizing a queue. The input will be as follows: 4 // the length of the simulation, in minutes

In C++, simulate a big box store utilizing a queue. The input will be as follows:

4 // the length of the simulation, in minutes

3 // the number of registers

3 // the maximum line length

M // S for a single line, M for multiple lines

40 // register 1 takes 40 seconds

60 // register 2 takes 60 seconds

50 // register 3 takes 50 seconds

After reading in the input, the simulator will have everything needed to get started. The next lines of input will be as follows, with "END" signaling the end of customer arrivals.

4 20 5 30 3 35 6 40 8 60 7 70 5 85 9 90 4 110 2 120 4 130 1 135 2 150 6 180 END

The first number indicates the amount of customers trying to fall in line. The second number indicates the arrival time, in seconds. The output of your simulator consists of two sections:

  • The log, which indicates each time an "interesting" event occurs. The log begins with the word LOG alone on a line, followed by one line of output for each event. Each line of output describing an event consists of an integer simulation time (the number of seconds since the simulation started), a space, and then a description of the event. The following kinds of events are required to be logged:
    • The simulation started
    • The simulation ended
    • A customer entered a line, in which case we want to know which line number and how long the line is now (including the new customer)
    • A customer exited a line, in which case we want to know which line number and how many seconds the customer waited in that line
    • A customer entered a register, in which case we want to know which register number
    • A customer exited a register, in which case we want to know which register number there's no need to see how long they waited, as this is always the same for a given register
    • A customer has been lost (i.e., they left without waiting in line because all lines were maximum length)
  • The "stats" section. This section begins with a blank line (to separate it from the log visually), followed by the word STATS alone on a line, followed by these statistics:
    • How many customers entered a line during the simulation
    • How many customers exited a line during the simulation
    • How many customers exited a register during the simulation we don't show many customers entered a register, because every customer who exits a line immediately enters a register
    • The average wait time, in simulation seconds, for customers who exited a line. We only care about how long they waited in line, and we only measure this for customers who exited a line; customers still remaining in line at the end of the simulation are not included. Display this value to two digits after the decimal point.
    • How many customers are still left in line at the end of the simulation (i.e., they've entered a line but not exited it yet)
    • How many customers are still left at a register at the end of the simulation (i.e., they've entered a register but not exited it yet)
    • How many customers were lost during the simulation

Format should be as follows:

LOG 0 start 20 entered line 1 length 1 20 entered line 2 length 1 20 entered line 3 length 1 20 entered line 4 length 1 20 exited line 1 length 0 wait time 0 20 entered register 1 20 exited line 2 length 0 wait time 0 20 entered register 2 20 exited line 3 length 0 wait time 0 20 entered register 3 20 exited line 4 length 0 wait time 0 20 entered register 4 30 entered line 1 length 1 30 entered line 2 length 1 30 entered line 3 length 1 30 entered line 4 length 1 30 entered line 5 length 1 30 exited line 5 length 0 wait time 0 30 entered register 5 35 entered line 5 length 1 35 entered line 6 length 1 35 entered line 7 length 1 35 exited line 6 length 0 wait time 0 35 entered register 6 35 exited line 7 length 0 wait time 0 35 entered register 7 40 entered line 6 length 1 40 entered line 7 length 1 40 entered line 8 length 1 40 entered line 1 length 2 40 entered line 2 length 2 40 entered line 3 length 2 40 exited line 8 length 0 wait time 0 40 entered register 8 60 entered line 8 length 1 60 entered line 4 length 2 60 entered line 5 length 2 60 entered line 6 length 2 60 entered line 7 length 2 60 entered line 8 length 2 60 entered line 1 length 3 60 entered line 2 length 3 60 exited register 1 60 exited line 1 length 2 wait time 30 60 entered register 1 60 exited register 3 60 exited line 3 length 1 wait time 30 60 entered register 3 65 exited register 4 65 exited line 4 length 1 wait time 35 65 entered register 4 70 entered line 3 length 2 70 entered line 4 length 2 70 entered line 1 length 3 70 entered line 3 length 3 70 entered line 4 length 3 70 entered line 5 length 3 70 entered line 6 length 3 70 exited register 2 70 exited line 2 length 2 wait time 40 70 entered register 2 80 exited register 5 80 exited line 5 length 2 wait time 45 80 entered register 5 80 exited register 6 80 exited line 6 length 2 wait time 40 80 entered register 6 85 entered line 2 length 3 85 entered line 5 length 3 85 entered line 6 length 3 85 entered line 7 length 3 85 entered line 8 length 3 90 lost 90 lost 90 lost 90 lost 90 lost 90 lost 90 lost 90 lost 90 lost 95 exited register 7 95 exited line 7 length 2 wait time 55 95 entered register 7 100 exited register 1 100 exited line 1 length 2 wait time 60 100 entered register 1 100 exited register 3 100 exited line 3 length 2 wait time 60 100 entered register 3 105 exited register 8 105 exited line 8 length 2 wait time 45 105 entered register 8 110 entered line 1 length 3 110 entered line 3 length 3 110 entered line 7 length 3 110 entered line 8 length 3 110 exited register 4 110 exited line 4 length 2 wait time 50 110 entered register 4 120 entered line 4 length 3 120 lost 120 exited register 2 120 exited line 2 length 2 wait time 80 120 entered register 2 125 exited register 6 125 exited line 6 length 2 wait time 65 125 entered register 6 130 entered line 2 length 3 130 entered line 6 length 3 130 lost 130 lost 130 exited register 5 130 exited line 5 length 2 wait time 70 130 entered register 5 135 entered line 5 length 3 140 exited register 1 140 exited line 1 length 2 wait time 80 140 entered register 1 140 exited register 3 140 exited line 3 length 2 wait time 70 140 entered register 3 150 entered line 1 length 3 150 entered line 3 length 3 155 exited register 4 155 exited line 4 length 2 wait time 85 155 entered register 4 155 exited register 7 155 exited line 7 length 2 wait time 95 155 entered register 7 170 exited register 2 170 exited line 2 length 2 wait time 110 170 entered register 2 170 exited register 6 170 exited line 6 length 2 wait time 100 170 entered register 6 170 exited register 8 170 exited line 8 length 2 wait time 110 170 entered register 8 180 entered line 2 length 3 180 entered line 4 length 3 180 entered line 6 length 3 180 entered line 7 length 3 180 entered line 8 length 3 180 lost 180 exited register 1 180 exited line 1 length 2 wait time 110 180 entered register 1 180 exited register 3 180 exited line 3 length 2 wait time 110 180 entered register 3 180 exited register 5 180 exited line 5 length 2 wait time 110 180 entered register 5 200 exited register 4 200 exited line 4 length 2 wait time 130 200 entered register 4 215 exited register 6 215 exited line 6 length 2 wait time 130 215 entered register 6 215 exited register 7 215 exited line 7 length 2 wait time 130 215 entered register 7 220 exited register 1 220 exited line 1 length 1 wait time 110 220 entered register 1 220 exited register 2 220 exited line 2 length 2 wait time 135 220 entered register 2 220 exited register 3 220 exited line 3 length 1 wait time 110 220 entered register 3 230 exited register 5 230 exited line 5 length 1 wait time 145 230 entered register 5 235 exited register 8 235 exited line 8 length 2 wait time 150 235 entered register 8 240 end

STATS Entered Line : 53 Exited Line : 40 Exited Register : 32 Avg Wait Time : 68.12 Left In Line : 13 Left In Register: 8 Lost : 13

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!