Académique Documents
Professionnel Documents
Culture Documents
1 Overview
What you will be making: You will be making a system that will allow for the reservation of a seat
on a plane for a specific flight.
Assignment Objectives:
Design, Implement and Test a fully working program;
More practice with Java file input and output;
Demonstrate your understanding of the next level of object oriented design;
Demonstrate use of aggregate and dependency relationships between objects;
Construct a non-trivial but still basic human interface;
Construct a test plan
The following are the basic system requirements, each will be explained in more detail in the
following sections.
Database Administration
1. The system must make sure that plane configuration, client and reservation information is persisted from
one session of the program by keeping the information in txt files in a database folder. To make testing
easier the system must be able to work with different database folders.
1.1. On startup the system will ask the user for the name of the database folder.
1.2. The system will read a file in that folder that contains the plane seating format. An example file is
provided. If there is no file the system will inform the user and quit.
Page 1 of 4
October 18, 2017 [COMP 1502 A3 PLANE SEAT RESERVATION SYSTEM]
1.3. The system will read in a file containing the existing reservations. If there is no file the system will
initialize the reservation management subsystem with no existing reservations.
1.4. The system will read in a file containing the clients. If there is no file the system will initialize the
client management subsystem with no existing clients.
1.5. When system quits it must output the existing reservations and clients to the appropriately named
files in the database folder.
Client Administration
2. The system must manage clients. Client management must have the following features:
2.1. Create a new client (clients have a name and food choices)
2.2. Modify an existing client
2.3. Set food choices for the client. Possible food choices are:
a) Kosher meal
b) Vegan meal
c) Fish meal
d) Chicken meal
e) Beef Meal
2.4. Search for a client by name (necessary to modify, delete and make reservations)
2.5. List a clients reservations
2.6. Delete a clients reservation
2.7. Delete a client, including all of the clients reservations
Reservation Administration
3. The system must manage reservations. Reservation management must have the following features:
3.1. List all current reservations
3.1.1.Should be easy to read with all information in columns
3.1.2.Should show ALL reservation information (including client name and food choices)
3.2. Add a reservation for a specific seat
3.2.1.Allow the user to find a seat (see 3.3)
3.2.2.Allow the user to select the client who wants the reservation (create a new user if necessary)
3.2.3.Seats cannot be double booked
3.3. Search for open seats based upon desired requirements. That is, the user can specify whether they
would like a Window, Aisle or Middle seat and your program should list all the non-reserved seats of
that type. Of course, there should be an option to see all the seats on the plane.
3.4. Delete a specific reservation (but keep the client)
3.5. Select a reservation and modify it
3.5.1.First generate the columnar listing showing all the seats on the plane and whether or not the
seat is occupied
3.5.2.The user then selects a reservation by row and column
3.5.3.The system displays the details of the reservation and lets the user change them
Page 2 of 4
October 18, 2017 [COMP 1502 A3 PLANE SEAT RESERVATION SYSTEM]
For this assignment there are 2 types of planes, regular and narrow. A narrow plane is 4 seats
wide, all the rows in the file will be 4 characters in length. This results in a configuration like this:
A regular plane is 6 seats wide. Its rows will be 6 characters in length. This results in a configuration
like this:
But sometimes there will be rows with only 4 characters. These are first class seats and the
configuration looks like this:
This seats will be identified by their row number and column label. The column labelling is:
Column 1 = A
Column 2 = B
Column 3 = C
Column 4 = D
Column 5 = E
Column 6 = F
Note that a narrow configuration row has seats A, C, D and F.
When printing your plane, remember to leave space for the aisle between seats C and D.
The seats in column 1 are all Window. Column 2 are Middle (if it exists), 3 are Aisle, 4 are Aisle, 5
are Middle (if it exists) and 6 are Window.
Page 3 of 4
October 18, 2017 [COMP 1502 A3 PLANE SEAT RESERVATION SYSTEM]
Page 4 of 4