Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Must be in java Instructions Write a program that simulates customers waiting in line at a grocery store. Your program must use a Queue to

Must be in java

Instructions

Write a program that simulates customers waiting in line at a grocery store. Your program must use a Queue

to represent the customer objects waiting in line.

A Customer class is provided for you (Code for that is down below). You

must use that class, without alternations, for the creation of your Customer objects. You must analyze the class and use the provided methods to achieve the desired functionality of the program. You will also need to create two additional classes. The first

will be a Linked List Queue that will represent the data structure for holding your Customer objects. The

second is a driver where your store simulation will take place.

The program (driver) should simulate 60 minutes of activity at the store. Each iteration of your program should

represent one minute. At each iteration (minute), your program should do the following:

Check to see if new customers are added to the queue. There is a 25% chance that new customers

show up (need to be added to the queue) every minute. This does not mean you should add a

customer every four iterations, but rather each iteration should have its own 25% chance.

Update the customer object currently being serviced (if one exists). This will be the customer object at

the front of the queue. If the customer has been completely serviced, remove them from the queue.

During execution, your program should output the following information:

When a new customer is added to the queue, output,

New customer added! Queue length is now X

where X is the size of the queue after the new customer has been added.

When a customer has been completely serviced, output,

Customer serviced and removed from the

queue. Queue length is now X

where X is the size of the queue after the customer has been

removed.

At the end of each iteration (minute), output,

---------------------------------------------------

to visually

identify the passing of time.

When your simulation ends, your program should also output the following information:

Total number of customers serviced

Maximum line length during the simulation

Customer.java

import java.util.Random;

public class Customer {

private int serviceTime; // ServiceTime for

this Customer

private Customer next;

/// Constructor

public Customer() {

serviceTime = new Random().nextInt(5) + 1; // Randomly

assign required service time 1-5

next = null;

}

// Getter for next Customer in list

public Customer getNext(){

return next;

}

// Setter for next reference

public void setNext(Customer c){

next = c;

}

/// Getter for ServiceTime

public int getServiceTime() {

return serviceTime;

}

/// Decrement ServiceTime by 1

public void decServiceTime() {

serviceTime--;

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database And Expert Systems Applications Dexa 2023 Workshops 34th International Conference Dexa 2023 Penang Malaysia August 28 30 2023 Proceedings

Authors: Gabriele Kotsis ,A Min Tjoa ,Ismail Khalil ,Bernhard Moser ,Atif Mashkoor ,Johannes Sametinger ,Maqbool Khan

1st Edition

303139688X, 978-3031396885

More Books

Students also viewed these Databases questions