JS基础——ATM机终端程序编写(3.0)

利用函数进行代码实现,要点:将每一项操作单独写成一个函数,在需要时进行调用,弄清参数的传递。

  1. 创建模拟账户

    使用数组创建账户

let user = ["xiaohei", 1234, 500, "xiaobai", 4321, 1000];

  1. 登录

//登录

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));

  1. 选择要进行的操作

在主函数中,选择要进行的操作,在每一项操作中调用对应的函数体

//主体

function main(userIndex) {

console.log(`登录成功!`);

state1 = true;

while (state1) {

//始选择需要的操作

console.log(`请选择您的操作:1、查询 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;

}

}

}

  1. 0、退出

退出整个程序,结束所有循环,我的方法是在循环外let一个状态值

case 0:

console.log(`Thankyou For Your Welcome!`);

state1 = false;

state = false;

break;

  1. 1、查询余额

不用单独 写成函数,只需输出余额即可

case 1:

console.log(`您查询的账户余额为${balance_1}`);

break;

输出时使用字符串模板,方便语句中变量的输出

  1. 2、存钱

//存钱

function saveMoney(savename) {

console.log(`>>>>请输入您要存入的金额:<<<<`);

let saveMoney = rs.question() - 0;

user[savename + 2] += saveMoney;

}

  1. 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(`您当前账户余额不足!`);

}

}

  1. 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(`您的余额不足!!!`);

}

}

  1. 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系统的方法。重点在于将函数单独写出,调用时注意参数的传递。

 

posted @ 2019-11-16 21:37  袁钧钧  阅读(667)  评论(0编辑  收藏  举报