Vous êtes sur la page 1sur 4

October 18, 2017 [COMP 1502 A3 PLANE SEAT RESERVATION SYSTEM]

Date given: Wednesday October 18, 2017


Date due: Wednesday Nov 8, 2017 at noon (i.e. just before the lecture starts)
Weight: 7% of your course grade

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

What you will need to hand in:


All your compiled and working source code
A document that contains your test plan.

How to hand your assignment in:


Put everything in a folder (named LastName_FirstName_A3) and put it into the submit drive.

Note: Read the entire assignment before starting anything!


You must use Arrays of Objects not ArrayLists

2 Basic system requirements


You are making a prototype of an airline reservation system. This version is single user only but the
basic features a user would want to have are there.

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]

3 More detailed system requirements


Input file format

Seat Layout format


The seat layout information in the file will be as follows:
The number of rows on the plane
Each row will be represented by a single line, each character represents a seat in the row
o A = Aisle seat
o W = window seat
o M = a middle seat
Note: the use of these characters is an artefact of previous versions of this assignment

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]

4 What you should do


1. Download the assignment folder from the resource drive and rename the folder
<last name>_<first name>_Asg3
2. There is a Test Requirements document which shows what requirements must be covered by the test
plan (and their point value).
3. There is a Test Plan document in the folder. This document has a Test Case template. Use this to make
test cases that cover all of the test requirements. It is okay to have a single test case cover many test
requirements. However, you need only declare a test case has met a requirement once.
4. Give the test plan file this name
<last name>_<first name>_Asg3_Testplan
5. Then start programming your assignment. As you start meeting the test requirements, create test cases
to prove you met the requirements. Then test your code with your test plan!
6. If you do not hand in a test plan you will receive no marks for
functionality

How the assignment will be marked


You will hand in your test plan with your code. Each of the test requirements that is covered by the
test plan will be given the number of points in the test requirements document if it works. When your
assignment is being marked, your professor will follow your test plan. If the test requirement is met
you will get the mark. Note that if a requirement is not covered by the test plan then it will not be
tested and no mark will be given. Note also that if you construct a test case that doesnt work you will
not get marks for any of the requirements declared in the case.

Weight of aspects of the assignment


Functionality (as determined by the test plan) 60% of assignment grade
Object Oriented Design (distribution of responsibility) 20%
Quality of Code (method design, commenting, etc.) 20%

Page 4 of 4

Vous aimerez peut-être aussi