使用JavaScript实现ATM取款机

ATM机需求描述如下:

假设一个简单的ATM机的取款过程为:
  首先提示用户输入密码(password),假设默认密码为111111,最多只能输入3次,
  超过3次则提示用户“密码错误,请取卡”,结束交易。
 
  如果用户密码正确,再提示用户选择金额(amount),
  “请输入0到6中任意数字选择对应钱数:0?手动输入金额,1?100元, 2?300元,
   3?500元, 4?1000元, 5?3000元, 6?5000元”。
 
  输入数字如果错误,提示“输入错误,是否继续 Y/N”,选择Y重新提示输入钱数编号,
  选择N提示“输入错误,请取卡!”。选择数字为1到6,打印对应钱数,
  并提示“是否继续 Y/N”。选择数字0,ATM机只能输出100元纸币,
  自定义钱数要求最低为100元,最高为1000元。如果用户输入的金额符合上述要求,
  则打印输出用户取的钱数,并提示“取款完成,是否继续Y/N”;否则输出一句话“金额错误,
  是否继续 Y/N”,如果用户输入Y,提示用户重新选择取款金额,如果用户输入 N,
  打印“交易取消,请取卡!”
 
  ps:取款成功后,应该提示用户是否继续,总取款金额不能超过2万

  1 <!DOCTYPE html>
  2 <html>
  3
  4     <head>
  5         <meta charset="UTF-8">
  6         <title></title>
  7         <script type="text/javascript">
  8             ! function() {
  9                 //判断密码是否正确
 10                 var isPwdTrue = false;
 11                 for(var i = 1; i <= 3; i++) {
 12                     var pwd = prompt("请输入密码:");
 13                     if(pwd == 111111) {
 14                         isPwdTrue = true;
 15                         break;
 16                     } else {
 17                         alert("密码输入有误!");
 18                     }
 19                 }
 20                 if(isPwdTrue == false) {
 21                     alert("密码错误三次!请取卡!");
 22                     return;
 23                 }
 24
 25                 // 进行取款操作
 26                 var money = 0;
 27                 var moneySum = 0;
 28                 while(true) {
 29
 30                     console.log("请输入0到6中任意数字选择对应钱数:");
 31                     console.log("0 手动输入金额,1 100元, 2 300元,3 500元, 4 1000元, 5 3000元, 6 5000元");
 32                     var num = parseInt(prompt("请输入操作序号:"));
 33
 34                     switch(num) {
 35                         case 1:
 36                             money = 100;
 37                             alert("取款:" + money);
 38                             break;
 39
 40                         case 2:
 41                             money = 300;
 42                             alert("取款:" + money);
 43                             break;
 44
 45                         case 3:
 46                             money = 500;
 47                             alert("取款:" + money);
 48                             break;
 49
 50                         case 4:
 51                             money = 1000;
 52                             alert("取款:" + money);
 53                             break;
 54
 55                         case 5:
 56                             money = 3000;
 57                             alert("取款:" + money);
 58                             break;
 59
 60                         case 6:
 61                             money = 5000;
 62                             alert("取款:" + money);
 63                             break;
 64
 65                         case 0:
 66                             mon = parseInt(prompt("请输入取款金额:"));
 67                             if(mon % 100 == 0 && mon >= 100 && mon <= 1000) {
 68                                 money = mon;
 69                                 alert("取款金额为:" + mon + "元");
 70                                 break;
 71                             }
 72
 73                         default:
 74                             alert("输入错误");
 75                             break;
 76
 77                     }
 78
 79                     if(money > 0) {
 80                         if(moneySum + money < 20000) {
 81                             moneySum += money;
 82                             console.log("本次取款金额为" + money + "共取款" + moneySum);
 83
 84                         } else if(moneySum + money > 20000) {
 85                             console.log("取款失败,限取20000");
 86                             return;
 87                         } else {
 88                             moneySum += money;
 89                             console.log("本次取款金额为" + money + "共取款" + moneySum);
 90                             return;
 91                         }
 92                     }
 93
 94                     while(true) {
 95                         var isGo = prompt("是否继续?(Y/N)");
 96                         if(isGo == "Y" || isGo == "y") {
 97                             break;
 98                         } else if(isGo == "N" || isGo == "n") {
 99                             console.log("本次取款结束,请退卡");
100                             return;
101                         } else {
102                             console.log("输入错误");
103                             continue;
104                         }
105                     }
106
107                 }
108
109             }();
110         </script>
111     </head>
112
113     <body>
114     </body>
115
116 </html>
时间: 2024-12-10 09:17:51

