Question
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
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 (40 points)
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 Phase (60 points)
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.
You need to implement 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 n reserved (first class or economy class)" (see Sample Run below)
displaySeating(int array[]) function displays the current Seat Assignments (see Sample Run below)
Sample Run (user input in color)
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
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started