MCP Code Expert System
by tomsiwik
Verified
- mcp-experts
- examples
- javascript
// Shopping Cart implementation
var items = [];
var total = 0;
// Add an item to the cart
function addItem(name, price, quantity) {
if (!name || price <= 0 || quantity <= 0) {
console.log("Invalid item parameters");
return false;
}
// Create item object
var item = {
id: generateId(),
name: name,
price: price,
quantity: quantity,
subtotal: calculateSubtotal(price, quantity),
};
// Add to items array
items.push(item);
// Update total
total = calculateCartTotal();
console.log("Item added: " + name);
return true;
}
// Generate a unique ID for items
function generateId() {
return Math.random().toString(36).substring(2, 15);
}
// Calculate subtotal for an item
function calculateSubtotal(price, quantity) {
return price * quantity;
}
// Calculate total for all items
function calculateCartTotal() {
var newTotal = 0;
for (var i = 0; i < items.length; i++) {
newTotal += items[i].subtotal;
}
return newTotal;
}
// Remove an item from the cart
function removeItem(id) {
// Find item index
var index = -1;
for (var i = 0; i < items.length; i++) {
if (items[i].id === id) {
index = i;
break;
}
}
// Remove item if found
if (index !== -1) {
console.log("Removing: " + items[index].name);
items.splice(index, 1);
// Update total
total = calculateCartTotal();
return true;
} else {
console.log("Item not found");
return false;
}
}
// Apply discount
function applyDiscount(code) {
if (code === "SAVE10") {
total = total * 0.9;
console.log("10% discount applied");
return true;
} else if (code === "SAVE20") {
total = total * 0.8;
console.log("20% discount applied");
return true;
} else {
console.log("Invalid discount code");
return false;
}
}
// Display cart contents
function displayCart() {
console.log("Cart Contents:");
for (var i = 0; i < items.length; i++) {
console.log(
items[i].name +
" - $" +
items[i].price +
" x " +
items[i].quantity +
" = $" +
items[i].subtotal
);
}
console.log("Total: $" + total);
}
// Test functionality
addItem("Book", 12.99, 2);
addItem("Pen", 1.99, 5);
displayCart();
applyDiscount("SAVE10");
displayCart();