const rs = require("readline-sync");
//創建多個賬戶
let users = [
"zh1", "111", 10000,
"zh2", "222", 30000,
"zh3", "333", 50000,
];
//系統
function xitong() {
console.log(`1-登錄 2-注冊 0-退出`);
let num = rs.question() - 0;
switch (num) {
case 1://登錄
let dl = main();
break;
case 2://注冊
login();
break;
case 0://退出
console.log(`期待您下次光臨本銀行!再見!`);
return;
default:
return;
}
}
xitong();
//注冊函式體
function login() {
while (true) {//注冊系統設定回圈
console.log(`請輸入您注冊的賬戶:`);
let newZhangHu = rs.question();//獲取創建的賬戶
if (users.indexOf(newZhangHu) == -1) {//查找資料庫里是否存在該賬戶
console.log(`請輸入您創建賬戶的密碼:`);
let newMiMa = rs.question();//獲取創建賬戶的密碼
users.push(newZhangHu, newMiMa, 80000);//資料庫里添加新的賬戶密碼及其余額
console.log(`恭喜靚仔!創建賬戶成功!`);
main();//注冊成功后直接進入登錄
break;
} else {//若資料庫里存在該賬戶則輸出以下內容
console.log(`您輸入的賬戶已存在!!!`);
console.log(`請選擇您要繼續執行的操作
1-繼續注冊 2-退出注冊`);
let option = rs.question() - 0;//獲取用戶選擇
if (option == 2) {//選擇2則直接退出,否則就繼續注冊(即:本身就會再次回圈)
return;
}
}
}
}
//登錄主程式函式體
function main() {
let arr = islogin();//當前登錄賬號下標
if (arr[0]) { //判斷登錄是否成功
let index = arr[1];
console.log(`尊敬的${users[index]} 歡迎光臨阿良銀行!!!`);
//[判斷用戶是否選擇"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 + 2]}`);
break;
case 2:
saveMoney(index);
break;
case 3:
dropMoney(index);
break;
case 4:
transMoney(index);
break;
case 5:
let QieHuanXiaBiao = QieHuanZhangHu(index);
if (QieHuanXiaBiao || QieHuanXiaBiao === 0) {
index = QieHuanXiaBiao;
console.log(`切換成功!您已在${users[index]}賬戶`);
} else {
console.log(`切換失敗!!!`);
}
break;
case 6:
let ischange = XiuGaiMiMa(index);
console.log(`密碼修改成功!請重新登錄!`);
if (ischange) {//修改密碼成功后,重新登錄
let temp = islogin();
if (temp[0]) {
index = temp[1];
} else {
return;
}
}
break;
case 0:
console.log(`歡迎光臨!請慢走!`);
state = true;
return true;
}
}
}
}
// 判斷函式體
function islogin(ischange = true, QieHuanXiaBiao = 0) {
//設定是否登錄成功的變數
let login = false;
//登錄成功賬戶下標
let index = 0;
//登錄次數為3次
let count = 3;
while (count) { //判斷3次機會是否用完
let inputName = users[QieHuanXiaBiao];
if (ischange) {
console.log("請輸入您的賬戶:");//輸入賬戶
inputName = rs.question();
}
for (let i = 0; i < users.length; i++) {
if (inputName == users[i]) { //賬號是否存在
console.log("請輸入您的密碼:");//輸入密碼
let inputPWD = rs.question();
if (inputPWD == users[i + 1]) { //判斷密碼是否正確
login = true; //登錄成功
index = i; //修改賬號下標
// count = 3;//恢復默認登錄的次數
return [login, index];
} else if (count == 1) {
console.log(`密碼輸入輸入錯誤,您的3次機會已經用完,賬號凍結!`);
count = 0;
break;
} else {
console.log(`密碼輸入錯誤,請重新輸入,您還有${--count}次機會!`);
break;
}
} else if (i == users.length - 1 && count > 1) { //判斷比較到陣列最后一個值,且機會還有
console.log(`賬號輸入錯誤,請重新輸入,您還有${--count}次機會!`);
ischange = true;
} else if (i == users.length - 1 && count == 1) {
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 + 2] += saveMoney//余額改變
console.log(`存款成功!`);
} else {
console.log(`您的輸入有誤!!!`);//輸入金額不為數值型則提醒客戶
}
}
//取錢函式體
function dropMoney(index) {
console.log(`請輸入您要取出的金額`);
let dropMoney = rs.question() - 0;
if (!isNaN(dropMoney)) {
if (dropMoney <= users[index + 2]) {//判斷余額是否充足
users[index + 2] -= dropMoney;
console.log(`取錢成功!!!`);
} else {
console.log(`您的余額不足! 取款失敗!`);//余額不足提醒用戶
}
} else {
console.log(`您的輸入有誤!!!`);
}
}
//轉賬函式體
function transMoney(index) {
console.log(`請輸入您要轉入的賬戶:`);
let ZhuanRuZhangHu = rs.question();
if (ZhuanRuZhangHu != users[index]) {//判斷轉帳賬戶不是當前賬戶
let transIndex = users.indexOf(ZhuanRuZhangHu); //回傳轉賬賬號下標
if ((transIndex != -1) && (transIndex % 3 == 0)) { //判斷轉賬的賬戶是否存在
console.log(`請輸入轉賬金額:`);
let transMoney = rs.question() - 0;
if (!isNaN(transMoney)) {
if (transMoney <= users[index + 2]) {
//當前賬戶減錢
users[index + 2] -= transMoney;
//轉帳賬戶加錢
users[transIndex + 2] += transMoney;
console.log(`轉帳成功!!!`);
} else {
console.log(`您的余額不足!!`);
}
} else {
console.log(`您輸入的金額有誤!!!`);
}
} else {
console.log(`輸入的${ZhuanRuZhangHu},不存在`);
}
} else {
console.log(`您不能給自己轉賬!!`);
}
}
//切換賬戶函式體
function QieHuanZhangHu(index) {
console.log(`請輸入您要切換的賬戶:`);
let QieHuanZhangHu = rs.question();//獲取切換的賬戶
let QieHuanXiaBiao = users.indexOf(QieHuanZhangHu);//獲取切換賬戶的下標
if (QieHuanXiaBiao != index) {//不等于當前帳戶
if (QieHuanXiaBiao % 3 == 0) {//判斷切換的賬戶在不在
//下面代碼第一個引數是控制不需要再輸入賬號,第二個引數是把切換的賬戶下標傳給登錄使用
let temp = islogin(false, QieHuanXiaBiao);//判斷函式里進行判斷
if (temp[0]) {
return temp[1];
}
} else {
console.log(`您輸入的${QieHuanZhangHu}賬戶不存在!!!`);
}
}else{
console.log(`您當前已在${QieHuanZhangHu}賬戶`);
}
}
//修改密碼函式體
function XiuGaiMiMa(index) {
console.log(`請輸入您的原密碼`);
let pwd = rs.question();
if (pwd == users[index + 1]) {//判斷原密碼是否輸入正確
console.log(`請輸入您的新密碼`);
let newPWD = rs.question();//獲取新密碼
users[index + 1] = newPWD;//新密碼覆寫原密碼
return true;
} else {
console.log(`您輸入的原密碼有誤!!!`);
}
return false;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/282998.html
標籤:JavaScript
