/* * Class to hold an array of Seats to mimic a film theatre. * The methods throw NotASeatException. * * Fritz Henglein (?) * Carsten Butz, October 2002 */ class FilmTheatre{ private int rows; private int seats; private Seat[][] theatre; /* Constructors */ FilmTheatre(int numRows, int numSeats){ /* Theatre constructor makes a new movie theatre with numRows rows and numSeats * seats (chairs) in each row. All seats are unreserved (unoccupied) in the beginning. */ /* Konstruktoren Theater laver en ny biografsal med numRows rækker og numSeats * stole i hver række. Alle sæder skal være ureserverede i begyndelsen. */ rows = numRows; seats = numSeats; theatre = new Seat[numRows][numSeats]; for(int row = 0; row rows || seat < 1 || seat > seats) throw new NotASeatException("Not a valid row or seat number!"); return theatre[row-1][seat-1].isOccupied(); } boolean reserve(int row, int seat) throws NotASeatException{ /* Books the seat at location (row, seat) and returns true if that seat is available. * Returns false if that seat is already reserved. */ /* Reserverer sæde (row, chair) og returnerer true, hvis det ikke allerede er reserveret. * Returnerer false, hvis sædet allerede er reserveret. */ if(row < 1 || row > rows || seat < 1 || seat > seats) throw new NotASeatException("Not a valid row or seat number!"); //System.out.println("Do we get here "); return theatre[row-1][seat-1].occupy(); } boolean cancel(int row, int seat) throws NotASeatException{ /* Cancels a seat reservation at location (row, seat) is that seat was booked, and returns * true in that case. The method returns false if that seat had not been reserved. */ /* Afbestiller sædereservering af (row, seat) hvis det er reserveret, og returnerer true i * dette tilfælde. Returnerer false, hvis sædet ikke er reserveret i forvejen. */ if(row < 1 || row > rows || seat < 1 || seat > seats) throw new NotASeatException("Not a valid row or seat number!"); return theatre[row-1][seat-1].release(); } int numReservations(){ /* Returns the number of reserved seats. */ /* Returnerer antallet af reserverede sæder. */ int count = 0; for(int i = 0; i=0; row--) { sb.append(row+1).append("\t"); for(int j = 0; j