JavaScript学生管理系统

2023-05-16

JavaScript学生管理系统

  • 一、系统功能描述
    • 1、系统界面
    • 2、查看全部学员信息
    • 3、搜索学生信息
    • 4、添加学生信息
    • 5、修改学生信息
    • 6、删除学生信息
    • 7、退出系统
    • 8、检查学号是否存在
  • 二、完整代码

一、系统功能描述

1、系统界面

系统总共包含功能:查看全部学员信息、新增学员信息、修改学员信息、删除学员信息、查询学员信息。
输入操作选项,若操作选项正确,执行相关操作;若操作选项错误,可以重新输入,直至输入正确选项为止。
执行完成相关操作后,经询问用户是否继续后,可以返回主菜单再次进行其他操作。

// 调用主界面函数
    main();
    // 主界面函数
    function main() {
      let choose = parseInt(prompt(`请选择操作:
      1.查看所有学生信息    2.搜索学生信息
      3.添加学生信息        4.修改学生信息
      5.删除学生信息        0.退出学生管理系统`));
      switch (choose) {
        case 1: List(); main(); break;
        case 2: Query(); main(); break;
        case 3: Add(); main(); break;
        case 4: Modify(); main(); break;
        case 5: Delete(); main(); break;
        case 0: Exit(); break;
        default:
          alert(`请输入正确的操作数字`);
          main();
      }
    }

2、查看全部学员信息

 // 查看所有学生信息
    function List() {
      let stuInfo = `学生信息为:`;
      for (let i = 0; i < studentArr.length; i++) {
        stuInfo = stuInfo + `
        学号:${studentArr[i].stuNo} 姓名:${studentArr[i].name} 年龄:${studentArr[i].age} 性别:${studentArr[i].sex} 班级:${studentArr[i].className}`;
      }
      alert(stuInfo);
    }

3、搜索学生信息

 // 3.搜索学生信息
    function Query() {
      let stuNo = prompt(`请输入要查询的学号`);
      let result = Check(stuNo);
      if (result == -1) {
        alert(`你输入的学号不存在,请输入正确的学号`);
        Query();
      }
      else {
        alert(`学号:${studentArr[result].stuNo} 姓名:${studentArr[result].name} 年龄:${studentArr[result].age} 性别:${studentArr[result].sex} 班级:${studentArr[result].className}`);
        main();
      }
    }

4、添加学生信息

需为学生添加学号、姓名、性别、年龄、班级等信息。
若学生人数已经达到 30 人,提示用户”班级人数已满,无法新增学员!

 // 4.添加学生信息
    function Add() {
      if (studentArr.length < 30) {
        let stuNo = prompt("请输入学号:");
        let name = prompt("请输入名字:");
        let age = prompt("请输入年龄:");
        let sex = prompt("请输入性别:");
        let className = prompt("请输入班级:");
        let result = Check(stuNo);
        // 判断学号是否存在
        // 学号不存在就添加
        if (result == -1) {
          var obj = { stuNo: stuNo, name: name, age: age, sex: sex, className: className };
          studentArr.push(obj);
          List();
        } else {
          // 学号存在就不添加
          alert(`你输入的学号已存在请重新输入`);
          Add();
        }
      }
      else {
        alert(`班级人数已满,无法添加学生信息`)
      }
    }

5、修改学生信息

根据学号查找相关学员信息,进行修改。
若存在此学员信息,显示此学员的信息;若不存在此学号学员,提示用户"无此学号学生,请确认后重新输入!"
可以修改学员的姓名、性别、年龄、班级等信息,修改成功后,显示修改后的学员信息。

  // 5.修改学生信息
    function Modify() {
      let stuNo = prompt(`请输入要修改的学生学号`);
      let result = Check(stuNo);
      if (result == -1) {
        alert(`无此学号学生,请确认后输入!`);
        Modify();
      } else {
        alert(`学号输入正确,请修改信息`)
        let name = prompt("请输入名字:");
        let age = prompt("请输入年龄:");
        let sex = prompt("请输入性别:");
        let className = prompt("请输入班级:");
        studentArr[result].name = name;
        studentArr[result].age = age;
        studentArr[result].sex = sex;
        studentArr[result].className = className;
        alert(`修改信息为:姓名:${studentArr[result].name} 年龄:${studentArr[result].age} 性别:${studentArr[result].sex} 班级:${studentArr[result].className}`);
        List();
      }
    }

6、删除学生信息

根据学号查找相关学员信息,进行删除。
若不存在此学号学员,提示用户"无此学号学生,请确认后重新输入!"
若存在此学员信息,显示此学员的信息,并询问用户"确认删除学生信息?(y/n)”,待确认后进行学员信息的删除;若用户点击取消,则取消删除操作。

 // 6.删除学生信息
    function Delete() {
      // 用户是否确定删除
      let choice = confirm("确定要删除嘛?");
      if (choice) {
        let stuNo = prompt(`请输入要删除的学生学号`);
        let result = Check(stuNo);
        if (result == -1) {
          alert(`无此学号学生,请确认后输入!`);
          Delete();
        } else {
          studentArr.splice(result, 1);
          List();
        }
      }
    }

7、退出系统

 // 7.退出系统
    function Exit() {
      alert(`退出成功!`);
    }

8、检查学号是否存在

function Check(stuNo) {
      for (let i = 0; i < studentArr.length; i++) {
        if (studentArr[i].stuNo == stuNo) {
          return i; // 学号存在则返回对应的下标且结束此函数
        }
      }
      return -1; // 学号不存在
    }

二、完整代码

  <script>
    let studentArr = [
      { stuNo: '001', name: '旋涡鸣人', age: 18, sex: "男", className: 'w321' },
      { stuNo: '002', name: '宇智波鼬', age: 20, sex: "男", className: 'w321' },
      { stuNo: '003', name: '千手纲手', age: 18, sex: "女", className: 'w321' },
      { stuNo: '004', name: '日向雏田', age: 18, sex: "女", className: 'w321' }
    ];

    // 调用主界面函数
    main();
    // 主界面函数
    function main() {
      let choose = parseInt(prompt(`请选择操作:
      1.查看所有学生信息    2.搜索学生信息
      3.添加学生信息        4.修改学生信息
      5.删除学生信息        0.退出学生管理系统`));
      switch (choose) {
        case 1: List(); main(); break;
        case 2: Query(); main(); break;
        case 3: Add(); main(); break;
        case 4: Modify(); main(); break;
        case 5: Delete(); main(); break;
        case 0: Exit(); break;
        default:
          alert(`请输入正确的操作数字`);
          main();
      }
    }

    // 1.查看所有学生信息
    function List() {
      let stuInfo = `学生信息为:`;
      for (let i = 0; i < studentArr.length; i++) {
        stuInfo = stuInfo + `
        学号:${studentArr[i].stuNo} 姓名:${studentArr[i].name} 年龄:${studentArr[i].age} 性别:${studentArr[i].sex} 班级:${studentArr[i].className}`;
      }
      alert(stuInfo);
    }

    // 2.搜索学生信息
    function Query() {
      let stuNo = prompt(`请输入要查询的学号`);
      let result = Check(stuNo);
      if (result == -1) {
        alert(`你输入的学号不存在,请输入正确的学号`);
        Query();
      }
      else {
        alert(`学号:${studentArr[result].stuNo} 姓名:${studentArr[result].name} 年龄:${studentArr[result].age} 性别:${studentArr[result].sex} 班级:${studentArr[result].className}`);
        main();
      }
    }

    // 3.添加学生信息
    function Add() {
      if (studentArr.length < 30) {
        let stuNo = prompt("请输入学号:");
        let name = prompt("请输入名字:");
        let age = prompt("请输入年龄:");
        let sex = prompt("请输入性别:");
        let className = prompt("请输入班级:");
        let result = Check(stuNo);
        // 判断学号是否存在
        // 学号不存在就添加
        if (result == -1) {
          var obj = { stuNo: stuNo, name: name, age: age, sex: sex, className: className };
          studentArr.push(obj);
          List();
        } else {
          // 学号存在就不添加
          alert(`你输入的学号已存在请重新输入`);
          Add();
        }
      }
      else {
        alert(`班级人数已满,无法添加学生信息`)
      }
    }

    // 4.修改学生信息
    function Modify() {
      let stuNo = prompt(`请输入要修改的学生学号`);
      let result = Check(stuNo);
      if (result == -1) {
        alert(`无此学号学生,请确认后输入!`);
        Modify();
      } else {
        alert(`学号输入正确,请修改信息`)
        let name = prompt("请输入名字:");
        let age = prompt("请输入年龄:");
        let sex = prompt("请输入性别:");
        let className = prompt("请输入班级:");
        studentArr[result].name = name;
        studentArr[result].age = age;
        studentArr[result].sex = sex;
        studentArr[result].className = className;
        alert(`修改信息为:姓名:${studentArr[result].name} 年龄:${studentArr[result].age} 性别:${studentArr[result].sex} 班级:${studentArr[result].className}`);
        List();
      }
    }

    // 5.删除学生信息
    function Delete() {
      // 用户是否确定删除
      let choice = confirm("确定要删除嘛?");
      if (choice) {
        let stuNo = prompt(`请输入要删除的学生学号`);
        let result = Check(stuNo);
        if (result == -1) {
          alert(`无此学号学生,请确认后输入!`);
          Delete();
        } else {
          studentArr.splice(result, 1);
          List();
        }
      }
    }

    // 6.退出系统
    function Exit() {
      alert(`退出成功!`);
    }

    // 检查学号是否存在
    function Check(stuNo) {
      for (let i = 0; i < studentArr.length; i++) {
        if (studentArr[i].stuNo == stuNo) {
          return i; // 学号存在则返回对应的下标且结束此函数
        }
      }
      return -1; // 学号不存在
    }

  </script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript学生管理系统 的相关文章

  • Tensorflow代码学习-10-3验证码识别

    验证码识别 课程 xff1a 炼数成金GITHUBCSDN知乎欢迎点亮star span class token comment coding utf 8 span span class token keyword import span
  • 腾讯云ubuntu远程桌面

    1 首先要连接上你的服务器 xff0c 然后安装vncserver xff0c 这个是用来远程连接用的 命令如下 apt get install vnc4server 2 安装图形界面 apt get install xfce4如果安装不上
  • 如何快速上手期刊、会议论文latex的小技巧

    来自学习经验 xff0c 如有更好可评论告知 xff01 适用于各种期刊 会议的小技巧 xff01 xff01 可节省非常多时间 xff01 xff01 知乎专栏 简单描述如下 xff1a 1 找一篇与要投的期刊一篇论文 2 去arxiv网
  • 解决 树莓派自带的VNC版本不能进行文件传输

    在树莓派4B上使用的VNCSERVER是可以进行文件传输的 xff0c 就想应该是树莓派3B 43 上的操作系统自带的VNC版本太旧 xff0c 因此就想直接用命令sudo apt upgrade tightvncserver更新 xff0
  • Git submodule - Git子模块简介

    目录 建立仓库 1 1 创建主仓库 1 2 创建子仓库提交内容 2 1 提交到主工程的仓库 2 2 提交到子模块的仓库克隆带子模块的仓库到本地更新子仓库总结参考文档 正文 软件开发中有一个DRY Don t Repeat yourself
  • IR2101驱动

    下面是datasheet上的内部框图及应用电路 xff1a 由内部框图及输入输出时序图可知 xff1a HIN输入高则HO输出高 xff0c 输入低则输出低 低端也一样 由典型应用电路图分析 xff1a 当HIN LIN同时输入高 xff0
  • Cannot convert a symbolic Tensor to a numpy array错误的解决

    最近写代码的时候发生了一件奇怪的错误 NotImplementedError Cannot convert a symbolic Tensor bert encoder layer 0 attention self strided slic
  • ubuntu进入tty1、tty2等界面的操作

    想要进入tty1或者tty2 xff0c 需要ctrl 43 alt 43 f1 xff0c 注意如果是笔记本电脑 xff0c 需要输入ctrl 43 alt 43 fn 43 f1 xff0c 注意如果tty1界面进入不了的时候 xff0
  • 移植Mavlink协议到STM32F103详细教程

    环境配置 win10系统 43 STM32F103ZET6 步骤 参考MAVLINK官网 1 安装python3 6以上的版本 xff0c 我安装的是python3 8 Python3 8下载地址 详细安装步骤可参考 xff1a pytho
  • pid调试

    1 PID调试步骤 没有一种控制算法比PID 调节规律更有效 更方便的了 现在一些时髦点 的调节器基本源自PID 甚至可以这样说 xff1a PID 调节器是其它控制调节算法的吗 为什么PID应用如此广泛 又长久不衰 xff1f 因为PID
  • MAVLINK协议理解

    mavlink协议的载体是一下格式 xff1a 这是载体格式 这是载体的具体格式说明 mavlink的结构 主要有3部分 mavlink messages 比如 0 心跳包 这个message 就是各种数据帧里的数据 xff0c 例如 xf
  • 关于&0xFF的理解

    做协议解析时候 xff0c 一个byte的0xFE xff0c 直接转化int xff0c 应该是254 xff0c 但是最终结果是 2 xff0c 在网上一查 xff0c 有的人说是因为java用补码表示的byte 网址 xff1a ht
  • tensoflow2.x中tensor转numpy问题

    这里写自定义目录标题 AttributeError 39 Tensor 39 object has no attribute 39 numpy 39 AttributeError Tensor object has no attribute
  • A算法与A*算法区别

    A算法由 f n 61 g n 43 h n 俩个因素决定 xff0c g n 是这一步的代价函数 h n 是这一步的预估函数 xff1b 对于A 算法来说 xff0c 评判函数也是 f n 61 g n 43 h n 这个 xff0c 只
  • PARWAN处理器架构特点

    PARWAN处理器架构特点 PARWAN处理器结构图 xff08 搬运工系列 xff09 各个部分说明 xff1a Applied toCategtoriesSignal Name FunctionallyAC 累加计数器 Register
  • PX4源码学习一--Pix和APM的区别

    pixhawk是硬件平台 xff0c PX4是pixhawk的原生固件 xff0c 专门为pixhawk开发的 APM xff08 Ardupilot Mega xff09 也是硬件 Ardupilot是APM的固件 xff0c 所以称Ar
  • px4源码学习三--px4源码结构分析

    px4源码结构分析 Px4源码目录 cmake xff1a 是存放的 Cmake 编辑脚本文件夹 xff0c 其中 Cmake Configs 是存放的不同硬件的编译脚本 xff0c nuttx mindpx v2 default 是 PI
  • px4源码学习五--固定翼位置控制模块

    fw pos control模块 class landingslope 为固定翼着陆的角度变化模块 calulateSlopeValues void private 更新H1 H0 d1 根据log xff08 H0 H1 xff09 的比
  • px4源码学习六--uORB模块研究

    UORB模块研读 uORB函数解析 xff1a uORB模块 xff08 Micro Object Request Broker xff0c 微对象请求代理器 xff09 uORB是Pixhawk系统中关键的一个模块 xff0c 肩负了数据
  • Ubuntu开机进入busybox

    Ubuntu开机进入busybox 一般是因为ubuntu的文件系统出了问题 xff0c 所以需要在bushbox中进行扫描修复 看一下错误信息 xff0c 然后在busybox的命令行中运行fsck ext4 y dev sda1 xff

