Project 2 : Incoming Flights Display Simulation - Advanced
Due : 9.30am, 31 July
Expand upon, enhance, and reorganize the program written for Project One to
incorporate the following features and programming techniques:
- Use Object-Oriented-Programming
-
Specifically, at the very least, you
are required to create one class definition for the data corresponding to each
flight, possibly called Flight (convert the struct into a class)
and one class definition for the data structure, possibly called FlightList
(encapsulating the data storage and the functions to manipulate
the data structure).
You may use more class definitions if you wish to do so.
-
As far as possible, use private data variables in your classes and access
them through appropriate public accessor functions. Make the accessor functions
inline so as to improve speed of execution.
- Use Separate Compilation.
-
Specifically, each class should be split into
a header and a CPP file, with the declaration in the header file and the
definitions in the CPP file.
-
Use conditional directives to avoid multiple inclusions of the same files.
- Use a Linked List as the data structure to store the list of flights.
- As far as possible, use a Singly Linked List (no Prev pointers)
- Include an appropriate constructor and destructor to initialize and
destroy the data structure.
- Include functions to manipulate the data structure in order to
Add, Delay and Remove flights.
- Your program must be able to read in and process an initial file, whose
name is supplied on the command-line, before presenting the regular interactive
interface to thse user. If no filename is specified, the program must start with
an empty list as before.
The program must still satisfy all the requirements of the previous project,
with the notable exception that there should no longer be a restriction of 100
flights (since we are now using a linked list as opposed to a static array). However,
the program is still to display only the earliest 5 flights.
The user interface must be identical to before. Only the internal organization
of the program and the data must change.
Sample Screen Display
Flight Arrivals
Airline Flight From Time Date Status
------- ------ ---- ---- ---- ------
Delta 7248 Atlanta 08:10 07/04 OnTime
Mauritius 657 Mozambique 08:25 07/04 OnTime
Lufthansa 105 Frankfurt 20:12 07/04 OnTime
Virgin 212 Kingston 08:00 07/05 OnTime
PanAm 411 Paris 10:00 07/05 OnTime
Options: [A]dd Flight / [R]emove / [D]elay / [L]oad from disk / [Q]uit
Submission
- Submit a .zip file (created by WinZip or PKZip) containing all your
source files, header files, test data, and workspace files. It must be possible for us to
recompile your project based on the files you submit - please test this before
submission. Do not submit .exe, .obj or any intermediate files
like precompiled headers. Your projects must be submitted through the
JAVA online submission system or
Non-JAVA submission
system.
- Make a printout of your source code and some relevant screen dumps and
submit these in paper form.
- There will be no demonstration for the project.
Last updated : 18 July 2000 11.14am