当前位置:首页 > 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);  // 选择可乐

扩展功能建议

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

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

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

js实现自动售卖机

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

相关文章

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url,…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Im…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…