com lab project
com lab project
ENGINEERING
COLLEGE OF E&ME, NUST, RAWALPINDI
Group Members:
Ammarah Ishaq (504144)
Aleeha Amanat (507017)
Hamid Naveed (533267)
Malik Faraz Anjum (533062)
Lab project
Coding:
#include <iostream>
#include <iomanip>
using namespace std;
class Item {
public:
string name;
double price;
int quantity;
class VendingMachine {
private:
static const int ITEM_COUNT = 12;
Item items[ITEM_COUNT];
public:
VendingMachine() {
items[0] = Item("Water", 9.00);
items[1] = Item("Juice", 4.50);
items[2] = Item("Chocolate", 2.00);
items[3] = Item("Waffer", 6.00);
items[4] = Item("Ice Cream", 3.50);
items[5] = Item("Parco", 1.00);
items[6] = Item("Prince", 8.00);
items[7] = Item("Passion Fruit", 6.50);
items[8] = Item("Oreo", 5.00);
items[9] = Item("Lollipop", 0.00);
items[10] = Item("Sting", 7.50);
items[11] = Item("Bunties", 6.00);
}
void showMenu() {
cout << "\n===== VENDING MACHINE MENU =====\n\n";
for (int i = 0; i < ITEM_COUNT; i++) {
items[i].display(i);
}
cout << "\n================================\n";
}
void buyItem() {
int choice;
cout << "Enter the number of the item you want: ";
cin >> choice;
if (selected.quantity == 0) {
cout << "Sorry, " << selected.name << " is out of stock." << endl;
return;
}
int requestedQuantity;
cout << "Enter quantity you want to buy: ";
cin >> requestedQuantity;
cout << "Total cost: $" << fixed << setprecision(2) << totalCost << endl;
double money;
cout << "Please insert money: $";
cin >> money;
// Purchase summary
cout << "\n===== PURCHASE SUMMARY =====\n";
cout << " Item : " << selected.name << endl;
cout << " Quantity : " << requestedQuantity << endl;
cout << " Total Paid : $" << money << endl;
cout << " Change : $" << change << endl;
cout << "============================\n";
}
void adminMenu() {
const string adminPassword = "admin123";
string input;
if (input != adminPassword) {
cout << "Access denied. Incorrect password." << endl;
return;
}
int option;
do {
cout << "\n--- Admin Menu ---\n";
cout << "1. Restock Items\n";
cout << "2. Update Prices\n";
cout << "3. View Inventory\n";
cout << "0. Exit Admin Menu\n";
cout << "Choose an option: ";
cin >> option;
switch (option) {
case 1:
restockItems();
break;
case 2:
updatePrices();
break;
case 3:
showMenu();
break;
case 0:
cout << "Exiting Admin Menu...\n";
break;
default:
cout << "Invalid choice.\n";
}
} while (option != 0);
}
void restockItems() {
int index, qty;
cout << "Enter item number to restock (1-" << ITEM_COUNT << "): ";
cin >> index;
if (index < 1 || index > ITEM_COUNT) {
cout << "Invalid item number.\n";
return;
}
cout << "Enter quantity to add: ";
cin >> qty;
if (qty <= 0) {
cout << "Invalid quantity.\n";
return;
}
items[index - 1].quantity += qty;
cout << "Item restocked successfully!\n";
}
void updatePrices() {
int index;
double newPrice;
cout << "Enter item number to update price (1-" << ITEM_COUNT << "): ";
cin >> index;
if (index < 1 || index > ITEM_COUNT) {
cout << "Invalid item number.\n";
return;
}
cout << "Enter new price: $";
cin >> newPrice;
if (newPrice < 0) {
cout << "Invalid price.\n";
return;
}
items[index - 1].price = newPrice;
cout << "Price updated successfully!\n";
}
};
int main() {
VendingMachine machine;
char again;
do {
cout << "\nAre you a:\n1. Customer\n2. Admin\nChoose (1/2): ";
int role;
cin >> role;
if (role == 2) {
machine.adminMenu();
}
else {
machine.showMenu();
machine.buyItem();
}
cout << "Thank you for using the vending machine. See you next time!" << endl;
return 0;
}
Output: