当前位置:首页 > JavaScript

js实现自动售卖机

2026-03-01 20:44:17JavaScript

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

自动售卖机的核心功能包括商品展示、投币、选择商品、出货和找零。以下是一个简化的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) {
    currentAmount -= product.price;
    product.stock--;
    totalAmount += product.price;
    dispenseProduct(product.name);
    updateDisplay();
  } else {
    alert('余额不足');
  }
}

出货和找零功能

模拟出货过程并提供找零。

function dispenseProduct(productName) {
  alert(`出货:${productName}`);

  if (currentAmount > 0) {
    alert(`找零:${currentAmount}元`);
    currentAmount = 0;
    updateDisplay();
  }
}

界面更新函数

实时显示当前状态信息。

function updateDisplay() {
  console.log(`当前余额: ${currentAmount}元`);
  console.log('商品列表:');
  products.forEach((prod, i) => {
    console.log(`${i+1}. ${prod.name} - ${prod.price}元 (剩余${prod.stock})`);
  });
}

完整示例调用

模拟用户操作流程。

// 初始状态
updateDisplay();

// 用户投币
insertCoin(5);

// 用户选择商品
selectProduct(0);  // 选择可乐

扩展功能建议

对于更完整的实现,可以考虑以下增强功能:

js实现自动售卖机

  • 支持多种货币面额
  • 添加管理员功能补充库存
  • 实现交易历史记录
  • 增加图形用户界面
  • 添加商品售罄的视觉提示

这个基础实现可以运行在Node.js环境或浏览器控制台中,通过调用相应函数模拟自动售卖机的操作流程。实际应用中需要根据具体需求调整商品数据和交互方式。

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

相关文章

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js实现上传图片

js实现上传图片

使用HTML5的File API实现图片上传 HTML5的File API允许通过JavaScript访问用户选择的文件。需要创建一个文件输入元素,并监听其change事件。 <input t…

js实现左右滑动

js实现左右滑动

实现左右滑动的 JavaScript 方法 监听触摸事件 通过 touchstart、touchmove 和 touchend 事件来检测用户的手势操作。记录触摸的起始位置和移动距离,判断滑动方向。…

js实现乘法

js实现乘法

实现乘法运算的方法 在JavaScript中实现乘法运算可以通过多种方式完成,以下列举几种常见方法: 基础运算符 直接使用乘法运算符*是最简单的方式: let result = 3 * 5; //…