学生查询系统

const readline = require('readline-sync')//引用readline-sync
//用户名,密码
let user = [{
    username: 'yang',
    password: 123
}, {
    username: 'kai',
    password: 456
}, {
    username: 'ming',
    password: 789
}
];
// 注册
let fn2 = function () {
    console.log('请输入注册用户名:');
    let username1 = readline.question();
    console.log('请输入注册密码:');
    let password1 = readline.question() - 0;
    let obj = {};//创建对象
    obj.username = username1;
    obj.password = password1;
    user.push(obj);//添加数据
    console.log('注册成功,跳转登陆页面。。。。')
    add();
    // liuchen();
    //调用登录
}
//登陆
let add = function () {
    let s = 2;//错误的次数
    while (true) {
        console.log('请输入用户名:');
        let username = readline.question();
        console.log('请输入密码:');
        let password = readline.question() - 0;
        for (let i = 0; i < user.length; i++) {
            if (username == user[i].username && password == user[i].password) {//判断输的值与初始值是否相等
                console.log('欢迎你,登陆成功');
                liuchen();//调用登陆后的主流程
                return;
            }
        }
        //输入不正确,超过三次
        if (s != 0) {
            console.log(`密码或账户有误,你还有${s}次机会,请重新输入!`);
            s--;

        } else {
            console.log('账户锁定!');
            break;
        }
    }
}
//登录前主流程
let fn3 = function () {
    console.log('请选择以下要求:1.登陆 2.注册 3.退出');
    let num = readline.question() - 0;//选择要求
    switch (num) {
        case 1:
            add();//调用add
            break;
        case 2:
            fn2();//调用注册
            break;
        case 3:
            console.log('欢迎下次光临,再见!')
            return;//结束
    }
}
//查询所有
let arr = [
    { id: 1, name: 'liu', age: '18', gender: 'nan', score: '98' },
    { id: 2, name: 'li', age: '20', gender: 'nv', score: '80' },
    { id: 3, name: 'zhang', age: '20', gender: 'nv', score: '90' },
    { id: 4, name: 'ma', age: '21', gender: 'nan', score: '70' }
]
console.log('学号\t姓名\t年龄\t性别\t成绩\t');
for (let ai of arr) {//遍历出数组
    let str = '';
    for (let key in ai) {//遍历出键名

        str += ai[key] + '\t';
    }
    console.log(str);
}
let maxID = 4;//给一个固定的值
//分类查询
let chaxun = function () {
    while (true) {
        console.log('请选择查询类型: 1.姓名 2.年龄 3.性别 4.成绩 5.返回');
        let num3 = readline.question() - 0;
        switch (num3) {
            case 1:
                console.log('请输入要查询的名字:');
                fun('name');
                break;
            case 2:
                console.log('请输入要查询的年龄:');
                fun('age');
                break;
            case 3:
                console.log('请输入要查询的性别:');
                fun('gender');
                break;
            case 4:
                console.log('请输入要查询的成绩:');
                fun('score');
                break;
            case 5:
                return;
        }
    }
}
let fun = function (type) {//type键名为变量要用[]
    let name = readline.question();
    for (let i in arr) {//模糊查找
        if (arr[i][type].search(name) >= 0) {
            console.log(arr[i]);
        }
    }
//第二种方法
    // for (let i = 0; i < arr.length; i++) {//精确查找
    //     if (arr[i][type] == name) {
    //         console.log(arr[i]);
    //     }
    // }
}
//查询
let chaxun1 = function () {
    while (true) {
        console.log('请选择查询方式:1.查询所有 2.分类查询');
        let num2 = readline.question() - 0;
        switch (num2) {
            case 1://查询所有
                for (let a of arr) {//遍历数组
                    console.log(a);
                }
                break;
            case 2://分类查询
                chaxun();
                break;
        }
        break;
    }
}
//新增
let xinzhen = function () {
    while (true) {
        console.log('请输入新增学生姓名:');
        let name = readline.question();
        console.log('请输入新增学生的年龄:');
        let age = readline.question();
        console.log('请输入新增学生的性别:');
        let gender = readline.question();
        console.log('请输入新增学生的成绩:');
        let score = readline.question();
        let arr1 = {};//创建对象
        arr1 = ({ id: ++maxID, name, age, gender, score });
        arr.push(arr1);//添加数据
        console.log(arr1)
        break;
    }
}
//修改
let xiugai = function () {
    while (true) {
        console.log('请输入要修改学生的学号:');
        let id = readline.question() - 0;
        for (let i4 = 0; i4 < arr.length; i4++) {
            if (arr[i4].id == id) {//判断输入的id名
                console.log('当前学生信息如下:');
                console.log(arr[i4])
                console.log('请选择要修改的信息:1.姓名 2.年龄 3.性别 4.成绩 5.返回')
                let num4 = readline.question() - 0;
                switch (num4) {
                    case 1:
                        xiugai1(i4, 'name');
                        break;
                    case 2:
                        xiugai1(i4, 'age');
                        break;
                    case 3:
                        xiugai1(i4, 'gender');
                        break;
                    case 4:
                        xiugai1(i4, 'score');
                        break;
                    case 5:
                        return;
                }
            }
        } break;
    }
}
let xiugai1 = function (i4, xinxi) {//i4.为学生下标的属性,xinxi为要修改的键名(变量用[])
    console.log('请输入新的数据:');
    let name = readline.question();
    arr[i4][xinxi] = name;//输入的信息赋值给键名
    console.log('修改成功!该学生信息如下:');
    console.log(arr[i4]);
}
//删除
let shanchu = function () {
    while (true) {
        console.log('请输入要删除学生的学号:');
        let id1 = readline.question() - 0;
        for (let i5 = 0; i5 < arr.length; i5++) {
            if (arr[i5].id == id1) {//判断输入的id1是否等于对象的键名
                console.log('当前学生信息如下:');
                console.log(arr[i5]);
                console.log('确定删除:1.是 2.否');
                let num5 = readline.question() - 0;
                if (num5 == 1) {
                    console.log('删除成功!删除后信息如下:');
                    arr.splice(i5, 1);//删除数据i为下标,1为删除的个数
                    for (let a of arr) {
                        console.log(a);
                    }
                }

            }
        }
        break;
    }
}
//主控住流程
let liuchen = function () {
    while (true) {
        console.log('请选择一下操作:。。1.查询 2.新增 3.修改 4.删除 5.退出');
        let num1 = readline.question() - 0;
        switch (num1) {
            case 1:
                //查询
                chaxun1();

                break;
            case 2:
                // 新增
                xinzhen();
                break;
            case 3:
                //修改
                xiugai();
                break;
            case 4:
                //删除
                shanchu();
                break;
            case 5:
                //退出
                console.log('欢迎下次使用,再见!');
                return;
        }
    }
}
fn3();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值