There are three major tasks in this assginemnt. The use of STL is not allowed in coding
the programs in these tasks. All deliverables must compilable in g++ with only standard
libraries.
a. Task 1
Design and implement a graph ADT, named TCSGraph, which supports unweighted
graphs. Use adjacency lists as the data structure in the ADT.
TCSGraph needs to have at least the following key member functions.
1) Addition of vertices
2) Deletion of vertices
3) Addition of edges
4) Deletion of edges
5) Modification of vertex labels
6) Saving a graph in a text file
7) Loading a graph from a text file
8) Displaying a graph by printing out the adjacency lists
The source codes of TCSGraph are to be packaged into two fies, TCSGraph.h and
TCSGraph.cpp. To exercise and test all the functions in TCSGraph, implement a
program, [login to view URL], which displays a text menu to let a user choose to execute
any of the nine functions stated above.
Deliverables :
1) Milestone 1: A design document explaining the data sturctures in the ADT, each
function implementation in English or pseudocode and the file format of the save file.
2) Milestone 2: TCSGraph.h, [login to view URL], [login to view URL] and [login to view URL] (a
sample save file of a graph with 20 - 30 vertices)
b. Task 2
Using TCSGraph, implement a program, [login to view URL], which allows a user to
enter, edit, display, save and load a course structure of a ficticious bachelor degree
program. The display of a course structure can be just a simple display of adjacency lists.
In addition, implement a function which can generate of a correct sequence of course to
take to graduate (topological sort). Implement a text menu for a user to interact with this
program.
Deliverables :
Milestone 2: [login to view URL] and [login to view URL] (a sample save file of a course
structure with 20 - 30 vertices)
c. Task 3
Using TCSGraph, implement another program, [login to view URL], which allows a user to enter,
edit, display, save and load all the flights of an airline. The display of flights can be just a
simple display of adjacency lists. In addition, implement a feature where a user can query
the program whether there are connecting flights from a place of origin to a destination.
If there are, display the connecting flights in sequence. If not, display a message
indicating so. Implement a text menu for a user to interact with this program.
Deliverables :
Milestone 2: [login to view URL] and [login to view URL] (a sample save file of a flights with 20 - 30
vertices)
4. Additional Info on Deliverables
a) Submit the design document in PDF format.
b) Source codes have to be properly formatted and documented with comments.
Executable files need not be submitted.
Criteria Max Actual Marks
Design Document
Description of data structures and save file format
Description of key member functions
TCSGraph
Addition of vertices
Deletion of vertices
Addition of edges
Deletion of edges
Modification of vertex labels
Saving a graph in a text file
Loading a graph from a text file
Displaying a graph by printing out the adjacency lists
Other member functions
CourseStructure
Use of TCSGraph
Topological Sort
MAir
Use of TCSGraph
Solving the search problem