Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need help writing this program in JAVA, this is an introductory java course, s

ID: 3822882 • Letter: I

Question

I need help writing this program in JAVA, this is an introductory java course, so if possible, keep it as basic/simple as possible while still following the instructions. The output should look like the sample execution at the end of the problem.

Design a program that will simulate how theater seats may fill as people walk into the theater. The program should maximize the distance between each person by trying to find a seat in the middle of the longest sequence of unoccupied seats.

For example, consider the situation where ten seats are empty.
_ _ _ _ _ _ _ _ _ _

The first person will occupy a middle position:
_ _ _ _ _ X _ _ _ _

The next person will be in the middle of the empty area at the left (left has more seats).
_ _ X _ _ X _ _ _ _

The next person will be in the section to the right:
_ _ X _ _ X _ _ X _

The rest of the diagram should fill in as follows:

_ X X _ _ X _ _ X _
_ X X _ X X _ _ X _
_ X X _ X X _ X X _
X X X _ X X _ X X _
X X X X X X _ X X _
X X X X X X X X X _
X X X X X X X X X X

Write a program that asks the user for the number of seats and then prints out diagrams (one diagram per line) in the format give above each time a new person occupies a seat. In the above example, you would print a total of 11 diagrams (one per line), the empty diagram and then 10 additional diagrams.

HINT: Use an array of booleans to solve this problem. If a person is occupying a seat, that position should be true.

Explanation / Answer

import java.util.Scanner;


public class Seating {
  
public static void printSeat(boolean[] seating)
{
for(int i = 0; i < seating.length; i++)
{
if (seating[i])
{
System.out.print("X ");
}
else
{
System.out.print("_ ");
}
}
System.out.println();
}
  
public static int getPosition(boolean[] seats)
{
int maxLength = 0;
int maxi = 0;
int length = 0;
int lengthi = 0;
for (int j = 0; j < seats.length; j++)
{
if (!seats[j])
{
length++;
}
else
{
if (length > maxLength)
{
maxLength = length;
maxi = lengthi;
}
length = 0;
lengthi = j+1;
}
}
if (length > maxLength)
{
maxLength = length;
maxi = lengthi;
}
return (maxi + (maxLength)/2);
}
  
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("Enter number of seats: ");
int n;
n = sc.nextInt();
sc.close();
  
boolean seats[] = new boolean[n];
  
printSeat(seats);
for(int i = 1; i <= n; i++)
{
seats[getPosition(seats)] = true;
printSeat(seats);
}
}

}

Sample run

Enter number of seats: 11
_ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ X _ _ _ _ _
_ _ X _ _ X _ _ _ _ _
_ _ X _ _ X _ _ X _ _
_ X X _ _ X _ _ X _ _
_ X X _ X X _ _ X _ _
_ X X _ X X _ X X _ _
_ X X _ X X _ X X _ X
X X X _ X X _ X X _ X
X X X X X X _ X X _ X
X X X X X X X X X _ X
X X X X X X X X X X X

Enter number of seats: 30
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ X _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ X _ _ _ _ _ _ _ X _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ X _ _ _ _ _ _ _ X _ _ _ _ _ _ _ X _ _ _ _ _ _
_ _ _ X _ _ _ X _ _ _ _ _ _ _ X _ _ _ _ _ _ _ X _ _ _ _ _ _
_ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ _ _ _ _ X _ _ _ _ _ _
_ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ _ _ _
_ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _
_ X _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _
_ X _ X _ X _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _
_ X _ X _ X _ X _ X _ X _ _ _ X _ _ _ X _ _ _ X _ _ _ X _ _
_ X _ X _ X _ X _ X _ X _ X _ X _ _ _ X _ _ _ X _ _ _ X _ _
_ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ _ _ X _ _ _ X _ _
_ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ _ _ X _ _
_ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ _
_ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X
X X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X
X X X X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X
X X X X X X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X
X X X X X X X X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X
X X X X X X X X X X _ X _ X _ X _ X _ X _ X _ X _ X _ X _ X
X X X X X X X X X X X X _ X _ X _ X _ X _ X _ X _ X _ X _ X
X X X X X X X X X X X X X X _ X _ X _ X _ X _ X _ X _ X _ X
X X X X X X X X X X X X X X X X _ X _ X _ X _ X _ X _ X _ X
X X X X X X X X X X X X X X X X X X _ X _ X _ X _ X _ X _ X
X X X X X X X X X X X X X X X X X X X X _ X _ X _ X _ X _ X
X X X X X X X X X X X X X X X X X X X X X X _ X _ X _ X _ X
X X X X X X X X X X X X X X X X X X X X X X X X _ X _ X _ X
X X X X X X X X X X X X X X X X X X X X X X X X X X _ X _ X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X _ X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X