
正文
(初学JS)JS基础——ATM机终端程序编写<1.0>
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
初步学习了JS基础,为了更好地将所学知识熟练运用,我进行了银行ATM存取款机的模拟程序编写,主要通过VScode终端实现系列操作。
我的ATM程序包括6个主要功能:1、查询余额 2、存钱 3、 取钱 4、转账 5、切换账户 6、修改密码 0、退出(附加功能)。因我的学习过程是从简单数据类型到引用数据类型,所以我写了由简到繁的多个ATM版本,接下来来就详细说说在基础版中我对每个功能的编写思路与是实现方法.
- 创建模拟账户
基础版我只使用简单数据类型进行账户创建,用变量名建立了2个账户:
let
username_1
=
"dahuang";
let
password_1
=
4546;
let
balance_1
=
50;
let
username_2
=
"cuihua";
let
password_2
=
2528;
let
balance_2
=
80;
每一个账户都有3个变量:用户名、密码、余额,两个账户之间用不同的变量名分别
- 登录
console.log(`**********************
请输入您的用户名
*********************`);
let
inputName
=
rs.question();
console.log(`**********************
请输入您的密码
*********************`);
let
inputPWD
=
rs.question() -
0;
要点在于判断输入的内容是否与创建的用户名、密码匹配,难点在于username_1要与password_1匹配,username_2要与password_2匹配。
if (inputName
==
username_1
&&
inputPWD
==
password_1
||
inputName
==
username_2
&&
inputPWD
==
password_2
再增加一项限制,只有3次机会,若机会用完则账户冻结,退出程序,将整个代码放入while循环。
while (n
>
0
&&
state1)
在输入错误后,减少机会
else
{
n--;
console.log(`你还有${n}次输入机会`);
}
- 选择要进行的操作
使用switch循环,获取用户输入,进入对应的程序
switch (choice_1) {
case
0:
case
1:
case
2:
case
3:
case
4:
default:
console.log(`您操作有误,请重新选择`);
state
=
false;
// state1=false;
break;
}
default为除以上选项外的操作,在此处是用户操作错误,没有输入正确的选项数字,因此系统会让用户重新选择。
- 0、退出
退出整个程序,结束所有循环,我的方法是在循环外let一个状态值
case
0:
console.log(`Thankyou For Your Welcome!`);
state1
=
false;
state
=
false;
break;
- 1、查询余额
case
1:
console.log(`您查询的账户余额为${balance_1}`);
break;
输出时使用字符串模板,方便语句中变量的输出
- 2、存钱
case
2:
console.log(`请输入您要存入的金额`);
let
saveMoney_1
=
rs.question() -
0;
balance_1
+=
saveMoney_1;
console.log(`您${inputName}的账户余额为${balance_1}`);
break;
- 3、取钱
要点是要判断取出的金额是否小于余额
case
3:
console.log(`请输入您要取出的金额`);
let
dropMoney_1
=
rs.question() -
0;
if (dropMoney_1
<=
balance_1) {
balance_1
-=
dropMoney_1;
console.log(`您${inputName}的账户余额为${balance_1}`);
}
else
{
console.log(`余额不足`);
}
break;
若为多账户,还需要判断余额是否与账户匹配,这里我只写了一个账户,只需再增加一个判断即可
- 4、转账
首先判断要转账的账户是否存在,其次判断转账的金额是否小于余额
case
4:
console.log(`请输入您要转账的账户`)
let
transferName_1
=
rs.question();
if (transferName_1
==
username_2) {
console.log(`请输入转账金额`)
let
transferMoney_1
=
rs.question() -
0;
if (transferMoney_1
<=
balance_1) {
balance_1
-=
transferMoney_1;
balance_2
+=
transferMoney_1;
console.log(`当前${inputName}的余额为${balance_1}`)
console.log(`${transferName_1}的余额为${balance_2}`)
}
else
{
console.log(`余额不足`);
}
}
else
{
console.log(`账户不存在`)
}
以上就是我初学简单数据类型后能够实现效果的代码。
(初学JS)JS基础——ATM机终端程序编写<1.0>的更多相关文章- JS基础——ATM机终端程序编写(3.0)
利用函数进行代码实现,要点:将每一项操作单独写成一个函数,在需要时进行调用,弄清参数的传递. 创建模拟账户 使用数组创建账户 let user = ["xiaohei", 1234 ...
- JS基础——ATM机终端程序编写(2.0)
在1.0版本上,利用数组进行用户的创建,通过调用数组下标,进行密码.余额的使用.新增了切换账户.修改密码的功能 以下为数组版代码. 创建模拟账户 个账户: let user = ["xiao ...
- 01、模拟ATM机界面程序
一.概述 设计一个简单的模拟自动取款机ATM界面的程序,实现用户登录及取款等功能. 二.需求分析 (1)模拟自动取款机ATM界面,有常用功能. (2)主要功能包括;用户输入密码登录主界面.取款功能.取 ...
- ATM机小程序
用规范化项目录的格式模拟一个ATM系统. 项目功能: 登录(可支持多个账户(非同时)登录) 注册 查看余额 存钱 转账(给其他用户转钱) 查看账户流水 退出 提供的思路:ATM直译就是取款机,但是咱们 ...
- Node.js + Web Socket 打造即时聊天程序嗨聊
前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前 ...
- node.js学习(二)--Node.js控制台(REPL)&;&;Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- Node.js系列基础学习----安装,实现Hello World, REPL
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...
- 第八节 JS运动基础
运动基础 让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动(速度不变) 运动框架及应用: 运动框架: 在 ...
- Node.js npm基础安装配置&;创建第一个VUE项目
使用之前,我们先来明白这几个东西是用来干什么的. node.js: 一种javascript的运行环境,能够使得javascript脱离浏览器运行.Node.js的出现,使得前后端使用同一种语言,统一 ...
随机推荐- WPF学习系列 简单的窗体设置
今天要学习的源码是一个窗体设置.效果如下,可拖拽.这让我想起了vs的启动界面 下面是源码的情况 项目结构: 窗体代码: cs代码 1.新建项目 略 2.设置窗体 AllowsTransparency= ...
- 【转】Split strings the right way &ndash; or the next best way
I know many people are bored of the string splitting problem, but it still seems to come up almost ...
- xml_02
1.xml 2.对于XML文档的约束 |-DTD <!DOCTYPE 根元素 [ <!ELEMENT 元素名 (xx)> <!ATTLIS ...
- 运行出现 Multiple dex files define Landroid/support/annotation/AnimRes 解决方法
1. 拷贝google-play-services_lib/libs/目录下的android-support-v4.jar到xxxr/libs/下 2. 工程进行如下设置:
- koa入门
创建koa2工程 首先初始化项目 npm init -y 项目名称 安装koa $ npm i koa 我们创建一个目录hello-koa并作为工程目录用VS Code打开.然后,我们创建app.js ...
- Oracle11g温习-第十四章:约束( constraint )
2013年4月27日 星期六 10:48 1.约束的功能 通过一些强制性商业规则,保证数据的完整性.一致性 2.约束的类别 1 ) not null 不允许为空 2 ) check ...
- Java 动态代理 两种实现方法
AOP的拦截功能是由java中的动态代理来实现的.说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执 ...
- 关于XCode 的agvtool命令行
简介:用agvtool如何来自动更新版本号和bulid version agvtool是一个命令行工具,允许你自动递增到下一个最高的数量或具体的数字这些数字.本文档提供了更新您的构建和版本号码使用 ...
- 前台通过form表单向Django后台传输数据,Django处理后返回给前台
摘要:Django前后台数据传递 通过action将数据传输给apitest这个地址,使用get方法传递,此处需要传递name="request_method"的下拉列表值和nam ...
- TW实习日记:第24-25天
项目的交付期是真的赶...一直在不断地修改一些小bug,然后消息推送功能出了一个问题,就是不知道为什么PC端会发送两次消息到移动端后台.其中第一条正常第二条会有乱码不正常,可以说是很奇怪了,一开始都认 ...
利用函数进行代码实现,要点:将每一项操作单独写成一个函数,在需要时进行调用,弄清参数的传递. 创建模拟账户 使用数组创建账户 let user = ["xiaohei", 1234 ...
在1.0版本上,利用数组进行用户的创建,通过调用数组下标,进行密码.余额的使用.新增了切换账户.修改密码的功能 以下为数组版代码. 创建模拟账户 个账户: let user = ["xiao ...
一.概述 设计一个简单的模拟自动取款机ATM界面的程序,实现用户登录及取款等功能. 二.需求分析 (1)模拟自动取款机ATM界面,有常用功能. (2)主要功能包括;用户输入密码登录主界面.取款功能.取 ...
用规范化项目录的格式模拟一个ATM系统. 项目功能: 登录(可支持多个账户(非同时)登录) 注册 查看余额 存钱 转账(给其他用户转钱) 查看账户流水 退出 提供的思路:ATM直译就是取款机,但是咱们 ...
前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前 ...
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...
运动基础 让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动(速度不变) 运动框架及应用: 运动框架: 在 ...
使用之前,我们先来明白这几个东西是用来干什么的. node.js: 一种javascript的运行环境,能够使得javascript脱离浏览器运行.Node.js的出现,使得前后端使用同一种语言,统一 ...
- WPF学习系列 简单的窗体设置
今天要学习的源码是一个窗体设置.效果如下,可拖拽.这让我想起了vs的启动界面 下面是源码的情况 项目结构: 窗体代码: cs代码 1.新建项目 略 2.设置窗体 AllowsTransparency= ...
- 【转】Split strings the right way &ndash; or the next best way
I know many people are bored of the string splitting problem, but it still seems to come up almost ...
- xml_02
1.xml 2.对于XML文档的约束 |-DTD <!DOCTYPE 根元素 [ <!ELEMENT 元素名 (xx)> <!ATTLIS ...
- 运行出现 Multiple dex files define Landroid/support/annotation/AnimRes 解决方法
1. 拷贝google-play-services_lib/libs/目录下的android-support-v4.jar到xxxr/libs/下 2. 工程进行如下设置:
- koa入门
创建koa2工程 首先初始化项目 npm init -y 项目名称 安装koa $ npm i koa 我们创建一个目录hello-koa并作为工程目录用VS Code打开.然后,我们创建app.js ...
- Oracle11g温习-第十四章:约束( constraint )
2013年4月27日 星期六 10:48 1.约束的功能 通过一些强制性商业规则,保证数据的完整性.一致性 2.约束的类别 1 ) not null 不允许为空 2 ) check ...
- Java 动态代理 两种实现方法
AOP的拦截功能是由java中的动态代理来实现的.说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执 ...
- 关于XCode 的agvtool命令行
简介:用agvtool如何来自动更新版本号和bulid version agvtool是一个命令行工具,允许你自动递增到下一个最高的数量或具体的数字这些数字.本文档提供了更新您的构建和版本号码使用 ...
- 前台通过form表单向Django后台传输数据,Django处理后返回给前台
摘要:Django前后台数据传递 通过action将数据传输给apitest这个地址,使用get方法传递,此处需要传递name="request_method"的下拉列表值和nam ...
- TW实习日记:第24-25天
项目的交付期是真的赶...一直在不断地修改一些小bug,然后消息推送功能出了一个问题,就是不知道为什么PC端会发送两次消息到移动端后台.其中第一条正常第二条会有乱码不正常,可以说是很奇怪了,一开始都认 ...







