In this assignment, you will develop a prototype for the software described above, according to the
The assignment consists of:
• A text file named [url removed, login to view], in which you outline the design decisions you have made, including
your choice of data structures and algorithms and your reasons for these choices. Your [url removed, login to view]
file shoule also include your thoughts on improving and/or extending the program, e.g. if you are
aware of more efficient data structures and/or algorithms that could be used to advantage, but
have not implemented them.
• Your program (prototype software) written in C, including a makefile that compiles your program
to make an executable called helpme.
It is strongly suggested that you think about your design carefully and start to write your [url removed, login to view]
document before you start coding. A significant number of marks are allocated to appropriate choice of
data structures and algorithms. Thinking about these carefully, before you begin to start coding, can
save you hours of false starts.
Hint: Remember that you are looking for transport into the disaster location, not from the disaster area.
Think carefully about how you want to set up your data structure(s).
See the sections on Design Notes and Assessment for more about space-time tradeoffs and using data
structures not taught in this subject.
This assignment is not staged, but if you are looking for simplifications as a way of helping plan the
development of your program, see section on Output for suggested partial solutions.
Your program will:
• Read information from a database, a single file whose name is specified as a command line argument
to the program.
The database contains identifier numbers and names and for all the cities in the network, and
specifies their disaster relief capabilities. The travel time to other towns or cities that can be
reached directly from a given city is also in the database.
See below for the exact format of this file.
• Prompt the user to give the location of the emergency, which is the name of a town or city.
• Prompt the user for the kind of supplies needed, a single code letter code for each kind of item. The
code letters are run together in a string, without spaces (details in section on Keyboard Input).
If the user does not specify which kind of supplies they need, then the program should inform the
user about the closest centre that can supply any kind of assistance.
Note that where a few different kinds of supplies are requested, it may be necessary to supply them
from a few different centres.
• Output the nearest centre or centres, as appropriate, the expected travel time to the disaster site
(for each centre if there is more than one), and the route(s) to be taken, i.e. through which other
towns listed in the database the relief transport must transit.