Vous êtes sur la page 1sur 4

TCP1201 Object-oriented Programming and Data Structures

Trimester 2, Session 2015/2016

Based on the class diagram given above, implement a console-based tourist information system providing information
about tourist attractions in various cities. The administrator of the system will specify the necessary information and
tourists will view the information by choosing from a text-based menu. A search feature is not required by this system.
Before implementing the system, do an analysis to identify all the necessary data members and member functions
required by each class taking into consideration special functions like constructors and copy constructors. Add more
classes, for example, for new types of attractions, to your design if needed to make it a comprehensive tourist
information system. You may also add more features to the system beyond the user requirements listed below. Modify
the given class diagram accordingly.

Milestone 1
User Requirements
- A city has many attractions and the attractions can be classified into various types. To view the detailed information of
an attraction, a tourist will first choose a city from a list of cities displayed in alphabetical order, the type of attraction
from a list of attraction types and then the attraction itself. He can also choose a city and then choose from a list of all
attractions in the city without choosing a type of attraction. The maximum number of attractions per city must not be
fixed in the system.
- The user interface has to be user-friendly so that users can navigate with ease. Design a console-based user interface
for the system.

Technical Requirements
- For Milestone 1 only, the data of cities, types of attractions and attractions can be hardcoded in the source code.
- The system should use containers and algorithms in the standard template library where appropriate.
- Your code must be compiled with only the standard g++ libraries. Do not use third-party libraries you might find
online elsewhere.

Milestone 2
User requirements
- Extend the system to store the names of cities connected by direct flights. Support this feature accordingly with the
appropriate user interface.
- A tourist can ask the system whether city A and city B are connected by flights, either direct or indirect. Use an ADT
stack to implement this feature.
- Allow only the system administrator to add and remove data from the system via a user interface. He is also allowed to
save the data entered into a text file and load the data from the text file.
Technical requirements.
- Make the Attraction class an abstract class
- Apply the concept of polymorphism to display attractions
- The use of the standard template library is not allowed in Assignment 2. Use the code of the appropriate ADT's you
have learned so far in this course.
- Your code must be compiled with only the standard g++ libraries. Do not use third-party libraries you might find
online elsewhere.

Items to be Submitted
1. Documented source code
2. A Class diagram
3. A pdf file showing how the system can be used, accompanied by screenshots.
This is an individual assignment. STRICTLY NO COPYING from other sources except codes given in this course. If
detected all parties involved will get 0 marks.

Milestone 1 Mark Sheet


Max
Documentation of the code

Class Diagram

Marks

Features
a. City selection

b. Attraction selection

c. Type selection

d. Attraction display

e. Use of STL

TOTAL

Milestone 2 Mark Sheet


Max
Documentation of the code

Class Diagram

Marks

Features
a. Abstract class

b. Polymorphism

c. ADT

d. City connection

f. Support for the administrator

TOTAL

12

Each feature will be evaluated based on fulfillment of requirements, correctness, compilation without warnings and
errors, error free during runtime, basic error handling, quality of comments and operation contracts, user friendliness,
and good coding format and style.
Students who score less than 5 marks in Milestone 1 will be allowed to resubmit Milestone 1 together with Milestone 2.
Resubmitted Milestone 1 will be marked to a maximum of 5 marks only.
8. Submission Instruction

a. Create a folder in the following format:


TUTORIALSECTION_M1_FULLNAME

b. Place ONLY your files of formats .cpp, .h and PDF in the folder. DO NOT place your .exe file in the
folder.

c. Zip your folder to create a zip (M1_WAN_NOR_ATIKAH.zip) archive .


2. Send the zipped file to your respective tutor before the deadline. The email title should be TCP1201 M1 Submission

a. Late submission will be detected through the system clock.


Note: Some tutors may request for printed copy to be submitted.
This will be announced by the respective tutors.

3. Additional Information
a. 2 marks will be deducted if the submission instructions are not followed.
b. You are expected to make sure that your code is easily readable. Pay attention to indentation.
c. In your .cpp and .h files, insert appropriate comments to help others to understand your code.
d. For ALL your .cpp and .h files, insert the following info at the header:
/*************************************
Program: YOUR_PROGRAM_NAME.cpp
Course: OOPDS
Year:
2008/09 Trimester 3
Name:
WAN NOR ATIKAH
ID:
10710045678
Lecture: TC101
Lab:
TC201
Email:
abc123@zmail.com
Phone:
018-1234567
*************************************/

Vous aimerez peut-être aussi