Overview of the problem
You are to continue the development of software for a simple web shop. To extend
the simulation we wish to now introduce the following features: there will now be
three types of products: weapons, clothing and survival gear. In addition objects
should be dynamically created and destroyed as customers login and logout. The shop
should operate in a continuous loop enabling customers to come and go.
Inheritance must be made use of in this assignment. You should modify the product
class from assignment 1 to be a generic product class with similar features as before.
From this generic product you will derive the specific products: weapons, clothing
and survival gear. It is likely you will make use of polymorphic functions, a simple
example would be to have different display functions. A high scoring assignment
would also make use of pointers and linked lists instead of arrays.
The weapon class should inherit the name, model and price from the product class and
in addition have an attribute called purpose eg for a shotgun the purpose might be:
game_shooting. The read and display functions will have to be modified to include
this extra attribute (polymorphism).
The clothing class should include an additional data member for the size and another
for type. For example a flak_jacket could be size Large and type is Jacket. Functions
for reading and displaying will have to be modified.
The survival gear class will include extra attributes of type and shelf life. For example
Beef Jerky could be type Food and shelf life of 6 months.
There will be three data files: [url removed, login to view], [url removed, login to view] and survival.dat. The formats
of these files will be similar to the original product file but with extra data.
[url removed, login to view]
Name Model Price Purpose
Chainsaw CS001 59.95 Cutting
Bowie_knife BK001 39.95 Skinning
Allow for at least 10 entries in each file though the initial sample file
Study each file by opening in an editor such as Notepad to ensure you understand the
structure so you can read it correctly.
Order class structure
Your order class structure needs to be modified from assignment 1 to allow for
multiple product types. You need to allow for the possibility a customer will have
multiple products of the types described earlier. A simple Pass level solution might
have 3 array variables one for each type. Note: a single array cannot contain different
types. A Distinction level or above would use a linked list and dynamically create the
products as required. The add, search, delete and display functions will need to be modified accordingly.
Operation of your program
Your program should operate in a continuous loop allowing a customer to login and
logout then another customer etc. User level interaction will be the same as in
assignment 1, customers can choose products add them to the order, review the order,
delete products then checkout and get an invoice. Customer details such as name and
address and credit card number should be able to be entered as part of the checking