Overview

This program is to support the client-side of an airline reservation system for airline reservation agents. The program does not manage user accounts, it only shows status of the flights. It allows the reservation agent to perform basic functions such as book and cancel reservations, display information such as boarding passes and seat assignments on the flight.

NOTE: All data for flights, passengers, etc. should be read from a file at the start of the program. The program should only save data back to file when given a command by the user and when the program is exiting.

Detailed Description

The system should allow a user to perform the following functions:

  • Book a new reservation
  • Cancel a reservation
  • Display boarding pass for a passenger
  • Display flight schedule (sorted by any field)
  • Display available cities (sorted by name or code)
  • List passengers on a given flight and seat assignments (sorted by name or seat)

The airline has two types of aircraft. The type A plane irst has 5 rows. Each row has seats A, B, C, and D arranged as the following (The aisle is indicated with an X):

1A 1B X 1C 1D
2A 2B X 2C 2D
3A 3B X 3C 3D
4A 4B X 4C 4D
5A 5B X 5C 5D

The second ptype of plane has 5 rows with seats A, B, and C in the following configuration:

1A X 1B 1C
2A X 2B 2C
3A X 3B 3C
4A X 4B 4C
5A X 5B 5C

The airline flies between the following cities:

ATL Atlanta
ORL Orlando
DFW Dallas/Fort Worth
NYC New York City
HAW Hawaii
CHI Chicago
LAX Los Angeles

The flight schedule is the same every day of the week. The following table contains the flight information to be used for reservations:

From To Depart Time Arrival Time Flight number Aircraft type Frequent Flyer points
HAW LAX 04:15 15:15 602 A 1000
NYC DFW 9:00 11:30 1201 B 500
NYC DFW 12:00 14:30 1202 B 500
NYC DFW 16:00 18:30 1203 B 500
NYC CHI 10:12 12:12 902 A 500
NYC CHI 18:24 20:24 903 A 500
NYC ORL 11:30 1:00 202 B 700
NYC ORL 17:30 19:00 204 A 700
DFW NYC 9:00 11:30 1204 B 500
DFW NYC 12:00 14:30 1205 B 500
DFW NYC 16:00 18:30 1206 B 500
DFW ORL 12:30 15:30 302 B 700
DFW ORL 14:30 17:30 304 A 700
DFW ORL 19:30 22:30 306 B 700
CHI NYC 9:00 11:00 904 B 500
CHI NYC 19:00 21:00 905 A 500
ORL HAW 14:30 1:30 601 B 2000
ORL NYC 8:30 10:30 201 B 700
ORL NYC 14:30 16:00 203 A 700
ORL NYC 19:30 21:20 205 A 700
ORL DFW 9:30 12:00 301 B 700
ORL DFW 13:30 16:00 303 B 700
ORL DFW 17:30 20:00 305 B 700
ORL ATL 09:00 9:31 101 A 500
ORL ATL 11:00 11:31 103 A 500
ORL ATL 13:00 13:31 105 A 500
ORL ATL 15:00 15:31 107 A 500
ORL ATL 17:00 17:31 109 A 500
ATL ORL 08:00 8:31 100 A 500
ATL ORL 10:00 10:31 102 A 500
ATL ORL 12:00 12:31 104 A 500
ATL ORL 14:00 14:32 106 A 500
ATL ORL 16:00 16:30 108 A 500

Your system must make sure that a flight is not overbook, and if a flight is booked it should suggest other flights to the same destination. The boarding pass should include the flight details including the seat number and the number of frequent flyer miles that can be earned.

Input

The input is all done via interactive data entry. You may use menus, commands, etc. The interface is your choice.

Output

Output is done to the screen, but the program should also save all data between execution using one or more files. This means that when the system restarts, the reservations that have been made should reload.

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.