Documente Academic
Documente Profesional
Documente Cultură
CT077-3-2 DSTR
DATA STRUCTURES
WEIGHTAGE: 60%
INSTRUCTIONS TO CANDIDATES:
Easy Reading Bookstore is a bookstore that is located in Kuala Lumpur, Malaysia. The
bookstore sells academic reference books, special edition books, music CDs, games, and
DVDs. A computer application is needed for their customer service personnel to process
purchases that require delivery to their customers.
Assume that youre a freelance software developer that has been approached by Easy
Reading Bookstore to develop a prototype for their purchasing system. You are required
to write a C++ program for Easy Reading Bookstores Purchasing System. The following
are the functionalities of the purchasing system:
b) The following data is required when creating a new purchase: receipt number,
item code(s), item type(s) (ie. book, CD, DVD, and etc.), quantity, cost per item,
delivery information (see part c) for more information), payment method (see part
d) for more information), fulfilled purchase (assigned N by default and denotes
that the purchase has not been fulfilled), and total cost of the purchase (including
delivery charges). Note that a single purchase may contain multiple items.
c) There are two types of delivery methods: standard delivery or express delivery.
Standard delivery takes between 3 10 days for the item(s) to be delivered and
the charge for a standard delivery is 5% of the cost of the item(s) purchased.
Express delivery takes between 1 2 days for the item(s) to be delivered and the
charge for a standard delivery is 10% of the cost of the item(s) purchased.
Therefore, the delivery information for a new purchase should also contain the
following information: recipient name, address, telephone number, delivery type,
and delivery charges.
d) There are two types of payment methods: cash or credit card. If the payment
method is cash, then the new purchase should also contain the following
information: amount received and change given. However, if the payment method
is by credit card, the new purchase should contain the following information:
credit card number, type of card (Visa or Mastercard), name on card, issuing bank,
and CVV number.
e) The customer service personnel should be able to search for a particular purchase
by:
Receipt number
Recipient name
Once the purchase is found, the customer service personnel should be given the
option to modify the data for a particular attribute (data field), or to delete a
purchase. Note that only the recipient name, address and/or telephone number
attributes may be modified.
f) When viewing purchases, the most recent purchase (based on receipt number)
must be displayed (and stored) first. The customer service personnel should then
fulfill the purchases (in sequence starting from the most recent purchase) by
updating the fulfilled purchase field to F. Note that the customer service
personnel should not be allowed to skip a purchase when fulfilling the purchases.
The fulfilled purchase will then be sent to the delivery list and automatically
removed from the purchases list.
g) The view delivery list should display the most recent fulfilled purchase last.
However, do note that purchases that require express delivery should be viewed
(and stored) before the purchases that require standard delivery.
h) Include all validations required for the system and use good programming
practices (eg. indentation, meaningful identifier names, comments, and etc.).
Assignment Requirements
You are required to submit a hardcopy as well as a softcopy of assignment report and
source code. The report should contain:
- Detailed explanation of the data structures and classes created, with proper
justification on your decisions (include source code defining classes, data members,
and method headers only).
- Brief explanation about the algorithms used to implement the functionalities stated
above (include code snippets of important parts of implementation).
- Source code of the main function, with screenshots showing programs input and
output interactions.
You have to present your assignment solution and answers to the lecturer during a
Q&A session that will be conducted after the hand-in date.
If you use some code which has been taken or adapted from another source (book,
magazine, internet, forum, etc.) then this must be cited and referenced using Harvard
Referencing Style within your source code, and this must be mentioned explicitly in the
report. Failure to reference code properly will be treated as plagiarism.
Automated tools for checking code similarities among submissions will be used, and
all detected cases will be treated as cheating.
1. You are required to hand in the individual assignment report on or before the due
date mentioned on the cover sheet of the assignment.
2. The attached CD should include a softcopy of the report, in addition to the C++
files of the programs. The organization of files and folders must adhere to the
following instructions precisely:
A folder named StudentFirstName-StudentID-Asmnt should contain the
report file (Microsoft Word), and the C++ (*.cpp / *.h) files ONLY. All
additional project files (especially if you use Visual Studio) should be removed.
Make sure to DELETE all non-source-code files, including executables (*.exe).
4. You have to submit your assignment with Coursework Submission and Feedback
Form (CSFF) attached.
Marking Criteria:
The program submitted will be evaluated according to the following performance criteria: