Design and implement a software system for catalogue sale a


1. Problem

In this assignment, you are invited to design and implement a software system for catalogue sale. A catalogue is organised in a tree structure. Each node of the catalogue tree represents either an item for sale or a category. The following is an example of such a catalogue:
Books

Textbooks
Computer Science
Data structures Using C++ Java: How to program
Mathematics
...
Social Science
...

Audiobooks
... Magazines
...
Movies, Music & Games Blue-ray
...
Music
MP3 Downloads
Video Games Home, Garden & Tools
Kitchen & Dining Appliances
...
Sports & Outdoors
Exercise & Fitness
Precor Premium Series 9.31 Treadmill Bike & Scooters
...

There are three roles in the system: sellers, buyers and the Manager. A seller can:
•Traverse the catalogue
•Place a sell item under an existing category
•Create a new subcategory under the root category or any other subcategories

A buyer can:
•Traverse the catalogue
•Buy an item whatever is available in the catalogue

The Manager can:
•Traverse the catalogue
•Create a new category
•Delete an existing category
•Remove a selling item
Input data
Selling items
An item for sale consists of the following information:
ItemName: a string of no more than 50 characters.
ItemKey: the key of the selling item with integer data type. The key should be automatically generated by your program when the seller publishes the item. Different items should have different item keys.
Description: a brief description of the item, a string of no more than 100 characters.
Price: the published price in double.
MaxDiscount: the maximal discount of the published price (value between 0.0% and 100.0%).
For instance, the following is the information of a digital camera: ItemName: Precor Premium Series 9.31 Treadmill ItemKey: 112
Description: Professional-quality treadmill for the home with innovative design that adjusts belt speed to foot speed
Price: $3599.00
MaxDiscount: 10%

Note that any buyer who offers a price higher or equal to $3239.10 will get the item, paying at his/her offer price up to the full price (value between $3239.10 and $3599.00).

Categories

A category consists of the following information:

CategoryName: a string of no more than 50 characters.
CategoryKey: the key of the category with integer data type. The key should be automatically generated by your program when it is created.
Different categories should have different category keys.

Functionalities

Your program should include three components selling, buying and managing for the use of sellers, buyers and the Manager, respectively. Provide a menu for a user to enter each component.

Selling
When a seller has an item to sell, she/he will first check the catalogue to find a suitable category to place the item. Your program should allow the seller to traverse all available categories level by level from the root to the leaves. Giving the above catalogue as an example, the program will first show the following root category:

Catalogue:
1 Books
2 Movies, Music and Games
3 Home, Garden and Tools
4 Sports & Outdoors
5 Add a new category
6 Add a selling item
7 Quit to main menu

If the user chooses Option 1, your program will list the content of subcategory -
Books:

Books:
1 Textbooks
2 Audiobooks
3 Magazines
4 Add a new category
5 Add a selling item
6 Quit to main menu

If a user chooses a number which points to a selling item, your program should show the information of the item (expect for the information of maximal discounts). If a user chooses "Add a new category", the program should ask for the title of the category and add it into the catalogue. If the user chooses "Add a selling item", the program should ask for the information of the item and add the item into the catalogue under the current level.

Note that a category can contain either subcategories, selling items or both. For instance, there could be a selling item under Books, which does not belong to any subcategory under this category.

Buying
When a user enters the system as a buyer, the system will allow the user to travel over the catalogue level by level. Once hit a selling item, the system will prompt a menu for the user to choose either buy the item or back to the up level. If the user chooses to buy, the program will ask the user for an offer price. If the offer price is higher or equals to the sale price (the published price * (1- maximal discount)), the item will be sold at the price either the buyer is offered or the published price if the offer price is higher than the published price. The item is then removed from the catalogue.

Managing
When a user enters as the Manager, the program will allow the user to traverse the catalogue, delete a category or a selling item, and modify a category or selling item.

2. Requirement and Marking Criteria

You are required to implement your program by using C++. You are allowed to use any available data structure ADTs or available programs under the condition of keeping the copyright statement of the programs. You could use any of the standard data structures, including arrays, linked lists, stacks, queues, priority queues, general trees, binary trees, binary search trees, AVL trees, heaps and graphs, or you could invent your own data structures for your solution. You need to explain the reasons of why you choose to use the data structures in your documentation.

Pass Level: If you are targeting a pass grade only, you could implement an item sale system only without the implementation of a full catalogue sale. In other words, you could place all selling items under the root category without any subcategories. However, you have to use a Binary Search Tree to store all selling items. You have to implement at least the following functions and make your program workable:
• Automatically generate item keys for all the selling items
• Provide the functions for sellers to place selling items.
• Provide the functions for buyers to buy items (delete the items that are sold).

Describe the data structures and algorithms you use in your implementation (up to one A4 page exclusive the cover page).

Credit Level: If you are targeting a credit grade, you must implement a system of catalogue sale with multiple levels of categories. You can design your own data structures for storing the catalogue. You have to implement at least the following functionalities:
• Automatically generate item keys and category keys
• Provide the functions for sellers to place selling items and create new categories.
• Provide the functions for buyers to buy items (delete the items that are sold).

Describe the data structures and algorithms you use in your implementation (up to one A4 page exclusive the cover page).

Distinction level: Implement all the functionalities in credit level plus the functionalities for the Manager.

Describe what the data structures and algorithms you use in your implementation and Explain why you choose to use them (up to two A4 pages exclusive the cover page).

High Distinction Level: Implement all the functionalities in Distinction level plus a comprehensive analysis on suitability and efficiency of the data structures and algorithms you use in your implementation. Your documentation should not exceed four A4 pages. Note that your work will be graded according to suitability of your data structures and efficiency of your algorithms.

The weight of the assignment is 20% of the total marks of the subject.

3. Deliverables and submission

Documentation: Submit your report with a cover sheet to the vUWS and hand in a hard copy of your report (not the code) to your tutor when you demonstrate

Source code: You are required to submit your source code, including header files and other accessory files, to vUWS by the due day.

Zip all the files in one file when you submit. No email submission is acceptable (we have no access to your account). Late submissions are allowed with 10% penalty per day up to 11am Wed 2 Nov 2011. Submission after this time will be impossible.

4. Demonstration

You are required to demonstrate your program to your tutor during your practical session in Week 14 on 2 Nov 2011. Print a hard copy of your report and present it to your tutor during your demonstration. You will receive a fail grade if you fail the demonstration. Note that Week 14 is the last week of this semester. If you miss the demonstration time, you will lose the chance of demonstration. It is your responsibility to get the appropriate compiler or IDE to run your program.

Attachment:- LECTURE NOTES.zip

Solution Preview :

Prepared by a verified Expert
Mathematics: Design and implement a software system for catalogue sale a
Reference No:- TGS01488324

Now Priced at $40 (50% Discount)

Recommended (92%)

Rated (4.4/5)