随机推荐

  • 关于JAVA文件都在没问题,没有错误提示波浪线,但编译时候提示找不到对应包的问题

    使用springboot做电商网站时候 修改了一点小功能 然后运行不了 提示XX XXX domain XX类找不到等一大堆类都找不到 但是对应包是存在的 而且在编辑框里没有红色的错误提示波浪线 所以 猜测应该不是代码的问题 又因为我们是g
  • c++泛型编程编译问题

    undefined reference to 模板类 c 43 43 泛型编程时候 xff0c 由于 h文件中放声明 xff0c cpp里放实现 xff0c main里调用 xff0c 编译时候 xff0c 就出现这样的问题 解决方法 xf
  • STM32CUBEMX的freertos一般使用方法笔记

    一 使用STM32CubeMX创建FreeRTOS操作系统 LED闪烁的配置 接下来配置时钟 xff0c 点击生成 此处为用户代码编写处 xff1b 开启这个选项便可以使用更加精确的延时 在代码区添加 便可以 xff01 二 任务挂起和取消
  • Qt5之QStatus状态栏

    1 一些常见用法 xff0c 来自其他优秀博文 xff1a https www cnblogs com toby zhang p 5729629 html 2 我这里添加状态了 xff0c 状态栏上放了一个QLabel控件显示时间 创建和添
  • 主函数一定要有while(1)吗?

    主函数一定要有while 1 吗 xff1f 在我两次移植例程时 xff0c 执行的结果都不对 xff0c 后来检查发现 xff0c 缺省了while 1 xff0c 加上之后结果就正确了 xff0c 这让我百思不得其解 xff0c 于是我
  • 解决error:legacy boot of uefi media

    错误 uefi媒体的传统引导 可能你的是GPT分区 xff0c 要改成UEFI引导 按F2 进入bios更换其他引导 xff0c 不同的品牌有自己进入的bios的方式 xff0c 我的是F2 按F10保存 解决
  • MongoDB安全实战之SSL协议加密

    邓开表同学实战MongoDB系列文章 xff0c 非常不错 xff0c 赞 xff01 大力推荐 xff01 本文主要讲述MongoDB的SSL协议加密的使用和配置的实战经验 xff0c 非常值得一看 前面系列文章 xff1a MongoD
  • 关于开源项目——C语言实现FTP服务器的结构解析

    项目地址 xff1a https github com beckysag ftp 针对此开源项目的说明 xff0c 结构分析 服务端整体框架 xff1a 1 从命令行输入得到服务端绑定端口号 2 设置套接口选项 xff0c 创建监听套接字
  • Nvidia Xavier NX 刷机 内置EMMC 带固态版

    Nvidia Xavier NX 刷机 内置EMMC 带固态版 前言一 烧录系统1 准备linux系统的电脑一台2 下载SDK Manager3 烧录过程 二 将NX系统迁移到NVME固态硬盘上1 格式化分区2 将EMMC SD卡的root
  • 关于vscode安装包下载太慢解决方法(详解)

    方法一 第一步 vscode官网选择下载版本 vscode官网 这里直接按系统选择合适的版本进行下载 xff01 第二步 进入下载界面 xff08 这一步别着急 xff0c 一定要进入下载过程 xff09 这里一定要点击保存 xff01 下
  • java 导出excel

    目录 一 动态下拉框二 合并行单元格三 复杂表头四 批量生成文件上传到文件服务器 xff0c 再从文件服务器批量下载压缩成压缩包后导出 一 动态下拉框 如何得到这样一张表格 xff1f 在单元格中插入可选下拉框 思路分析 xff1a exc
  • win10 H3C 映射外网端口,实现外网端口访问

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 目录 cmd 进入 控制台 登录H3C命令行控制台 xff0c 输入账号密码 查看dns网卡等基本信息 进入系统视图 映射 查看映射情况
  • VMware Workstation v16.2 + CentOS6.5命令行模式

    VMware下载地址和安装教程 CentOS官网下载 文章目录 一 VMware部分1 新建虚拟机2 选择驱动3 配置网络 xff08 NAT配置 xff09 二 CentOs部分1 安装驱动2 联网补充 xff1a 一 VMware部分
  • 并发编程(一)cpu,进程,线程,并发

    文章目录 一 程序和进程1 程序的进化论2 程序和进程的关系3 进程和线程的关系4 CPU和RAM的关联5 CPU 进程 线程之间的关系6 CPU如何执行 二 线程1 线程的使用2 线程的生命周期 三 并发和并行1 并发和并行2 高并发的定
  • 并发编程(二)原子性和Synchronized同步锁

    文章目录 一 原子性1 什么是原子性2 造成原子性的原因3 解决原子性问题之Synchronized同步锁 二 Synchronized1 Synchronized的使用2 Synchronized的原理2 1 JVM的结构 2 2 类的加
  • 【异常】执行yum install lrzsz 报错

    报错信息如图 可以看出yum源出了问题 xff0c 配置yum源 按以下步骤执行 配置yum源 xff1a cd etc yum repos d mkdir bak mv repo bak vi iso repo span class hl
  • 【笔记】etc/profile和~/.bashrc的区别

    在搭建单节点的hadoop集群时 xff0c jdk的环境变量是在 bashrc 文件中配置的 而搭建三节点的hadoop集群时 xff0c 是在root用户下的 etc profile目录下配置的环境变量 两者有什么区别呢 xff1f e
  • sql存储过程语法详解

    一 定义变量 使用关键字declare申明变量 xff1a declare 64 变量名 变量类型 span class hljs comment 简单赋值 span declare span class hljs variable 64
  • Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

    mysql 5 6 43 xff0c windows10 安装好之后 xff0c 在命令行net start mysql 时 xff0c 打印mysql 服务无法启动 1067 进程意外停止 进入事件查看器 缺少mysql plugin表
  • JavaScript学生管理系统

    JavaScript学生管理系统 一 系统功能描述1 系统界面2 查看全部学员信息3 搜索学生信息4 添加学生信息5 修改学生信息6 删除学生信息7 退出系统8 检查学号是否存在 二 完整代码 一 系统功能描述 1 系统界面 系统总共包含功