当前位置:首页 > 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实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…