C++ Programming (Stack and Queue)
A company has six hiring positions with more people wanting jobs than the number of available positions. The company managers decide in order to give more people an opportunity to make money; they will allow people to work in three-month intervals. The first six people on the waiting list will be hired in the order that they are on the waiting list. The first six people will keep these positions for three months. At the end of three months, the manager will roll a dice to determine the number of people who will lose their jobs. The company will use the policy of last-hired-first-fired. For example, if the dice roll is 3, the last 3 people hired will lose their jobs to the first 3 people on the waiting list. People losing their jobs will be placed on the back of the waiting list in the order that they are fired. This process will continue for every three-month interval.
Write a program to simulate this process. Use the following guidelines.
- Use a stack to represent the list of workers.
- Use a queue to represent the list of people waiting to work.
- Simulate a manager rolling a dice by randomly generating a number 1 through 6. Note: Use the C++ function - rand(). (To use this function you may need to include or .)
- At the end of each three-month interval, show the dice value, the worker's list in the order from last hired to first hired, the waiting list in order of first to last.
- Ask the user if they want the see the workers list and the waiting list at the end of the next three months. Program ends if the user does not want to see any more.
Sample input: Ask the user for the number of people needing jobs. This number must be greater than 6. Using that number, randomly generate the list of ID numbers for the workers. An ID number should be greater than or equal to 100 and less than 1000. Make sure no two workers have the same ID. (Hint: Use the following to generate an ID number: ID = 100 + rand()% 900.)