Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Needed to search case insensitive strings
- #include <boost/algorithm/string/predicate.hpp>
- #include <iostream>
- #include <vector>
- #include <string>
- #include <map>
- int main() {
- // mMembersList contains Key:String, Value:Contact
- // For all intensive purposes, Value is not important here
- std::map<std::string, int> mMembersList;
- // mMembersList is populated from a file, since file isn't available
- // Create basic map with random keys:value
- mMembersList.insert(std::pair<std::string,int> ("Bob Jordan",2));
- mMembersList.insert(std::pair<std::string,int> ("George Jeremy",2));
- mMembersList.insert(std::pair<std::string,int> ("Donald Richardson",3));
- mMembersList.insert(std::pair<std::string,int> ("Robert Newman",8));
- mMembersList.insert(std::pair<std::string,int> ("John Doe",20));
- mMembersList.insert(std::pair<std::string,int> ("Richard Stevenson",12));
- mMembersList.insert(std::pair<std::string,int> ("Steve Davidson",1));
- // Display members in list
- std::cout << "Members:\n";
- for (auto it : mMembersList)
- std::cout << "\t" << it.first << "\n";
- //mPersonalResults contains Key:String, Value:Vector<Float>
- std::map<std::string, std::vector<float>> mPersonalResults;
- // mMembersList is populated from a file, since file isn't available
- // Create basic map with random keys:value
- mPersonalResults.insert(std::pair<std::string, std::vector<float>> ("Bob Jordan", {12.2,15.1,20.0,25}));
- mPersonalResults.insert(std::pair<std::string, std::vector<float>> ("Donald Richardson", {14.8,10.2,8.9,13.3,21.3}));
- mPersonalResults.insert(std::pair<std::string, std::vector<float>> ("John Doe", {11.7,14.6}));
- // Display members already entered
- std::cout << "\nMembers that already completed event:\n";
- for (auto it : mPersonalResults)
- std::cout << "\t" << it.first << "\n";
- // Create a strSearch used to find any valid keys in mMembersList
- std::string strSearch;
- std::cout << "\nPlease enter a name to search for: ";
- getline(std::cin, strSearch);
- // Create a vector to store found names
- std::vector<std::string> vFoundNames;
- // Search mMembersList
- for (auto member : mMembersList)
- // If a member matched the search
- if (boost::algorithm::icontains(member.first, strSearch))
- // Make sure member doesn't exist in mPersonalResults
- if (mPersonalResults.find(member.first) == mPersonalResults.end())
- // Add unused members to vFoundNames
- vFoundNames.push_back(member.first);
- // Used to store which member to select
- int iMember;
- // If more than one name was found
- if (vFoundNames.size() > 1) {
- // Display vFoundNames
- for (unsigned int i = 0; i < vFoundNames.size(); i ++)
- std::cout << i + 1 << ") " << vFoundNames[i] << "\n";
- // Let used select name they want
- std::cin >> iMember;
- }
- // Otherwise, automatically select the only member
- else
- iMember = 1;
- // Create vector to hold fish's weight
- std::vector<float> vFishWeight;
- // Notify user to enter weights for the member they selected, or only member
- std::cout << "Enter Weights for " << vFoundNames[iMember - 1] << ":\n";
- // Allow up to 5 fish's weight to be entered
- for (int i = 0; i < 5; i ++) {
- // Enter total weight first
- if (i == 0)
- std::cout << "\tEnter total weight: ";
- // Enter largest fish after
- else
- // Notify the user which fish they're entering weights for
- std::cout << "\tLargest Fish " << i << ": ";
- // Create a temporary variable to store the fish's weight
- float fFishWeight;
- // Have the user enter the weight
- std::cin >> fFishWeight;
- // If the weight was 0 or less
- if (fFishWeight <= 0)
- // Break the loop since it's not a valid weight
- break;
- // Add the weight to the vector
- vFishWeight.push_back(fFishWeight);
- }
- // Add member and fish weights to mPersonResults
- mPersonalResults.insert(std::pair<std::string, std::vector<float>> (vFoundNames[iMember - 1], vFishWeight));
- // Display mPersonal Results
- for (auto it : mPersonalResults) {
- // Display Key
- std::cout << "\n" << it.first << ":\n";
- // Display each fish's weight
- for (auto it2 : it.second)
- std::cout << "\t" << it2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment