// Program to handle inventory for a small company // File: ch7inv1.cpp #include <iostream.h> #include <conio.h> const int MAX_ITEMS = 5; typedef int InventoryArray[MAX_ITEMS]; void DisplayWelcomeMessage(); void DisplayClosingMessage(); void OutputInventory(const InventoryArray items); // const used to protect the array from being changed void InputInventory(InventoryArray items); void ProcessChoices(); void OutputOneInventoryAmount(int amount, int itemCode); void ChangeOneInventoryAmount(InventoryArray items, int itemCode); char GetItemCode(); void DeductInventory(InventoryArray items, int itemCode); void AddInventory(InventoryArray items, int itemCode); char GetUsersChoice(); void main() { DisplayWelcomeMessage(); ProcessChoices(); DisplayClosingMessage(); } void DisplayWelcomeMessage() { cout << "\n\n\n\n\n\n\n\n\n\n"; cout << " W E L C O M E T O\n\n"; cout << " T H E\n\n"; cout << " E C L P S E I N V E N T O R Y P R O G R A M\n\n\n\n\n\n"; } void DisplayClosingMessage() { cout << " T H A N K S F O R S T O P P I N G B Y\n\n\n\n\n\n"; } void ProcessChoices() { InventoryArray itemInventory; char choice; int itemCode; InputInventory(itemInventory); // Create the initial inventory bool done = false; choice = GetUsersChoice(); while (!done) { switch (choice) { case 'L': // List Inventory case 'l': OutputInventory(itemInventory); break; case 'S': // Single product listed case 's': itemCode = GetItemCode(); while ((itemCode < MAX_ITEMS) && (itemCode >= 0)) // check to make sure code is valid - user is told to enter neg # to stop { OutputOneInventoryAmount(itemInventory[itemCode], itemCode); itemCode = GetItemCode(); cout << "\n\n\n"; } break; case 'C': case 'c': itemCode = GetItemCode(); while ((itemCode < MAX_ITEMS) && (itemCode >= 0)) // check to make sure code is valid - user is told to enter neg # to stop { ChangeOneInventoryAmount(itemInventory, itemCode); itemCode = GetItemCode(); cout << "\n\n\n"; } break; case 'A': // Add to inventory case 'a': itemCode = GetItemCode(); while ((itemCode < MAX_ITEMS) && (itemCode >= 0)) // check to make sure code is valid - user is told to enter neg # to stop { AddInventory(itemInventory, itemCode); itemCode = GetItemCode(); cout << "\n\n\n"; } break; case 'D': // Deduct from inventory case 'd': itemCode = GetItemCode(); while ((itemCode < MAX_ITEMS) && (itemCode >= 0)) // check to make sure code is valid - user is told to enter neg # to stop { DeductInventory(itemInventory, itemCode); itemCode = GetItemCode(); cout << "\n\n\n"; } break; case 'Q': case 'q': cout << "Do you want to really want top quit (Y) or (N)\n"; char answ; cin >> answ; if ((answ =='Y') || (answ == 'y')) { done = true; } break; default: cout << "Invalid choice. Please Select again.\n\n"; } // end switch if (!done) { choice = GetUsersChoice(); } } // end while } char GetUsersChoice() { char choice; cout << "\n\n\n\n"; cout << "Please indicate what you wish to do\n"; cout << " <L> to List all the inventory\n"; cout << " <S> to get the inventory of one item\n"; cout << " <D> to deduct from the inventory of an item\n"; cout << " <A> to add to the inventory of an item\n"; cout << " <C> to change the inventory of an item\n"; cout << " <Q> to quit\n"; cin >> choice; return choice; } char GetItemCode() { int code; cout << "Please enter the code for the item you wish to work with\n"; cout << "Enter a negative number to indicate you are finished\n"; cin >> code; while (code > MAX_ITEMS -1) // check for code that is too high { cout << "Invalid item code. Please enter a valid code.\n"; cin >> code; } // cin.ignore(1); return code; } void OutputOneInventoryAmount(int amount, int itemCode) { cout << endl << endl << "The inventory amount for item " << itemCode << " is: " << amount << endl << endl; } void OutputInventory(const InventoryArray items) { cout << "\n\n\n\n\n"; for (int itemCode = 0; itemCode < MAX_ITEMS; itemCode++) { cout << "The inventory amount for item " << itemCode << " is: " << items[itemCode] << endl; } cout << "\n\n\n\n\n\n"; } void InputInventory(InventoryArray items) { int itemAmount; for (int itemCode = 0; itemCode < MAX_ITEMS; itemCode++) { cout << "Please enter the inventory count for item " << itemCode << ": "; cin >> itemAmount; items[itemCode] = itemAmount; } } void ChangeOneInventoryAmount(InventoryArray items, int itemCode) { int amount; cout << "Please enter the new amount in the inventory\n"; cin >> amount; items[itemCode] = amount; } void DeductInventory(InventoryArray items, int itemCode) { int amount; cout << "Please enter the amount sold of item\n"; cin >> amount; items[itemCode] -= amount; } void AddInventory(InventoryArray items, int itemCode) { int amount; cout << "Please enter the amount to add of item\n"; cin >> amount; items[itemCode] += amount; }