Question: This project is dealing with theater seating. Write a program in Java to fill a theater with seat reservations in an optimal order. You will

This project is dealing with theater seating. Write a program in Java to fill a theater with seat

reservations in an optimal order.

You will decide

what the optimal order is, and you will

design an algorithm to implement it.

3.

Assume that a theater has 16 rows of seats, and unrealistically, that every row has 11 seats,

for a total of 176 seats. Requests for seating will be generated by a random-number generator

(using the system time as the seed), and the requests will be for a minimum of 1 seat, and a

maximum of 5 seats.

4.

Your program will satisfy the requests by computing the best available seats at the time of

the request, from the point of view of the patron, not the theater. Seat requests

can not

be

split; they must fill consecutive seats in a single row. Satisfying the request will consist of

filling the specified seats with the number of the request, itself, always with 3 digits (e.g.

001, 002, 003,

etc.). An unfilled seat will be represented by three periods (i.e.

...

).

5.

When displaying the theater, you must display the row number and the seat number as labels

on the two edges of the theater (see below). The first row printed is the first row of the

theater.

For example, for a theater with only 5 rows and 4 seats per row, heres the empty theater:

1 2 3 4

1 ... ... ... ...

2 ... ... ... ...

3 ... ... ... ...

4 ... ... ... ...

5 ... ... ... ...

Assume that request 1 is for 2 seats, and assume that I think the second row middle is the

best. Then heres how the theater looks like after fulfilling request 1:

1 2 3 4

1 ... ... ... ...

2 ... 001 001 ...

3 ... ... ... ...

4 ... ... ... ...

5 ... ... ... ...

Assume that request 2 is for 1 seat, and assume that I think being closer is better than being

farther to the side. Then heres how the theater looks like after fulfilling request 2:

2

1 2 3 4

1 ... 002 ... ...

2 ... 001 001 ...

3 ... ... ... ...

4 ... ... ... ...

5 ... ... ... ...

This process is to continue until either the theater is full, or 10 consecutive requests have

been unable to be filled.

6.

It is up to you to define what constitutes the best set of seats at any given time. That makes

no single answer the right one. There are many right answers, but certainly not all answers

are right. Just using common sense, the final seating arrangement should seem reasonable to

you, and hopefully to the instructor also! Be sure to document your algorithm, and your

heuristic for deciding what constitutes the best seats.

7.

Even though your print-out is a 16x11 theater, it is very important that you do

not

solve the

problem with only the 16x11 theater in mind. Your program should be able to generate

solutions for different size theaters by just changing a couple of constants and recompiling.

This includes tiny theaters, say 1 seat!

8.

In addition to outputting the final seating arrangement, your program must also output the

following statistics:

a.

number of seats in the theater

b.

number of seats filled

c.

number of seats unfilled

d.

number of requests

e.

number of requests satisfied

f.

number of requests denied

g.

termination condition (theater full or 10 consecutive requests denied).

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!