Finish Assignment 3, inventory program has finished.
This commit is contained in:
parent
60572aefd9
commit
06bcc9edc9
2 changed files with 204 additions and 2 deletions
|
|
@ -33,11 +33,19 @@ Dependencies: ???
|
|||
|
||||
using namespace std;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
QUIT_INVENTORY = -1,
|
||||
START_INVENTORY_MANAGEMENT,
|
||||
KEEP_INVENTORY_MANAGING,
|
||||
DISPLAY_INVENTORY
|
||||
} MENU_OPTIONS;
|
||||
|
||||
// class definitions
|
||||
class Inventory
|
||||
{
|
||||
private:
|
||||
// variables
|
||||
vector<string> inv;
|
||||
|
||||
public:
|
||||
Inventory()
|
||||
|
|
@ -48,6 +56,132 @@ public:
|
|||
{
|
||||
// default destructor
|
||||
}
|
||||
// accessor functions
|
||||
// need a find function (use vector find?)
|
||||
int findItem(string itemFind)
|
||||
{
|
||||
// use the find function, then compare each raw value
|
||||
auto vecIterator = find(inv.begin(), inv.end(), itemFind);
|
||||
if(vecIterator != inv.end())
|
||||
{
|
||||
// return the index if found
|
||||
return vecIterator - inv.begin();
|
||||
}
|
||||
// otherwise, return 'not found'
|
||||
return -1;
|
||||
}
|
||||
// need a display function, iterate and print each?
|
||||
void displayInventory()
|
||||
{
|
||||
// print out the entire inventory using a for loop.
|
||||
int inventorySize = inv.size();
|
||||
cout << "Inventory Items:" << endl;
|
||||
for(int vecIterator = 0; vecIterator < inventorySize - 1; vecIterator++)
|
||||
{
|
||||
cout << "\tItem " << vecIterator + 1 << ": " << inv[vecIterator] << endl;
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
// mutator functions
|
||||
// need a use function (finds and removes the item)
|
||||
void useItem()
|
||||
{
|
||||
// ask user which item they want to use.
|
||||
int pickedItem;
|
||||
bool validItem = false;
|
||||
string itemToFind;
|
||||
int foundItemIndex = 0;
|
||||
// ask user which item they want to add.
|
||||
cout << "Please pick an item to add to the inventory: " << endl;
|
||||
cout << "\t1: Sword" << endl;
|
||||
cout << "\t2: Health" << endl;
|
||||
cout << "\t3: Shield" << endl;
|
||||
cout << "\t4: Food" << endl;
|
||||
cout << "Item Number: ";
|
||||
while(!validItem)
|
||||
{
|
||||
cin >> pickedItem;
|
||||
cin.ignore();
|
||||
if(pickedItem == 1)
|
||||
{
|
||||
validItem = true;
|
||||
itemToFind = "Sword";
|
||||
}
|
||||
else if(pickedItem == 2)
|
||||
{
|
||||
validItem = true;
|
||||
itemToFind = "Health";
|
||||
}
|
||||
else if(pickedItem == 3)
|
||||
{
|
||||
validItem = true;
|
||||
itemToFind = "Shield";
|
||||
}
|
||||
else if(pickedItem == 4)
|
||||
{
|
||||
validItem = true;
|
||||
itemToFind = "Food";
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Invalid Item. Please enter again:" << endl;
|
||||
cout << "Item Number: ";
|
||||
}
|
||||
}
|
||||
cout << endl;
|
||||
// use the itemToFind with the find function
|
||||
foundItemIndex = findItem(itemToFind);
|
||||
// remove said item at index if found.
|
||||
if(foundItemIndex > -1)
|
||||
{
|
||||
// remove item at index
|
||||
inv.erase(inv.begin() + foundItemIndex);
|
||||
}
|
||||
}
|
||||
// need an add function (prompts user to add an item, get num input to ask)
|
||||
void addItem()
|
||||
{
|
||||
int pickedItem;
|
||||
bool validItem = false;
|
||||
// ask user which item they want to add.
|
||||
cout << "Please pick an item to add to the inventory: " << endl;
|
||||
cout << "\t1: Sword" << endl;
|
||||
cout << "\t2: Health" << endl;
|
||||
cout << "\t3: Shield" << endl;
|
||||
cout << "\t4: Food" << endl;
|
||||
cout << "Item Number: ";
|
||||
while(!validItem)
|
||||
{
|
||||
cin >> pickedItem;
|
||||
cin.ignore();
|
||||
if(pickedItem == 1)
|
||||
{
|
||||
validItem = true;
|
||||
inv.push_back("Sword");
|
||||
}
|
||||
else if(pickedItem == 2)
|
||||
{
|
||||
validItem = true;
|
||||
inv.push_back("Health");
|
||||
}
|
||||
else if(pickedItem == 3)
|
||||
{
|
||||
validItem = true;
|
||||
inv.push_back("Shield");
|
||||
}
|
||||
else if(pickedItem == 4)
|
||||
{
|
||||
validItem = true;
|
||||
inv.push_back("Food");
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Invalid Item. Please enter again:" << endl;
|
||||
cout << "Item Number: ";
|
||||
}
|
||||
}
|
||||
cout << endl;
|
||||
}
|
||||
};
|
||||
|
||||
// function definitions
|
||||
|
|
@ -55,6 +189,74 @@ public:
|
|||
// main function
|
||||
int main()
|
||||
{
|
||||
//
|
||||
int menuSelInt = 4;
|
||||
int iterateCount = 0;
|
||||
MENU_OPTIONS menuFunction = START_INVENTORY_MANAGEMENT;
|
||||
Inventory currentInventory;
|
||||
// menu functionality
|
||||
do
|
||||
{
|
||||
// print out the menu with all of the options available.
|
||||
printf("Inventory Manager Program\n");
|
||||
printf(" Menu Options:\n");
|
||||
printf(" 1: Add Item to Inventory\n");
|
||||
printf(" 2: Display Items in Inventory\n");
|
||||
printf(" 3: Use Item in Inventory\n");
|
||||
printf(" 4: Quit Inventory Manager\n");
|
||||
printf("Select a menu option: ");
|
||||
// ask for the menu selection
|
||||
scanf("%d", &menuSelInt);
|
||||
// print a new line
|
||||
printf("\n");
|
||||
if(menuSelInt == 1)
|
||||
{
|
||||
if(iterateCount == 0)
|
||||
{
|
||||
menuFunction = START_INVENTORY_MANAGEMENT;
|
||||
}
|
||||
else
|
||||
{
|
||||
menuFunction = KEEP_INVENTORY_MANAGING;
|
||||
}
|
||||
iterateCount = iterateCount + 1;
|
||||
}
|
||||
else if(menuSelInt == 2)
|
||||
{
|
||||
// use the display function defined, increase the iterateCount
|
||||
menuFunction = DISPLAY_INVENTORY;
|
||||
iterateCount = iterateCount + 1;
|
||||
currentInventory.displayInventory();
|
||||
}
|
||||
else if(menuSelInt == 3)
|
||||
{
|
||||
// use the 'useItem' function defined. increase the iterateCount,
|
||||
// use the DISPLAY_INVENTORY code since I can't be bothered to make another one.
|
||||
menuFunction = DISPLAY_INVENTORY;
|
||||
iterateCount = iterateCount + 1;
|
||||
currentInventory.useItem();
|
||||
}
|
||||
else
|
||||
{
|
||||
// decide to quit the inventory manager if all else fails.
|
||||
menuFunction = QUIT_INVENTORY;
|
||||
}
|
||||
switch (menuFunction)
|
||||
{
|
||||
case START_INVENTORY_MANAGEMENT:
|
||||
cout << "Starting Inventory Management." << endl;
|
||||
// add item to inventory.
|
||||
currentInventory.addItem();
|
||||
break;
|
||||
case KEEP_INVENTORY_MANAGING:
|
||||
cout << "Continuing Inventory Management." << endl;
|
||||
// add item to inventory.
|
||||
currentInventory.addItem();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} while (menuFunction != QUIT_INVENTORY);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue