Programming Assignment 1:
- Build a Dictionary on top of a
- Bag built on top of an
- Array (not a vector) of objects àKVpairs (key/value pairs)
- Your dictionary should be able to hold at least 10 items.
- I have given you the templates for a
Bag (ADT)
Dictionary (ADT)
KV pair (implementation)
- Do not modify the templates or the KVPair class unless you talk to me first (I'll probably say no).
- Start by writing your Approach document first. I recommend you use an incremental approach
Build the Bag first and get it working
Then build the Dictionary using the Bag and get it working.
Build your program one function at a time.
- When you finish your Bag and then Dictionary show that it works with the following key/value types:
Think of a grocery bag
Bag fills up from bottom to top (like a stack)
Unlike a stack, a bag provides access to all of the contents, not just the items at the top
To find something in a bag you start looking from the top
See BagADT.h for Bag operations
Used for storing key/value records
Provides operations for
Storing,
Finding, and
Removing records from a collection
Since Find is the fundamental operation of a dictionary we need a key to search on
For the English dictionary the key is the word itself (Key) and the definition consists of the word and its definition (Value)
Dictionaries use a Key/Value pair; the key provides the "comparable object" used by Find
- In implementing your Dictionary you must use the available bag operations to implement your dictionary operations.
- Bag Operations
AddItem(E)
Remove(E)
RemoveTop(E)
Find(E)
EmptyBag()
+= operator overload (adds an item)
BagCapicity()
Dictionary Operations:
- Clear()
- Insert(E)
- Remove(E)
- RemoveAny(E)
- Find(E)
- Size()
- KVPair.h provides the template (this is an implementation and not an ADT) for creating a key/value pair used by both the Bag and Dictionary
- You are to use the following KV pair types for this assignment:
- Example dictionary test run
- For more information on Dictionaries and the use of KVPairs read section 4.4 of your text
- There you will find both details and usage examples.
Assignment 1 Comments
- You must implement the ADTs by inheriting them - you cannot modify them
classABag : public bagADT { }
classBDictionary : public dictionaryADT { }
Demonstrate one or more working bag operations to get any credit for this assignment and
You will not get credit, even if one or more ADT operations are implemented, if your implementation does not inherit the ADTs
Style Comments
- You do not have to separate declaration and implementation into header and .cpp files
- Put declaration and implementation both in the header file
- I expect to see
Self-documenting code
Good use of white space and indentation
Liberal use of comments
- Easy to read and understand
Attachment:- Programming Assignment 1.docx