For this project you will be designing and implementing a system, in either C or C++, to help a party of adventurers manage their equipment. Each party member has some collection of equipment in their pack and you will need to identify the total set of items the party has access to, which items there are duplicates of, which items only one member has, and which items they are lacking.
For the project you may, if you choose, work in small groups of up to three students. I will need the names of all of the group members emailed to me by no later than midnight (5/21). Any student who is not in one of the groups I receive emails for will be assumed to be working on their own. A list of groups and their members will be posted on Canvas, after it is compiled. A group cannot be changed once created, unless it is completely dissolved. All members of a group will receive the same grade, and all members are expected to contribute equally to the programming and report. Only one submission per group will be required, but a group will not be penalized for having multiple members submit the completed project.
Also, as a reminder, all of the code for this assignment must be written by you. You may not share code or download solutions off the internet, as doing so will be considered cheating.
This assignment has two parts: a design portion and an implementation portion.
For the design portion, you must generate documentation, in PDF format, describing your system and design process. The purpose of this is for you to explain not just what your system is doing, and how it is doing it, but why. You will need to justify your design decisions in a concise, informative manner. Justifications such as “I did this because it was easy” are not sufficient, as you should actually explain why a particular data structure or algorithm was more efficient, effective, or optimal. Additionally, commented code, while sometimes helpful in small examples, is not a sufficient explanation in and of itself. Your explanations and justifications are expected to be presented in prose and in paragraph format, i.e. not bulleted lists. Further, part of the evaluation of your design document is the apparent amount of thought and effort that went into its creation.
This document should be divided into four main parts, each with an appropriate header.
In the first part, you should describe your design process. Did you work out the algorithm on paper or a whiteboard before hand? Did you draw UML diagrams of the system? Did you create a small prototype? Did you simply start coding away and then recode once or twice with newfound understanding? In a few paragraphs, describe in detail how you went about designing the system, and be sure to provide sufficient justification of your methodology.
For the second part, you should describe the data structures you used in your system. What, if any, objects or structs did you create to store data? How did you organize and manage them? What types of formal data structures did you make use of (trees, graphs, arrays, hashes, etc)? In a few paragraphs, describe in detail how you stored the various data elements in your system, and be sure to provide sufficient justification of your methodology.
For the third part, you should describe functionality of your system. How is data moved and transformed? How is it read in? How is it output? What are the various major functions you constructed and how do they work? In a few paragraphs, describe in detail how your system works, and be sure to provide sufficient justification of your methodology. You might also consider including diagrams to more easily visualize how all of the pieces fit together.
Your program must provide the following functionality and adhere to the following constraints:
ï‚· Allow the user to choose the file describing party they want analyzed (should not require recompilation)
o The first line of the file will be the comma delimited universal set
o All subsequent lines will have the party member’s name followed by a colon and then the comma delimited set of their equipment
o All input files (except the bonus) will be formatted in this manner
ï‚· Each member’s set of equipment must be stored as a bit vector
o Either a binary integer (0,1) bit vector or a Boolean bit vector is acceptable
ï‚· All resulting sets, such as the set of items the party has access to, must be generated via set operations
ï‚· You may not use any of the set containers or set operations/algorithms provided by C or C++ o Examples: bitsets, sets, multisets, set_union, set_intersection, set_difference
ï‚· Your program should alert the user if an item that is not in the universal set is in a party members equipment
ï‚· Your program should output o The universal set of items
o Each party member’s name followed by their set of items
o The set of items the party as a whole has access to
o The set of duplicate items
o The set of items owned by only one party member
o The set of items the party is lacking
ï‚· The output should be provided to the user in an easy to read and understand format. Outputting a string of only 1’s and 0’s without any description of what each 1 and 0 means, is not easy to read or understand for users unfamiliar with your system.
ï‚· Your code must be well commented.
ï‚· You must provide a short README file which includes your name and explains how to compile and run your program.
ï‚· Additionally, you may write a makefile if you want your code to compile with additional flags.
A .zip file containing the following:
1. All files necessary to compile and run your program
2. A README file explaining how to compile and run your program
3. Your design document in PDF format
For 10 bonus points, your system must be able to manage the packs without knowing the universal set ahead of time. Effectively, you must construct the universal set on the fly, and update the bit vectors of each party member as new items are discovered. Consequently, you do not need to alert the user about a party member’s equipment not being in the universal set.
We value our customers, and so ensure that our papers are 100 percent original. Our Team of professionals does not miss the mark; they ensure that step by step each paper is written uniquely. We never duplicate or work as we compare papers rest assured. We deliver our work a day before time to ensure that you don’t miss your deadlines. It is not only doing the work but delivering it at the right time. We capture the consequences of late remittances. .
We value customer satisfaction here at popularessaywriters.com and make sure that you get the best value for your Money. It happens that sometimes you can pay twice for your order or may want to cancel it, or you feel that it doesn’t meet your requirements; our money back guarantee will give you the opportunity to get back your money. We will also refund 100% of money paid double. In case your paper does not satisfy your requirements , we request that you notify us via writing within 2 days otherwise on the third day we will assume that you have been satisfied. Do all your correspondences through our email address email@example.com.Read more
At popularessaywriters.com, our professional writers know the consequence plagiarism does for our clients. We have updated software’s such as article checker and copyscape to check for originality of the custom papers before submission of the final paper to the you. Our guarantee to the customer is that we will write 100% original papers for them that are quality, timely and of low cost. We have experienced professional and competent PhD writers who will write quality custom papers for you..Read more
. At popularessaywriters.com, we are proud to provide top-quality Essay writing service to our esteemed customers. We are ready to take up that challenging academic assignment that is giving you sleepless nights and simplify it for you according to your desired requirements. We are willing to revise your paper if it does not meet your requirements. At popularessaywriters.com, we do not compromise with quality; thus, we offer unlimited free revisions until the customer is satisfied with their custom paper. Our unlimited free revision services are provided under the following terms:.. .Read more
Popularessawriters.com knows that client’s information is an essential tool for our company. It means that whatever the client requests from our service is kept strictly confidential. It means that whoever writes for this company understands the terms and conditions hence you should not be worried because you will never see your work somewhere else...Read more
Rest assured that we will always be attentive to your needs and requirements. We belief in the phrase treat your neighbour as you would want them to treat you. We leave nothing to chance and always look forward to a good interaction with each other.. .Read more