title: Airplane seating program (2 dimensional array)
body: <p>I have an airplane seating program but I don't know how to get it to print the number of seats still available and how to get it to quit when I enter q.  Any help would be greatly appreciated.
       Yours truly,
       Quang Pham</p>
  
  <p>I'm not certain where to place the count++ to number the filled seats, and how to set the sentinel q so the program quits.  The printout of the seat arrangement is good and the X goes where it should.</p>
  
  <pre><code>import java.util.Scanner ;
  /**
   * The AirplaneSeating program asks the user for the seat they would like to reserve.
   * A layout of the plane is printed and an X is placed in the reserved seat.  The 
   * program finds if the seat is available and if the entry is valid.  A sentinel of q
   * ends the program.
   *
   * @author Quang Pham
   * @version Module8, Lab 2, 4/1/20
   * 
   *    Algorithm:
   *    
   *    1. Greet user and ask which seat they would like to reserve.
   *    2. Print a layout of the plane and the seats available. 
   *    3. Put an X in the position where the user would like to reserve.
   *    4. Loop and ask if they'd like to reserve another seat.
   *    5. Make certain seat is available and the entry is valid, if sentinel -1
   *       is entered, exit program.
   *    
   *    Problem Description:
   *    
   *    Write a program to assign passenger's seats in a small airplane.  Assume the 
   *    plane has its seats numbered as follows:
   *
   *   Row
   *    1   A B  C D  
   *    2   A B  C D
   *    3   A B  C D
   *    4   A B  C D
   *    5   A B  C D
   *    6   A B  C D
   *    7   A B  C D
   *
   *          You should verify that the user enters rows between 1 and 7 only, and
   *     columns A, B, C, or D only.  If the user enters an entry that is invalid,
   *     print an error message telling them what's wrong, then prompt for the next
   *     entry.  Model the seats in the plane using a multi-dimensional array with
   *     seven rows and four columns.  Use a loop in your program which continues to
   *     prompt for a seat to reserve until either the user specifies a sentinel to
   *     stop the program, or when all seats are reserved.
   *          After each entry from the user, the program should display the seat
   *     reservation pattern, with an 'X' marking the seats already assigned. For 
   *     example, after seats 1A, 2B, and 4C are reserved, the display might show 
   *     the following:
   *
   *  Row
   *    1   X B  C D
   *    2   A X  C D
   *    3   A B  C D
   *    4   A B  X D
   *    5   A B  C D
   *    6   A B  C D
   *    7   A B  C D
   *
   *       There are 25 seats available.  This continues until either all seats are
   *  filled or the user enters a sentinel indicating that he/she is done entering
   *  reservations.  If the user tries to reserve a seat which is already taken, the
   *  program should say that that seat is occupied and ask for another choice.
   *       Submit program files for all classes, as well as a print screen or screen
   *  snip showing what your screen looks like after 4 or 5 seats have been assigned.
   *  Be sure to demonstrate what happens when the user tries to reserve a seat that
   *  is already taken or specifies an invalid seat (for example, 9A or 5E).
   */
  public class AirplaneSeating
  {
      int count = 0 ;
      public static void main(String[] args)
      {
          // two- dimensional array with 7 rows and 4 columns 
          char[][] seats = new char [7][4] ;
          for (int i = 0; i &lt; 7; i++)
          {
              seats[i][0] = 'A' ;
              seats[i][1] = 'B' ;
              seats[i][2] = 'C' ;
              seats[i][3] = 'D' ;
          }
  
          String seatNumber = " " ; 
          int count = 0 ;
          String q = " " ;
          int numberOfSeatsAvailable = 0 ;
          int filled = 0 ;
          System.out.println("Welcome to the Airplane Seating Reservation System.") ;
          System.out.println("Please enter the seat (e.g.- 1A) you wish to reserve.") ;
          System.out.println("Enter q to exit.") ;
          Scanner keyboard = new Scanner(System.in) ;
          seatNumber = keyboard.nextLine() ;
          count++ ;
          if (seatNumber.equals("q"))
         {
              System.out.println("Program ended.") ;
              System.exit(0) ;
         } 
          else
         {
           //print seating pattern and put an X in the seatNumber location
           while((filled &lt; 28) &amp;&amp; (seatNumber.length() &gt; 0))
           {
              int row = seatNumber.charAt(0) - '1' ;
              int col = seatNumber.charAt(1) - 'A' ;
              count ++ ;
              if (row &lt; 0 || row &gt; 7 || col &lt; 0 || col &gt; 4)
              {
                  System.out.println("Input error. Enter seat to assign (e.g., '1A')," +
                      "or q to quit.");
                  seatNumber = keyboard.nextLine() ;
                  count++ ;
              }
              else
              {
                  if (seats[row][col] != 'X')
                  {
                      seats[row][col] = 'X' ;
                      filled++;
                      System.out.println(" ") ;
                      printSeats(seats);
                  }
                  if (filled &lt; 28)
                  {
                      System.out.println("Enter seat to assign (e.g., '1A')," +
                          "or q to quit.");
                      seatNumber = keyboard.nextLine();
                      count++ ;
                  }
               }
            }         
          }
      }
  
      private static void printSeats(char[][] seats)
      {
          int count = 0;
          System.out.println("Row") ;
          for (int i = 0; i &lt; seats.length; i++)
          {
              System.out.println((i + 1) + "  " + 
                  seats[i][0] + " " + seats[i][1] + "  " + seats[i][2] + " " + seats[i][3]) ;
  
          }
          count++ ;
          int numberOfSeatsAvailable = 0 ;     
          numberOfSeatsAvailable = (28 - count) ;      
          System.out.println("There are " + numberOfSeatsAvailable + " seats available.") ;
      }  //end main
  }  //end class
  </code></pre>