使用JavaScript实现ATM取款机的相关文章

大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)

一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时代.大多数编程语言,尤其是近年问世的一些语言,都很好的支持了面向对象,您可能对此了如执掌,但是一些语言在OO方面却无法与其它高级语言相比,在这些语言上进行面向对象程序设计和开发会有些困难,例如本文要讨论的JavaScript.JavaScript是一门古老的语言,但是随着近期Web2.0 技术的热捧

ATM取款机模拟——数据结构课设

今天帮人写的第二篇课设 , ;-) 机智的窝 要求:大概说一下吧,就是要创建一个用户(初始化一账户),模拟ATM的业务(取款,100的整数倍,改密               码,查余额,等等,各种简单繁琐的操作 ;-) ) 直接贴代码吧: #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <string> using name

Oracle实战训练——ATM取款机业务

ATM取款机的数据库模拟开发和实战总结 一.ATM实战开发的简介. 学习了几天的Oracle,开始着手用数据库PL/SQL语言做一个简单的ATM取款机业务,主要是为了巩固数据库的知识,并非真正的去实现高端的业务.有兴趣的可以看看,希望对同胞们都有用. ATM的表.它有四张表,用户信息表userinfo,卡号信息表cardinfo,交易信息表tradeinfo,存款类型表deposit. 用户信息表userInfo customerID int 客户编号 主键 customerName varch

LinuxC语言实现ATM取款机实验Socket

链接:https://pan.baidu.com/s/1sZt4qhYc6CDJVpoJHbtw-Q 提取码:53ot 复制这段内容后打开百度网盘手机App,操作更方便哦 本实验用的是Centos7tcpBank1,ATM取款机实验,使用socket实现1.在server 和 client目录下,分别把tnet.c 中的ip地址改成自己的IP地址就可以.serv.sin_addr.s_addr = inet_addr("192.168.202.131");2.在服务端执行:make 3

模拟ATM取款机

题目: 假设一个简单的ATM机的取款过程是这样的:首先提示用户输入密码(pssword),最多只能输入三次,超过三次则提示用户“密码错误,请取卡”结束交易.如果用户密码正确,载体丝用户输入金额(amount),ATM机只能输出100元的纸币,一次取钱数要求最低100,最高2000元.如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户“交易完成,请取卡”,否则提示用户重新输入金额.假设用户密码是111111. int main(){    char pwd[10];    int

【学习ios之路:C语言】小程序:实现类似ATM取款机功能.

小程序:模拟ATM机取款的过程 1).定义两个能保存5个整形数的数组,一个用于保存5个人的卡号,一个用于保存对应卡号的密码 2).判断输入的卡号是否在数组中. 3).如果在数组中就让输入密码,判断是否和卡号对应的密码匹配. 4).判断密码,24小时内只允许输入3次错误的密码.输入错误应该提示还剩下的输入次数,3次都输入错误提示24小时内不允许操作该卡. 5).密码正确就让用户对该账户进行相应的操作. 6).注意取款的限制. 7).述功能对于一个ATM机是循环的过程,也就是说每个客户都会按照上面的

java基础:模拟ATM取款机

package com.atm; import java.util.Scanner; /** * ATM类实现 * * @author 向往的生活 */ public class ATM { public static void main(String[] args) { String[] user = new String[2]; String[] password = new String[2]; double[] amount = new double[2]; loginSelect(us

用c语言编写的一个ATM取款机程序

学了一个多星期的c语言了,老师布置来了作业,用C编写个ATM机的模拟程序,客户界面有,取款,2存款,3转账,4退出. 并且要求输入错误后,有三次机会重输,定义输入密码hellowold,用switch分支. #include<stdio.h> #include<string.h> #define key "hellowold"//定义密码 #define zhanghu "123456789" #define line "=====

Python 基础 - Day 5 Assignment - ATM 取款机

作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 ATM记录操作日志 提供管理接口,包括添加账户.用户额度,冻结账户等... 用户认证用装饰器 示例代码 https://github.com/triaquae/py3_training/tree/ma