C++ Project-6 Explanation!!
C++ Project-6 Explanation!!
•TITLE:
Inventory Management System
• DESCRIPTION:
Here's a detailed explanation of the Inventory Management System C++ code, broken down into its main
components and how they work together.
1. Included Libraries
---
2. Item Structure
struct Item {
int id;
std::string name;
int quantity;
double price;
---
3. InventoryManager Class
---
a) Private Members
---
b) Helper Function
void clearInputBuffer() {
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
- Clears leftover input (like newline characters) after reading input to prevent input errors, especially when
mixing cin and getline.
---
c) Constructor
InventoryManager() : nextItemId(1) {}
---
---
it->second.quantity = newQuantity;
std::cout << "Stock for '" << it->second.name << "' (ID: " << itemId << ") updated to " << newQuantity << ".\n";
}
---
std::cout << std::left << std::setw(5) << item.id << " | "
<< std::setw(20) << item.name << " | "
<< std::setw(10) << item.quantity << " | "
<< std::fixed << std::setprecision(2) << std::setw(10) << item.price << " | "
<< std::fixed << std::setprecision(2) << std::setw(15) << totalValue << "\n";
}
std::cout << std::string(67, '-') << "\n\n";
}
---
- Summarizes:
- Number of unique items.
- Total quantity of all items.
- Total value of all inventory.
- Prints a neat summary report.
---
void runMenu() {
int choice;
std::string name;
int quantity;
double price;
int itemId;
while (true) {
std::cout << "--- Inventory Management System ---\n";
std::cout << "1. Add New Item\n2. Update Stock Quantity\n3. View Inventory Status\n4. Generate Inventory
Report\n5. Exit\n";
std::cout << "Enter your choice (1-5): ";
if (std::cin.fail()) {
std::cout << "Invalid input. Please enter a number.\n";
std::cin.clear();
clearInputBuffer();
continue;
}
clearInputBuffer();
switch (choice) {
case 1:
std::cout << "Enter item name: ";
std::getline(std::cin, name);
std::cout << "Enter quantity: ";
std::cin >> quantity;
std::cout << "Enter price per unit: ";
std::cin >> price;
if (std::cin.fail()) {
std::cout << "Invalid input for quantity or price. Please enter numbers.\n";
std::cin.clear();
clearInputBuffer();
break;
}
clearInputBuffer();
addItem(name, quantity, price);
break;
case 2:
std::cout << "Enter item ID to update: ";
std::cin >> itemId;
std::cout << "Enter new quantity: ";
std::cin >> quantity;
if (std::cin.fail()) {
std::cout << "Invalid input for item ID or quantity. Please enter numbers.\n";
std::cin.clear();
clearInputBuffer();
break;
}
clearInputBuffer();
updateStock(itemId, quantity);
break;
case 3:
viewInventoryStatus();
break;
case 4:
generateReport();
break;
case 5:
std::cout << "Exiting Inventory Management System. Goodbye!\n";
return;
default:
std::cout << "Invalid choice. Please enter a number between 1 and 5.\n";
break;
}
std::cout << "\n";
}
}
---
9. Program Entry Point
int main() {
InventoryManager manager;
manager.runMenu();
return 0;
}
---
Summary