const readline = require('readline-sync');
let maxLength = 5;
//账号库
let accountName = () => {
let account = [{ name: '123', password: 456 },
{ name: 'lisi', password: 123 },
{ name: 'wangwu', password: 123 }]
return account;
}
//信息库
let dateBase = () => {
let date = [
{ id: 1, name: 'zhang', age: '18', gender: 'man', score: '98' },
{ id: 2, name: 'liu', age: '19', gender: 'woman', score: '78' },
{ id: 3, name: 'wang', age: '20', gender: 'woman', score: '65' },
{ id: 4, name: 'wang', age: '20', gender: 'woman', score: '65' },
{ id: 5, name: 'yang', age: '22', gender: 'man', score: '100' }
];
return date;
}
//数据格式化
let dateFrom = (arr) => {
console.log('学号 \t 姓名\t 年龄\t 性别\t 成绩\t ')
for (let item of arr) {
let { id, name, age, gender, score } = item;
console.log(id + '\t', name + '\t', age + '\t', gender + '\t', score + '\t')
}
}
// 登陆
let login = (account) => {
let error = 3
while (true) {
console.log('请输入账号:')
let uesrname = readline.question();
console.log('请输入密码:')
let password = readline.question();
for (i = 0; i < account.length; i++) {
if (uesrname == account[i].name && password == account[i].password) {
console.log('登陆成功');
operation();
return true;
}
}
error--;
if (error == 0) {
console.log('输入次数过多,退出程序')
return true;
}
console.log('登录错误,还有' + error + '次机会,请重新输入')
}
}
//注册
let register = (account) => {
while (true) {
console.log('请输入注册账号:')
let username = readline.question();
let flag = false;
for (let i = 0; i < account.length; i++) {
if (account[i].name === username) {
console.log('账号已被占用,请重新注册~')
flag = true;
}
}
if (flag) {
continue;
}
console.log('请输入注册密码:')
let getpassword = readline.question();
let table = {
name: username,
password: getpassword
}
account.push(table);
console.log(`恭喜你,注册成功!账号为${username},密码为${getpassword}。即将跳转登录页面...`)
login(account);
break;
}
}
//分类查询
let classQuery = (key, date) => {
console.log('请输入查询信息:')
let queryDate = readline.question();
let reg = new RegExp(queryDate);
let arr = [];
let i =0;
for (let item of date) {
if (item[key].search(reg) != -1) {
arr.push(item)
i++;
}
}
if(i==0)
{
console.log('无此信息')
return;
}
dateFrom(arr);
}
//查询
let query = (date) => {
console.log('请选择查询方式: 1.查询所有 2.分类查询');
let option = readline.question() - 0;
switch (option) {
case 1:
dateFrom(date);
break;
case 2: {
console.log('请选择查询: 1.姓名 2.年龄 3.性别 4.成绩')
let queryOption = readline.question() - 0;
switch (queryOption) {
case 1: classQuery('name', date); break;
case 2: classQuery('age', date); break;
case 3: classQuery('gender', date); break;
case 4: classQuery('score', date); break;
default:console.log('选择有误,返回主菜单~');break;
}break;
}
}
}
//新增
let increre = (date) => {
console.log('请输入要新增学生的姓名:')
let name = readline.question();
console.log('请输入要新增学生的年龄:')
let age = readline.question();
console.log('请输入要新增学生的性别:')
let gender = readline.question();
console.log('请输入要新增学生的成绩:')
let score = readline.question();
date.push({ id: ++maxLength, name, age, gender, score })
console.log(maxLength);
console.log('新增成功!该学生信息如下:');
let arr = [];
arr.push(date[date.length - 1]);
dateFrom(arr);
}
//分类修改数据
let classModify = (date, i, key) => {
console.log('请输入新的数据');
let newDate = readline.question();
date[i][key] = newDate;
console.log('修改成功!该学生信息如下:');
let arr = [];
arr.push(date[i]);
dateFrom(arr);
return;
}
//修改
let modify = (date) => {
while (true) {
console.log('请输入要修改学生的学号:')
let id = readline.question();
for (let i = 0; i < date.length; i++) {
if (date[i].id == id) {
console.log('当前学生信息如下:')
let arr = [];
arr.push(date[i]);
dateFrom(arr);
console.log('请选择要修改的信息 1.姓名 2.年龄 3.性别 4.成绩 5.返回 ')
let option = readline.question() - 0;
switch (option) {
case 1: classModify(date, i, 'name'); break;
case 2: classModify(date, i, 'age'); break;
case 3: classModify(date, i, 'gender'); break;
case 4: classModify(date, i, 'score'); break;
case 5: return;
}
return;
}
}
console.log('无此学生信息,请重新输入')
}
}
//删除
let deletedate = (date) => {
while (true) {
console.log('请输入要删除的学号:')
let id = readline.question();
for (let i = 0; i < date.length; i++) {
if (date[i].id == id) {
console.log('当前学生信息如下:')
let arr = [];
arr.push(date[i]);
dateFrom(arr);
console.log('确认删除:1.是 2.否')
let num = readline.question();
if (num == 1) {
date.splice(i, 1)
console.log('删除成功!')
return;
}
if (num == 2) {
return;
}
}
}
console.log('无此学生信息,请重新输入')
}
}
//操作选项
let operation = () => {
let date = dateBase();
while (true) {
console.log('请选择操作 1.查询 2.新增 3.修改 4.删除 5.退出 ')
let option = readline.question() - 0;
switch (option) {
case 1: query(date); break;
case 2: increre(date); break;
case 3: modify(date); break;
case 4: deletedate(date); break;
case 5: return false;
}
}
}
//主页
let main = () => {
let account = accountName();
while (true) {
console.log('请选择 1.登陆 2.注册 3.退出')
let num = readline.question() - 0;
switch (num) {
case 1:
let flag = false;
flag = login(account);
if (flag) {
return;
}
break;
case 2:
register(account);
break;
case 3:
console.log('谢谢使用!');
return;
}
}
}
main();