创建账号
//创建账户(多账户)
let users = [
{ name: "F70", pwd: "123a", balance: 1000 },
{ pwd: "123b", balance: 2000, name: "F71" },
{ name: "F72", pwd: "123c", balance: 3000 },
];
//判断账户是否存在
function serach(name, temp) {
let i = 0;
for (let item in users) {
if (name == users[item].name) {
//返回账号下标
return item;
}
i++;
}
if (i == users.length && temp != "reg") {
console.log(`您输入的${name}不存在`);
return -1;
}
}
//判断用户是否登录成功
function islogin(state = true, changeIndex = 0) {
// changeIndex判断是不是切换账户调用
//设置登录次数
let count = 3;
//设置是否登录成功的变量
let login = false;
//登录成功账号下标
let index = 0;
let inputName = users[changeIndex].name;
while (count) { //判断3次机会是否用完
if (state) {
console.log("input your name:");
inputName = rs.question();
}
//判断是否切换的是当前账号
for (let i = 0; i < users.length; i++) {
if (inputName == users[i].name) { //账号是否存在
console.log("input your password:");
let inputPWD = rs.question();
if (inputPWD == users[i].pwd) { //判断密码是否正确
login = true; //登录成功
index = i; //修改账号下标
return [login, index];
} else if (count == 1) {
if (changeIndex || changeIndex == 0) {
console.log(`切换账号失败!!!`);
} else {
console.log(`密码输入错误,您的3次机会已经用完,账号冻结!`);
}
count = 0;
break;
} else {
console.log(`密码输入错误,请重新输入,您还有${--count}次机会!`);
break;
}
} else if (i == users.length - 1 && count > 1) { //
console.log(`账号输入错误,请重新输入,您还有${--count}次机会!`);
} else if (i == users.length - 1 && count == 1) {
if (changeIndex || changeIndex == 0) {
console.log(`切换账号失败!!!`);
} else {
console.log(`账号输入错误,您的3次机会已经用完,账号冻结!`);
}
count = 0; //当前count的值是1,重新赋值为0,终止登录功能。
break;
}
}
}
return [false];
}
//存钱
function saveMoney(index) {
console.log(`请输入存入金额:`);
let saveMoney = rs.question() - 0;
if (!isNaN(saveMoney)) {
users[index].balance += saveMoney;
// let temp = users[index].balance;
// temp += saveMoney;
// users[index].balance = temp;
console.log(`存入成功!!!`);
} else {
console.log(`输入金额有误!!!`);
}
}
//取钱
function dropMoney(index) {
console.log(`请输入取出金额:`);
let dropMoney = rs.question() - 0;
if (!isNaN(dropMoney)) {
if (dropMoney <= users[index].balance) {
users[index].balance -= dropMoney;
console.log(`取钱成功!!!`);
} else {
console.log(`余额不足!!`);
}
} else {
console.log(`输入金额有误!!!`);
}
}
//转账
function transMoney(index) {
console.log(`请输入转账账号:`);
let transName = rs.question();
if (transName != users[index].name) {
//获取账号下标
transIndex = serach(transName);
if (transIndex != -1) { //transIndex转账账号下标
console.log(`请输入转账金额:`);
let transMoney = rs.question() - 0;
if (!isNaN(transMoney)) {
if (transMoney <= users[index].balance) {
//当前账号减钱
users[index].balance -= transMoney;
//转帐账号加钱
users[transIndex].balance += transMoney;
console.log(`转帐成功!!!`);
} else {
console.log(`余额不足!!`);
}
} else {
console.log(`输入金额有误!!!`);
}
}
} else {
console.log(`不能给自己转账!!`);
}
}
//切换账户
function changeAccount(index) {
console.log(`请输入切换的账号:`);
let changeName = rs.question();
//获取切换账号的下标
changeIndex = serach(changeName);
if (changeIndex != index) {
if (changeIndex != -1) {
let temp = islogin(false, changeIndex);
if (temp[0]) {
return temp[1];
}
}
} else {
console.log(`您已经在${users[index].name}`);
}
}
//修改密码
function changePWD(index) { //当前下标
console.log(`请输入原密码:`);
let oldPWD = rs.question();
if (oldPWD == users[index].pwd) {
console.log(`请输入新密码:`);
let newPWD = rs.question();
if (newPWD.length == 6) {
users[index].pwd = newPWD;
console.log(`修改密码成功!`);
return true;
}
} else {
console.log(`原密码错误!!!`);
}
}
//注册
function reg() {
while (true) {
console.log(`请输入创建的账号`);
let newAccount = rs.question();
//判断新账号是否存在
let ishas = true;
ishas = serach(newAccount, "reg");
if (!ishas && ishas != 0) {
console.log(`请输入创建账号的密码`);
let newPWD = rs.question();
//在users中添加新账号
users.push({ name: newAccount, pwd: newPWD, balance: 0 });
console.log(`恭喜!!!注册成功!!!`);
return true;
} else {
console.log(`您输入的账号已经存在`);
console.log(`1、继续注册 2、退出注册`);
let option = rs.question() - 0;
if (option == 2) {
return;
}
}
}
}
//主程序
function main() {
let arr = islogin(); //当前登录账号下标
if (arr[0]) { //判断登录是否成功
let index = arr[1];
console.log(`${users[index].name}欢迎光临XXX银行!!!`);
//[判断用户是否选择"0"]
let state = false;
while (!state) {
console.log(`请选择功能:1、查询 2、存钱 3、取钱 4、转账 5、切换账户 6、修改密码 0、退出`);
let option = rs.question() - 0;
switch (option) {
case 1:
console.log(`您当前的余额为:${users[index].balance}`);
break;
case 2:
saveMoney(index);
break;
case 3:
dropMoney(index);
break;
case 4:
//index是当前账户下标
//为了判断是否给自己账户转钱
transMoney(index);
break;
case 5:
//切换成功后,改变主程序的共用下标
let temp = changeAccount(index);
if (temp || temp == 0) {
index = temp;
}
break;
case 6:
//获取修改密码是否成功
let state = changePWD(index);
if (state) {
//获取重新登录的账号下标
let temp = islogin();
if (temp[0]) {
//重新登录的账号下标覆盖主函数下标
index = temp[1];
}
} else {
console.log(`修改密码失败!!`);
}
break;
case 0:
console.log(`${users[index].name}感谢您,欢迎下次光临!!!`);
return true;
}
}
}
}
//运行程序
function system() {
while (true) {
console.log(`1、登录 2、注册 0、退出`);
let choice = rs.question() - 0;
switch (choice) {
case 1:
let result = main();
if (result) {
return;
}
break;
case 2:
reg();
break;
default:
return;
}
}
}
system();