JS基础——ATM机终端程序编写(3.0)
利用函数进行代码实现,要点:将每一项操作单独写成一个函数,在需要时进行调用,弄清参数的传递。
- 创建模拟账户
使用数组创建账户
let
user
= ["xiaohei",
1234,
500,
"xiaobai",
4321,
1000];
- 登录
//登录
function
login(userIndex)
{
while (n
>
0
&&
state) {
console.log(`>>>>请输入您的用户名:<<<<`);
let
inputName
=
rs.question();
if (user.includes(inputName)) {
//查找输入的用户名是否存在(正确)
//用户名正确,输入密码
console.log(`>>>>请输入密码:<<<<`);
let
inputPWD
=
rs.question() -
0;
if (inputPWD
==
user[user.indexOf(inputName) +
1]) {
//判断密码是否正确
//密码正确,调用主题函数(执行操作)
main(user.indexOf(inputName));
}
else
{
//密码不正确
//密码错误
n--;
if (n
!=
0) {
console.log(`密码错误,你还有${n}次机会!`);
}
else
{
console.log(`密码错误,您的账户被冻结!`);
state
=
false;
break;
}
}
}
else
{
//用户名不正确
n--;
if (n
!=
0) {
console.log(`用户名错误,你还有${n}次机会!`);
}
else
{
console.log(`用户名错误,您的账户被冻结!`);
state
=
false;
break;
}
}
}
}
函数需要调用才会实现,在代码的最后进行调用,避免出现先使用后声明的问题。
login()
登录成功后,调用主函数
//密码正确,调用主题函数(执行操作)
main(user.indexOf(inputName));
- 选择要进行的操作
在主函数中,选择要进行的操作,在每一项操作中调用对应的函数体
//主体
function
main(userIndex)
{
console.log(`登录成功!`);
state1
=
true;
while (state1) {
//开始选择需要的操作
、查询 2、存钱 3、
取钱 4、转账 5、切换账户 0、退出`);
let
choice
=
rs.question() -
0;
switch (choice) {
case
0:
console.log(`Thankyou fou your welcom!`);
state
=
false;
state1
=
false;
break;
case
1:
console.log(`您当前账户余额为${user[userIndex+2]}`);
break;
case
2:
saveMoney(userIndex);
break;
case
3:
dropMoney(userIndex);
break;
case
4:
console.log(">>>>请输入您要转账的账户:<<<<");
let
targetName
=
rs.question();
let
transIndex
=
searchName(targetName);
//获取转账账号的下标
if ((transIndex
||
transIndex
==
0) &&
transIndex
!=
userIndex) {
transMoney(userIndex,
transIndex);
}
break;
case
5:
let
temp=changename(userIndex);
userIndex=temp;
break;
default:
console.log(`您操作有误,请重新选择`);
state
=
false;
break;
}
}
}
- 0、退出
退出整个程序,结束所有循环,我的方法是在循环外let一个状态值
case
0:
console.log(`Thankyou For Your Welcome!`);
state1
=
false;
state
=
false;
break;
- 1、查询余额
不用单独 写成函数,只需输出余额即可
case
1:
console.log(`您查询的账户余额为${balance_1}`);
break;
输出时使用字符串模板,方便语句中变量的输出
- 2、存钱
//存钱
function
saveMoney(savename)
{
console.log(`>>>>请输入您要存入的金额:<<<<`);
let
saveMoney
=
rs.question() -
0;
user[savename
+
2] +=
saveMoney;
}
- 3、取钱
要点是要判断取出的金额是否小于余额
//取钱
function
dropMoney(dropname)
{
console.log(`>>>>请输入您要取出的金额:<<<<`);
let
dropMoney
=
rs.question() -
0;
if (dropMoney
<=
user[dropname
+
2
&&
dropMoney
>=
0]) {
user[dropname
+
2] -=
dropMoney;
}
else
{
console.log(`您当前账户余额不足!`);
}
}
- 4、转账
首先判断要转账的账户是否存在,
case
4:
console.log(">>>>请输入您要转账的账户:<<<<");
let
targetName
=
rs.question();
let
transIndex
=
searchName(targetName);
//获取转账账号的下标
if ((transIndex
||
transIndex
==
0) &&
transIndex
!=
userIndex) {
transMoney(userIndex,
transIndex);
}
break;
//查找账户是否存在
function
searchName(name)
{
if (user.includes(name)) {
return
user.indexOf(name);
//如果存在,返回下标,这样才可以进行后期的操作(余额)
}
else
{
console.log("您输入的账号不存在!!!");
return
false;
// break;
state1=false;
}
}
其次判断转账的金额是否小于余额
//转账
function
transMoney(currentName,
transName)
{
//currentName当前账户的下标,transName账户的下标
console.log("请输入您要转账的金额:");
let
targetMoney
=
rs.question() -
0;
if (targetMoney
<=
user[currentName
+
2]) {
//判断当前账户的余额是否大于转账的金额
user[currentName
+
2] -=
targetMoney;
//currentName + 2当前账户的余额
user[transName
+
2] +=
targetMoney;
//transName + 2当前账户的余额
}
else
{
console.log(`您的余额不足!!!`);
}
}
- 5、切换账户
//切换账户
function
changename(currentName,
changeName)
{
//currentName当前账户的下标,changeName切换账户的下标
console.log(`>>>>请输入切换的账户:<<<<`);
let
inputchangeName
=
rs.question();
let
changeIndex
=
searchName(inputchangeName);
//获取切换账号的下标
if ((changeIndex
||
changeIndex
==
0) &&
changeIndex
!=
userIndex) {
console.log(`>>>>请输入密码:<<<<`);
let
changePWD
=
rs.question() -
0;
if (changePWD
==
user[changeIndex
+
1]) {
//判断密码是否正确
return
changeIndex;
}
else
{
console.log(`密码错误`);
}
}
else
{
console.log(`账号错误`);
}
}
将获得的切换的下标与原账户下标交换
case
5:
let
temp=changename(userIndex);
userIndex=temp;
break;
切换后会重新登录。
以上为使用函数编写ATM系统的方法。重点在于将函数单独写出,调用时注意参数的传递。
JS基础——ATM机终端程序编写(3.0)的更多相关文章
- (初学JS)JS基础——ATM机终端程序编写<1.0>
初步学习了JS基础,为了更好地将所学知识熟练运用,我进行了银行ATM存取款机的模拟程序编写,主要通过VScode终端实现系列操作. 我的ATM程序包括6个主要功能:1.查询余额 2.存钱 3. 取钱 ...
- JS基础——ATM机终端程序编写(2.0)
在1.0版本上,利用数组进行用户的创建,通过调用数组下标,进行密码.余额的使用.新增了切换账户.修改密码的功能 以下为数组版代码. 创建模拟账户 个账户: let user = ["xiao ...
- 01、模拟ATM机界面程序
一.概述 设计一个简单的模拟自动取款机ATM界面的程序,实现用户登录及取款等功能. 二.需求分析 (1)模拟自动取款机ATM界面,有常用功能. (2)主要功能包括;用户输入密码登录主界面.取款功能.取 ...
- ATM机小程序
用规范化项目录的格式模拟一个ATM系统. 项目功能: 登录(可支持多个账户(非同时)登录) 注册 查看余额 存钱 转账(给其他用户转钱) 查看账户流水 退出 提供的思路:ATM直译就是取款机,但是咱们 ...
- 第一次尝试使用JAVA编写的ATM机程序
package study; import java.util.Scanner; public class ATM { private static int[] users = { 111111, 2 ...
- JAVA - ATM机程序
ATM机程序 UnionPayTest.java package oo.day06.work; public class UnionPayTest { } interface UnionPay{ // ...
- 简单的小程序实现ATM机操作
简单的小程序实现ATM机操作 代码如下: package Day06; import java.util.Scanner; public class TestAccount { public stat ...
- 模拟ATM机银行系统
淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处 ...
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
随机推荐
- HDU 2899 Strange fuction [二分]
1.题意:给一个函数F(X)的表达式,求其最值,自变量定义域为0到100 2.分析:写出题面函数的导函数的表达式,二分求导函数的零点,对应的就是极值点 3.代码: # include <iost ...
- 【Linux】一个定时任务小脚本
需要一个定时任务,每隔固定时间停止,等待几分钟,然后在启动,每5分钟一个循环. 简要写了一下,如下,未来在优化: 3,8,13,18,23,28,33,38,43,48,53,58 * * * * s ...
- c++ 队列算法
include using namespace std; #define Maxsize 5 typedef int DataType; typedef struct Queue { DataType ...
- mysql主从之多线程复制
多线程复制 mysql 主从复制原理: 1. master 节点上的binlogdump 线程,在slave 与其正常连接的情况下,将binlog 发送到slave 上. 2. slave 节点的I/ ...
- $Noip2015/Luogu2661$ 信息传递 并查集
Luogu $Description$ 给定一个有向图,每个点只有一条出边.求图里的最小环. $Sol$ 使得这个题不难的地方就在于每个点只有一条出边叭. 一边连边一边更新答案.首先当然是初始$f[i ...
- Springboot 添加热部署
Pom 文件 添加依赖 添加插件 修改idea ,启动自动部署 <!--配置热部署--> <dependency> <groupId>org.springframe ...
- Okhttp解析—Okhttp概览
Okhttp解析-Okhttp概览 Okhttp作为目前Android使用最为广泛的网络框架之一,我们有必要去深入了解一下,本文是Okhttp解析的第一篇,主要是从宏观上认识Okhttp整个架构是如何 ...
- 1088 三人行 (20分)C语言
子曰:"三人行,必有我师焉.择其善者而从之,其不善者而改之." 本题给定甲.乙.丙三个人的能力值关系为:甲的能力值确定是 2 位正整数:把甲的能力值的 2 个数字调换位置就是乙的能 ...
- 小小知识点(三十八)MPSK和MQAM调制的实现——利用IQ调制
IQ调制的原理 (一)调制基本原理 (二)调制基本原理 利用IQ调制实现MPSK(QPSK 8PSK BPSK)和MQAM(16QAM 64QAM)调制 (一)利用IQ调制实现QPSK调制 ...
- 学会python正则表达式就是这么简单
一前言 本篇文章带大家快速入门正则表达式的使用,正则表达式的规则不仅适用python语言,基本大多数编程语言都适用,在日常使用中极为广泛,读者们有必要学好正则表达式.看完这篇文章,读者们要理解什么是正 ...