Travel Agency Booking System

Document Sample
Travel Agency Booking System Powered By Docstoc

                                 CSC 330 – Project 1
                  Travel Agency Booking System
Project Goal: To analyse, design and implement in C++, a system for managing the bookings
of a travel agency. Inheritance and polymorphism must be used appropriately in the design. The
user interface is assumed to be a simple scrolling text based interface.

Functional Requirements
When the system starts there will be no customers or bookings recorded in the system (i.e., it is
not necessary to save and restore entries between sessions). The interface to the system will be a
simple text-based menu system. The main menu should be displayed as following:

Please select from the following

1. Add a new customer
2. Select a customer
3. Add a booking
4. Record a payment
5. Print an invoice
6. Select a booking
7. Cancel a booking
8. Quit


When a new customer arrives, their personal details are entered into the system. For example:

Selection: 1

Customer name: Chris Neumann
Address (3 lines):
410 Howard Avenue
San Diego
California 94065

In order for a customer to receive any kind of service from the travel agency, they must be
selected as the current customer. A newly added customer automatically becomes the currently
selected customer. To aid selecting a customer, the system will display a list of the names of all
current customers. The operator only needs to type in the number beside the customer they want
to select. For example:

Selection: 2

Please select one of the following

1. Irene Pohlsky
2. Naid Rivera
3. Katherina Shestov
4. Tomas Bormann
5. Kenneth Cole

Customer number: 4

Once a customer has been selected, new bookings can be added for that customer. The bookings
may be for hotel rooms, camp sites, airline flights or cruises (other types of bookings may be
added in future versions of the system). Different information must be recorded, depending on
the type of booking. For example:

Selection: 3

Adding a booking for Katherina Shestov

Please select a type of booking

1. Airline
2. Cruise ship
3. Hotel
4. Camp site

Booking type:

If it’s an airline reservation:

Booking type: 1

Please enter the details of the flight

Provider: Delta
Price: 625.50
Departure Date (d/m/yyyy): 5/8/2008
Departure Time (h:m): 21:15
Arrival Date (d/m/yyyy): 6/8/2008
Arrival Time (h:m): 5:30
Departure Location: Newark
Destination: London
First class (y/n)?: y
Flight number: 203
Seat: 3A
Aircraft type: Boeing 747

If it’s a cruise reservation:

Booking type: 2

Please enter the details of the cruise

Provider: P&O
Price: 879.25
Departure Date (d/m/yyyy): 5/12/2008
Departure Time (h:m): 12:00
Arrival Date (d/m/yyyy): 5/19/2008
Arrival Time (h:m): 6:15
Departure Location: Augusta
Destination: Miami
First class (y/n)?: no
Deck: C
Room number: 23

If it’s a hotel reservation:

Booking type: 3

Please enter the details of the hotel

Provider: Hilton
Price: 240.00
Arrival Date (d/m/yyyy): 6/25/2008
Length of stay (number of nights): 2
Room number: 27
Floor: 5
Is breakfast included (y/n)? yes

If it’s a camp site reservation:

Booking type: 4

Please enter the details of the campsite

Provider: Blue Mountains
Price: 50.00
Arrival Date (d/m/yyyy): 8/7/2008
Length of stay (number of nights): 5
Site number: 105
Is electricity provided (y/n)? yes
Is water provided (y/n)? N

The currently selected customer can also make a partial or complete payment of the amount they
currently owe. They cannot pay more than they currently owe. All payments are recorded in the
system in order to keep track of each customer’s outstanding balance. For example:

Selection: 4

Recording a payment for Tomas Bormann
Amount owing $237.25

Enter payment amount: 340.00

One of the main roles of the booking system is to print an invoice for a customer whenever they
request one. In this initial version of they system, the invoice will simply be displayed on the

In order for a booking to be changed in any way, it must be selected as the current booking for
that customer. A newly added booking automatically becomes the current booking. To aid the
selection of a booking, the system will display a list of all bookings for the currently selected
customer (only the date and provider of each booking is displayed). The operator only needs to
type in the number beside the booking they want to select. For example:

Selection: 6

Selecting a booking for Katherina Shestov

Please select one of the following

1. 5/8/2008 Delta
2. 5/12/2008 P&Q
3. 8/7/2008 Blue Mountains
4. 6/25/2008 Hilton

Booking number: 2

But in the current version of the system, the only action that can be performed on the currently
selected booking is to cancel it. Cancelling a booking completely removes it from the computer
system, and reduces the amount that the customer owes (possibly to a negative value). For

Selection: 7

Cancelling a booking for Chris Neumann
5/12/2008 P&O
Please confirm (y/n): y

Selecting option 8 causes the system to immediately terminate, loosing all recorded information.
For example:

Selection: 8

System terminating
Warning: All information will be lost!
Please confirm (y/n): y

Selection: 5

Invoice for Katherina Shestov
410 Howard Avenue
San Diego
California 94065

5/12/2008 Delta                               625.50
     First class, from … to …,
     departing at …pm, arriving at …pm on …
     Flight 203, Seat 3A, Aircraft Boeing 747

5/12/2008 P&Q                                         379.25
     Economy class, from … to …,
     departing at …pm, arriving at …am on …
     Deck C, Room 23

8/7/2008 Blue Mountains                              50.00
     for 5 nights
     Site 105 (electricity provided, water not provided)

6/25/2008 Hilton                            340.00
     for … nights
     Room 27, on Floor 5 (breakfast included)

                                Total        …
                                Payments received 240.00
                                Amount due       …

Group work
You may work in groups of two on the assignment. If you work with a partner, both students
will receive the same grade for the assignment. No additional points will be made for students
completing the assignment by themselves.

In writing (printed):

•   Draw the detailed UML class diagrams.
•   Draw the interaction (Sequence or Collaboration)
•   Written scenarios.
•   Complete source code (all necessary .h and .cpp files) with comments.
•   3 to 5 pages of test results (demonstrating all main features). The format is shown. This
    should give an indication of how your system works. You do not need to show detailed
    system testing or show all the small features of your system in this output.
•   User guide.

Electronic submission (on my pen drive):

All of the above plus the exe file.

Don’t forget to include as comments:
  1. Your name
  2. CSC330 HW1

Shared By: