# StudentManagementSE **Repository Path**: gambler_coder/student-management-se ## Basic Information - **Project Name**: StudentManagementSE - **Description**: JavaSE版本的学生管理系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-12-09 - **Last Updated**: 2021-12-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 学生管理系统 ### 一、功能简介 + 根据登录账号权限的不同其可操作的功能不同 + 检查选择功能时用户输入的正确性 + 处理不符合规定的输入 + 账户密码的加密 + 数据的持久化 + 多表操作 ### 二、系统初始化 + 初次使用程序应先运行SRootInit.java,他会在数据库中添加一位管理员,建立四张表分别用来存储管理员信息、教师信息、学生信息和课程信息。初始化后的管理员**账号为r10001,密码为root** + 初始化后运行主程序:**LoginPage.java**,根据显示选择功能即可 ### 三、登录模块设计 + 通过登录的账号判断登陆进来的用户是什么类型,跳转到其对应的Controller(管理员、学生,老师)进行判断 ### 四、管理员模块设计 + 操作自己的功能 + 修改自己的密码 + 操作学生的功能 + 生成一名学生的账号(纯数字)(密码000000) + 1、判断账号是否是规定的学生类型账号 + 2、判断性别是否是规定的性别 + 删除一名学生的账号 + 1、判断账号是否是规定的学生类型账号 + 2、判断数据居中是否有此学号的学生 + 3、他所选的课程的已报人数都进行减一操作 + 4、将他在所有管理他的老师的学生集合中删除 + 5、将他在学生数据库中删除 + 修改一名学生的密码 + 1、判断账号是否是规定的学生类型账号 + 2、判断数据居中是否有此学号的学生 + 3、在数据库中修改学生的密码 + 查看数据库中所有学生信息 + 1、遍历学生数据库,forEach打印 + 操作教师的功能 + 生成一位教师的账号(t + 纯数字)(密码000000) + 1、判断账号是否是规定的教师类型账号 + 2、判断性别是否是规定的性别 + 删除一位教师的账号(其对应的课程不应该被删除,但应设为null) + 1、判断账号是否是规定的教师类型账号 + 2、判断数据居中是否有此ID的教师 + 3、在课程表中遍历找到他所教的课程,讲这门课的授课教师设置为null + 4、在学生表的课程集合中遍历找到他所教的课程,讲这门课的授课教师设置为null + 5、将这位教师在教师数据库中删除 + 修改一位教师的密码 + 1、判断账号是否是规定的教师类型账号 + 2、判断数据库中是否有此ID的教师 + 3、在数据库中修改教师的密码 + 设置一位教师所教的课程(设置条件是此教师未授课,此课程没有授课教师) + 1、判断这位教师的授课状态,没有授课继续下一个判断条件 + 2、判断这门课程是否有授课教师, 没有授课教师继续下一个判断条件 + 3、在教师数据库中添加这位教师所教的课程ID + 4、遍历学生数据库,找到所有选了这门课的学生,将这些学生添加到此教师管理的学生的集合中 + 5、在课程数据库中添加这门课程的授课教师 + 查看数据库中所有教师信息 + 1、遍历教师数据库,forEach打印 + 操作课程的功能 + 新增课程(b + 纯数字)或者(x + 纯数字) + 1、判断账号是否是规定的课程类型账号 + 2、判断数据库中是否有此课程编号的课程 + 3、判断账号是否是规定的教师类型账号 + 4、判断数据库中是否有此ID的教师 + 5、如果该老师是授课状态则创建课程失败,否则继续 + 6、添加这位教师的授课ID,在教师数据库中更新 + 7、将这门课程在课程数据库中添加 + 删除课程 + 1、判断账号是否是规定的课程类型账号 + 2、判断数据库中是否有此课程编号的课程 + 3、在教师数据库中找到教此课程的教师,将这位教师的授课ID设为null + 4、在教师数据库中找到教此课程的教师,将这位教师所管的学生集合设为null + 5、在学生数据库中找到选此课程的学生,将这门课程在学生所选课程集合中删除 + 6、将这门课程在课程数据库中删除 + 查看所有课程 + 1、遍历课程数据库,forEach打印 ### 五、学生模块设计 + 学生选课 + 遍历课程列表,将课程的讲师不为空,余量不为0的课程添加到Map中返回 + 打印Map以便学生进行选择 + 学生输入判断 + 将学生输入的当做key传到Map,如果返回不为空说明可以选择 + 判断学生是否选过改门课程,没选过继续操作,选过返回提示信息 + 将此课程的已选人数加一 + 将此课程信息添加到学生的选课集合中,再将学生信息存到数据库中 + 老师表中添加此学生的信息并存储到数据库中 + 删除选课 + 简单打印已选课程信息 + 用户输入判断 + 如果输入的课程编号在自己选过的课程集合中则继续操作,否则返回提示信息 + 将此课程的一报人数减一 + 将此课程在学生的选课集合中删除,并更新数据库 + 教此课的老师将此学生在自己管理的学生表中移除,并更新数据库 + 查看已选课程 + 去数据库中遍历 + 修改密码 ### 六、教师模块设计 + 登分改分 + 展示自己管理的学生信息(重要信息) + 判断教师输入正确性 + 判断此学生是否在教师管理的学生集合中 + 在数据库中更新成绩 + 查看自己所教课程 + 遍历数据库找到教师ID对应的课程编号 + 查看自己管理的学生列表 + 遍历数据库找到教师对应的学生集合 + 修改密码