当前位置:首页 > JavaScript

js实现自动售卖机

2026-01-31 05:33:34JavaScript

实现自动售卖机的基本逻辑

自动售卖机的核心功能包括商品展示、投币、选择商品、出货和找零。以下是一个简化的JavaScript实现示例。

商品库存管理

使用对象数组存储商品信息,包括名称、价格和库存数量:

const products = [
  { name: '可乐', price: 3, stock: 10 },
  { name: '雪碧', price: 3, stock: 8 },
  { name: '矿泉水', price: 2, stock: 15 }
];

投币系统

维护当前投入金额和总金额:

let currentAmount = 0;
let totalAmount = 0;

function insertCoin(amount) {
  if (amount > 0) {
    currentAmount += amount;
    updateDisplay();
  }
}

商品选择逻辑

检查余额和库存后出货:

function selectProduct(index) {
  const product = products[index];
  if (!product || product.stock <= 0) {
    alert('商品已售罄');
    return;
  }

  if (currentAmount >= product.price) {
    product.stock--;
    totalAmount += product.price;
    currentAmount -= product.price;
    dispenseProduct(product.name);
    updateDisplay();
  } else {
    alert('金额不足');
  }
}

出货和找零

function dispenseProduct(productName) {
  console.log(`出货:${productName}`);
}

function returnChange() {
  if (currentAmount > 0) {
    console.log(`找零:${currentAmount}元`);
    currentAmount = 0;
    updateDisplay();
  }
}

界面更新

function updateDisplay() {
  document.getElementById('display').innerText = 
    `当前金额:${currentAmount}元 | 总收入:${totalAmount}元`;
}

HTML结构示例

<div id="display"></div>
<div id="products"></div>
<button onclick="insertCoin(1)">投1元</button>
<button onclick="insertCoin(5)">投5元</button>
<button onclick="returnChange()">退币</button>

初始化商品按钮

function initProducts() {
  const container = document.getElementById('products');
  products.forEach((product, index) => {
    const btn = document.createElement('button');
    btn.textContent = `${product.name} (${product.price}元)`;
    btn.onclick = () => selectProduct(index);
    container.appendChild(btn);
  });
}

window.onload = initProducts;

扩展功能建议

  • 添加管理员界面管理库存
  • 实现硬币识别和纸币识别
  • 添加交易记录功能
  • 支持多种支付方式(扫码支付)
  • 添加商品图片展示

这个实现包含了自动售卖机的基本功能,可以根据实际需求进一步扩展和完善。

js实现自动售卖机

标签: 售卖机js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…