函数对象版实现简易Atm
const readLine = require('readLine-sync');
let role = [{
username: 1,
password: 1,
money: 100
}, {
username: 2,
password: 2,
money: 200
}];
// 主程序
function test() {
let temp = false;
let arr = true;
let Index = 0;
let count = 3;
while (arr) {
console.log('1.登录 2.注册 3退出');
let Key = readLine.question() - 0;
let arr1 = true;
switch (Key) {
case 1:
while (arr1) {
console.log("输入账号");
let InptName = readLine.question() - 0;
console.log("输入密码");
let InptPass = readLine.question() - 0;
if (login(InptName, InptPass)[1] == true) {
Index = login(InptName, InptPass)[0]
arr = false;
temp = true;
arr1 = false;
console.log("登录成功");
}
if (arr1) {
--count
console.log("密码错误你还有" + count + "次机会");
}
if (count == 0) {
arr1 = false;
}
}
break;
case 2:
register();
break;
case 3:
arr = false;
break;
default:
break;
}
}
if (temp == true) {
while (temp) {
console.log('1.存钱 2.取钱 3.查看 4.退出 5.转账 6.切换账号 7.修改密码');
let key = readLine.question() - 0;
switch (key) {
case 1:
console.log('输入存钱金额');
let num = readLine.question() - 0;
Deposit(num, Index)
break;
case 2:
console.log('输入取钱金额');
let takenum = readLine.question() - 0;
if (!take(takenum, Index)) {
console.log("余额不够");
}
break;
case 3:
check(Index)
break;
case 4:
temp = false
break;
case 5:
console.log('输入转账金额');
let trans = readLine.question() - 0;
console.log('输入转账账号');
let account = readLine.question() - 0;
if (account == role[Index].username) {
console.log('不能给自己转账');
} else {
transferaccounts(trans, Index, account)
}
break;
case 6:
console.log('输入切换账号账号');
let changeuser = readLine.question() - 0;
console.log('输入切换账号密码');
let changepass = readLine.question() - 0;
if (changepass == role[Index].username) {
console.log('不能切换自己');
} else {
let arr = Changeuser(changeuser, changepass);
Index = arr[0]
}
break;
case 7:
console.log('输入新密码密码');
let newPassword = readLine.question() - 0;
ChangePassword(Index, newPassword)
temp = false;
break;
default:
console.log('操作错误');
break;
}
}
}
}
// 登录
function login(username, password) {
let state = false;
let index = 0;
for (let i = 0; i < role.length; i++) {
if (username == role[i].username && password == role[i].password) {
index = i;
state = true
}
}
return [index, state]
}
// 注册
function register() {
let arr = false;
console.log("输入账号");
let InptName = readLine.question() - 0;
console.log("输入密码");
let InptPass = readLine.question() - 0;
let res = role.some(function (item) {
return InptName == item.username
})
console.log(res);
if (!res) {
role.push({
username: InptName,
password: InptPass,
money: 0
})
console.log('注册成功');
console.log(role);
} else {
console.log('账号已存在');
}
}
// 存钱
function Deposit(value, index) {
role[index].money += value
console.log(role[index].money);
}
// 取钱
function take(value, index) {
if (value <= role[index].money) {
role[index].money -= value
} else {
return false;
}
}
// 查看
function check(index) {
console.log(role[index].money);
}
// 转账
function transferaccounts(value, index, IndexArr) {
let state = false;
for (let i in role) {
if (IndexArr == role[i].username) {
if (take(value, index) == false) {
console.log("转账余额不够");
break;
} else {
role[i].money += value;
state = true;
}
break;
}
}
if (!state) {
console.log('查无此人');
}
}
//切换账号
function Changeuser(user, pass) {
let arr = login(user, pass)
return arr
}
//修改密码
function ChangePassword(index, value) {
if (role[index].password == value) {
console.log('不能与原密码一致');
} else {
role[index].password = value
state = true
test()
}
}
test();

浙公网安备 33010602011771号