zoukankan      html  css  js  c++  java
  • JavaScript学生信息系统

      1 const readline = require("readline-sync"); //输出功能
      2 //登录注册数组
      3 let user = [{
      4         account: "d",
      5         password: 1
      6     },
      7     {
      8         account: "e",
      9         password: 2
     10     },
     11     {
     12         account: "f",
     13         password: 3
     14     }
     15 ]
     16 //学生信息数组
     17 let user1 = [{
     18         id: 1,
     19         name: 'liu',
     20         age: '18',
     21         gender: 'male',
     22         score: '98'
     23     },
     24     {
     25         id: 2,
     26         name: 'chen',
     27         age: '20',
     28         gender: 'famale',
     29         score: '100'
     30     },
     31     {
     32         id: 3,
     33         name: 'zhang',
     34         age: '17',
     35         gender: 'male',
     36         score: '77'
     37     },
     38     {
     39         id: 4,
     40         name: 'li',
     41         age: '22',
     42         gender: 'famale',
     43         score: '65'
     44     },
     45     {
     46         id: 5,
     47         name: 'sun',
     48         age: '19',
     49         gender: 'male',
     50         score: '80'
     51     }
     52 ];
     53 // //注册
     54 function regsiter(user) {
     55     let status = true;
     56     while (status) {
     57         let x = 1;
     58         console.log("请输入注册账号:");
     59         let account = readline.question();
     60         for (let index = 0; index < user.length; index++) {
     61             if (account == user[index].account) {
     62                 console.log("账号已存在");
     63                 x++;
     64             }
     65         }
     66         if (x == 1) {
     67             console.log("请输入注册密码:");
     68             let password = readline.question();
     69             user.push({
     70                 account,
     71                 password
     72             });
     73             console.log("注册成功!跳转登录页面...");
     74             return;
     75         }
     76     }
     77 }
     78 //登录
     79 function login(user) {
     80     let status = true; //状态值
     81     while (status) {
     82         let x = 1; //状态值
     83         console.log("请输入账号:");
     84         let account = readline.question();
     85         console.log("请输入密码:");
     86         let password = readline.question();
     87         for (let index = 0; index < user.length; index++) {
     88             if (account == user[index].account && password == user[index].password) {
     89                 console.log("登录成功");
     90                 x++;
     91                 return;
     92             }
     93         }
     94         if (x == 1) {
     95             console.log("登录失败");
     96         }
     97     }
     98 }
     99 // //选择业务
    100 function option() {
    101     console.log("请选择业务:1.登录 2.注册 3.退出");
    102     let choice = readline.question() - 0;
    103     while (isNaN(choice) || choice < 1 || choice > 3) {
    104         console.log("输入有误,请重输:");
    105         choice = readline.question() - 0;
    106     }
    107     switch (choice) {
    108         case 3:
    109             console.log("谢谢使用,再见");
    110             break;
    111         case 2:
    112             regsiter(user);
    113             login(user);
    114             break;
    115         case 1:
    116             login(user);
    117             break;
    118 
    119         default:
    120             break;
    121     }
    122 
    123 
    124 }
    125 option();
    126 // //查询
    127 function search(user1) {
    128     console.log("请选择查询方式:1.查询所有 2.分类查询");
    129     let choice = readline.question() - 0; //查询方式
    130     while (isNaN(choice) || choice < 1 || choice > 2) {
    131         console.log("选择有误,请重输:");
    132         choice = readline.question() - 0;
    133     }
    134     switch (choice) {
    135         case 2: //分类查询
    136             console.log("请选择查询类型:1.姓名 2.年龄 3.性别 4.成绩");
    137             let choice1 = readline.question() - 0; //查询类型
    138             while (isNaN(choice1) || choice1 < 1 || choice1 > 4) {
    139                 console.log("请重输");
    140                 choice1 = readline.question() - 0;
    141             }
    142             console.log("请输入查询信息");
    143             let message = readline.question();
    144             for (let i = 0; i < user1.length; i++) {
    145                 let a = ["id", "name", "age", "gender", "score"]; //用数组拿到对象的键名
    146                 let b = a[choice1]; //根据用户输入找到对应的键,用数组拿出来
    147                 let str = user1[i][b]; //在对象中,要查询的是键对应的值,用字符串把值取出来
    148                 if (str.includes(message)) {
    149                     console.log(user1[i]); //如果字符串包含所要找的字符,那么输出这个对象
    150                 }
    151             }
    152             break;
    153         case 1: //查询所有
    154             for (let index = 0; index < user1.length; index++) {
    155                 console.log(user1[index]);
    156             }
    157             break;
    158         default:
    159             break;
    160     }
    161 }
    162 // //新增
    163 function add(user1, length) {
    164     let status = true; //状态值
    165     console.log("请输入新增学生姓名:");
    166     let name = readline.question();
    167     let reg1 = /[a-zA-Z]/; //使用正则表达式来确保学生姓名输入正确
    168     while (!reg1.test(name)) {
    169         console.log("学生姓名不得包含数字和非法字符,请重输");
    170         name = readline.question();
    171     }
    172     console.log("请输入新增学生年龄:");
    173     let age = readline.question() - 0;
    174     while (isNaN(age) || age < 1) { //保证输出正确年龄
    175         console.log("请重输");
    176         age = readline.question() - 0;
    177     }
    178     console.log("请输入新增学生性别:");
    179     let gender = readline.question();
    180     console.log("请输入新增学生成绩:");
    181     let score = readline.question() - 0;
    182     while (isNaN(score) || score < 0 || score > 100) { //保证输出正确成绩
    183         console.log("请重输");
    184         score = readline.question() - 0;
    185     }
    186     console.log("新增成功! 该学生信息如下:");
    187     length++;
    188     user1.push({
    189         id: length,
    190         name,
    191         age,
    192         gender,
    193         score
    194     })
    195     console.log(user1[length - 1]);
    196 }
    197 // //修改
    198 function alter(user1, length) {
    199     console.log("请输入要修改的学生学号:");
    200     let number = readline.question(); //学生学号
    201     while (isNaN(number) || number < 1 || number > length) {
    202         console.log("输入有误:请重输");
    203         number = readline.question();
    204     }
    205     console.log("当前学生信息如下:");
    206     console.log(user1[number - 1]);
    207     console.log("请选择要修改的信息: 1.姓名 2.年龄 3.性别 4.成绩");
    208     let choice1 = ["姓名", "年龄", "性别", "成绩"]; //信息对应汉字
    209     let choice3 = ["name", "age", "gender", "score"]; //信息对应对象里面的键名
    210     let choice = readline.question() - 0; //用户输入修改的信息对应编号1,2,3,4
    211     while (isNaN(choice) || choice < 1 || choice > 4) {
    212         console.log("请重输:");
    213         choice = readline.question() - 0; //如果用户输入的不是数字或者输入了错误的数字,加以提示
    214     }
    215     console.log(`您要修改的是${choice1[choice - 1]}`);
    216     console.log("确认请按1,取消请按2"); //确认要修改信息
    217     let choice2 = readline.question() - 0;
    218     if (choice2 == 1) {
    219         console.log("请输入新的数据");
    220         let data = readline.question(); //输入新信息
    221         console.log("修改成功! 该学生信息如下:");
    222         user1[number - 1][`${choice3[choice - 1]}`] = data; //修改对象里面的值,方法类似数组
    223         console.log(user1[number - 1]); //修改后的信息
    224         return;
    225     } else {
    226         return; //如果不修改,就退出
    227     }
    228 
    229 }
    230 //删除
    231 function del(user1, length) {
    232     console.log("请输入要删除的学生学号:");
    233     let number = readline.question() - 0;
    234     while (isNaN(number) || number < 1 || number > length) {
    235         console.log("输入有误:请重输");
    236         number = readline.question();
    237     }
    238     console.log("当前学生信息如下:");
    239     console.log(user1[number - 1]);
    240     console.log("确认删除请按1,返回请按2");
    241     let choice = readline.question() - 0;
    242     while (isNaN(choice) || choice < 1 || choice > 2) {
    243         console.log("输入有误,请重输:");
    244         choice = readline.question() - 0;
    245     }
    246     if (choice == 1) {
    247         user1.splice(number - 1, 1); //删除学号对应的对象
    248         length--; //数组长度减少1
    249         let a = ["id", "name", "age", "gender", "score"]; //用数组取对象键名
    250         let b = a[0]; //用变量b来表示对象的id属性
    251         for (let i = number - 1; i < user1.length; i++) {
    252             user1[i][b]--; //当删除一条对象之后,保证这条对象之后的对象的id属性-1
    253             console.log(user1[i]);
    254         }
    255         console.log("删除成功");
    256         return;
    257     } else {
    258         return;
    259     }
    260 }
    261 //选择操作
    262 function operation(user1) {
    263     let status = true;
    264     while (status) {
    265         console.log("请选择操作:1.查询 2.新增 3.修改 4.删除 5.退出");
    266         let choice = readline.question() - 0;
    267         while (isNaN(choice) || choice < 1 || choice > 5) {
    268             console.log("请重输");
    269             choice = readline.question() - 0;
    270         }
    271         switch (choice) {
    272             case 5:
    273                 console.log("谢谢使用,再见");
    274                 status = false;
    275                 break;
    276             case 4:
    277                 del(user1, user1.length);
    278                 break;
    279             case 3:
    280                 alter(user1, user1.length);
    281                 break;
    282             case 2:
    283                 add(user1, user1.length);
    284                 break;
    285             case 1:
    286                 search(user1);
    287                 break;
    288         }
    289     }
    290 
    291 }
    292 
    293 operation(user1);
    View Code
  • 相关阅读:
    Linux停SVN提交时强制写日志
    svn文件提交时强制写注释
    ssh 登录出现的几种错误以及解决办法
    Linux内存调试工具初探-MEMWATCH
    段错误调试神器
    Linux环境下段错误的产生原因及调试方法小结
    pthread_create()之前的属性设置
    Linux netstat命令详解
    Linux route命令详解和使用示例(查看和操作IP路由表)
    tomcat最大线程数的设置
  • 原文地址:https://www.cnblogs.com/cj-18/p/9097521.html
Copyright © 2011-2022 走看看