Answer to Question #159725 in Java | JSP | JSF for shoaib

Question #159725

Suppose a business person launches new cinema at Islamabad and ask his team to develop a ticket system for box office. He assigns some requirements about system that how should it work. The requirements are such a way that there are only '5' number of box office windows in the theatre. Each window can have at max '20' number of people waiting in line. To start with, only one window is opened. If the number of people waiting in line in that window exceeds 20, then the next window is opened and people can join the line in that window. Likewise, if both the first and second windows have n number of people waiting in each queue, then a third window is opened. This can go on until the maximum number of windows w is reached. Let us assume that once a window is opened it never closes. A new window is only opened if all open windows are full. Each person can buy only one ticket. So, the system should not allot more than one ticket per person. Let us assume that the system issues one ticket each across all open windows. When a ticket is issued, the count of the number of people in each open queue is reduced by 1.

When a new person has to join the queue, the system has to prompt him to join a queue such that they are issued a ticket as fast as possible. The system prompts the person based on these factors: o First it looks for an open window with the least number of people and prompts that window number. If more than one window has the least number of people, then the system can prompt the person to join the first window (smaller window ld) it encounters with the least number of people. If the queues of all open windows are full and a new window can be opened, then the new person is prompted to join the new queue for the new box office window. O If all queues for all windows are full, a corresponding message is displayed. That person need not be considered in the next iteration .After a queue is prompted to a person, the person or system cannot change the queue.

Implement the system based on above scenario in java using suitable data structure.


1
Expert's answer
2021-01-29T22:50:46-0500
import java.util.LinkedList;
import java.util.Queue;

public class MovieTickets{
//array of opened windows
static Queue<Integer>[] windows;

//method to get New window
public static Queue<Integer> getNewWindow(){
Queue<Integer> q
= new LinkedList<>();
return q;
}

//method to demonstrate buying a ticket
public static Queue<Integer> buyTicket(Queue<Integer> q){
q.remove();
return q;
}

//method to get window number and a new window if required
public static int getWindowNumber(Queue<Integer>[] l){
int n=0;
if(windows.length<=5){
Queue<Integer> q=getNewWindow();
windows[windows.length-1]=q;
}
for(int x=0;x<=l.length;x++){
Queue<Integer> q=l[x];
if(q.size()<20){
n=x+1;
break;
}
}
return n;
}

//method to add a new buyer to a queue
public static Queue<Integer> addNewMember(Queue<Integer> q){
q.add(1);
return q;
}

public static void main(String[] args) {
System.out.println("Welcome to Movie Tickets");
int x=getWindowNumber(windows);
if(x==0){
System.out.println("Please join new upcoming queue as we arefull right now. Thanks!!!");
}
System.out.println("Please join the window ="+x);
Queue<Integer> qAdd= addNewMember(windows[x-1]);
System.out.println("Your ticket is issued. Thank you!!!");
Queue<Integer> qMinus=buyTicket(qAdd);
}

}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog