当前位置:首页 > JavaScript

js实现简单的ATM机

2026-04-04 23:31:15JavaScript

实现功能需求

ATM机需要包含以下基本功能:用户登录验证、查询余额、存款、取款、退出系统。采用JavaScript实现一个控制台或网页交互的模拟程序。

数据结构设计

使用对象存储用户账户信息,例如:

const accounts = [
  { id: '123456', pin: '7890', balance: 1000 },
  { id: '654321', pin: '0987', balance: 500 }
];

登录验证模块

创建函数验证用户输入的卡号和PIN码:

function authenticate(id, pin) {
  return accounts.find(acc => acc.id === id && acc.pin === pin);
}

余额查询模块

通过账户对象直接返回当前余额:

function checkBalance(account) {
  return account.balance;
}

存款操作模块

验证存款金额后更新余额:

js实现简单的ATM机

function deposit(account, amount) {
  if (amount > 0) {
    account.balance += amount;
    return true;
  }
  return false;
}

取款操作模块

检查余额是否充足后执行操作:

function withdraw(account, amount) {
  if (amount > 0 && amount <= account.balance) {
    account.balance -= amount;
    return true;
  }
  return false;
}

主流程控制

使用循环和条件语句构建交互逻辑(示例为控制台版):

let currentAccount = null;
while (true) {
  const choice = prompt('选择操作: 1-登录 2-查询 3-存款 4-取款 5-退出');

  switch(choice) {
    case '1':
      const id = prompt('输入卡号');
      const pin = prompt('输入PIN码');
      currentAccount = authenticate(id, pin);
      break;
    // 其他case处理剩余功能...
    case '5':
      process.exit();
  }
}

网页版实现要点

若需网页版本,可采用以下方式:

js实现简单的ATM机

<div id="atm">
  <input type="text" id="cardInput" placeholder="卡号">
  <button onclick="handleLogin()">登录</button>
  <div id="operationPanel" style="display:none;">
    <!-- 功能按钮和显示区域 -->
  </div>
</div>

通过DOM操作显示/隐藏界面元素,使用事件监听处理用户交互。

安全增强建议

实际应用中应增加:

  • 输入尝试次数限制
  • 密码掩码显示
  • 交易记录存储
  • 后端服务验证(纯前端实现仅为演示)

完整示例结构

建议将代码模块化为:

class ATM {
  constructor(accounts) {
    this.accounts = accounts;
    this.currentAccount = null;
  }

  // 各功能方法...
}

const atm = new ATM(accounts);
atm.start();

标签: 简单js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…