Problem Description:

A small airline has just purchased a computer for its new automated reservations system. The president has asked you to program the new system.

Youll write a C program to assign seats on each flight of the airlines only plane (capacity: 10 seats).

Your program should display the following menu of alternatives:

Please type 1 for first class
Please type 2 for economy

If the person types 1, then your program should assign a seat in the first class section (seats 1 5). If the person types 2, then your program should assign a seat in the economy section (seats 6 10). Your program should then print a boarding pass indicating the person's seat number and whether its in the first class or economy section of the plane.

Use an array to represent the seating chart of the plane. Initialize all the elements of the array to 0 to indicate that all seats are empty. As each seat is assigned, set the corresponding element of the array to 1 to indicate that the seat is no longer available.

Your program should, of course, never assign a seat that has already been assigned. When the first class section is full, your program should ask the person if its acceptable to be placed in the economy section (and vice versa). If yes, then make the appropriate seat assignment. If no, then print the message "Next flight leaves in 3 hours."

Part 1: Problem-Solving Phase

Using the Design Recipe, write each of the following for this problem:

  • Contract
  • Purpose Statement
  • Examples, making sure to include counter-examples
  • Algorithm

Make sure to test your algorithm by hand with the examples to verify it before continuing to Part 2.

Part 2: Implementation

Using Eclipse, write the C program for the algorithm formulated in Part 1, and test your program with the examples from Part 1. Make sure to incorporate your Contract, Purpose Statement and Examples as one or more comment blocks, and your Algorithm as line comments in your C source code.

Extra Credit

You will be awarded 10 additional points each for implementing the following C functions, and using (calling) them in the program (main function):

  • findEmptySeat(int array[], int start, int end) -> int
    function returns the index of the first empty seat in the given int array between the indexes that are >= start and < end; if there are no empty seats, function returns -1
  • reserveSeat(int array[], int seatNo)
    function reserves the seatNo in the array, and displays the seat assignment as "Seat number nreserved (first class or economy class)" (see Sample Run below)
  • displaySeating(int array[])
    function displays the current Seat Assignments (see Sample Run below)

Sample Run

Welcome to the Airline Reservation System (ARS)

Please type 1 for first class
Please type 2 for economy
1

Seat number 1 reserved (first class)

Seat Assignments: FC: X _ _ _ _ EC: _ _ _ _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
2

Seat number 6 reserved (economy class)
Seat Assignments: FC: X _ _ _ _ EC: X _ _ _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
1

Seat number 2 reserved (first class)

Seat Assignments: FC: X X _ _ _ EC: X _ _ _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
1
Seat number 3 reserved (first class)

Seat Assignments: FC: X X X _ _ EC: X _ _ _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
2

Seat number 7 reserved (economy class)

Seat Assignments: FC: X X X _ _ EC: X X _ _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
1
Seat number 4 reserved (first class)

Seat Assignments: FC: X X X X _ EC: X X _ _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
1

Seat number 5 reserved (first class)

Seat Assignments: FC: X X X X X EC: X X _ _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
1
Seat number 8 reserved (economy class)

Seat Assignments: FC: X X X X X EC: X X X _ _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
2

Seat number 9 reserved (economy class)

Seat Assignments: FC: X X X X X EC: X X X X _
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
1

Seat number 10 reserved (economy class)

Seat Assignments: FC: X X X X X EC: X X X X X
1 2 3 4 5 6 7 8 9 10


Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
1

Next flight leaves in 3 hours.

Another reservation (y/n)? y

Please type 1 for first class
Please type 2 for economy
2

Next flight leaves in 3 hours.

Another reservation (y/n)? n
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.