高校教务系统需求文档

高校教务系统需求文档

管理员可以对学生的学生,班级,课程,及教师的基本信息,班级开课,考试成绩进行管理和维护

教师可以修改自己的部分个人信息,查看担任的课程,教受的学生,录入学生的成绩

学生可以修改自己部分的个人信息,查看看个人信息,查看本人成绩

学生

  • 个人信息模块
  • 成绩模块

教师

  • 个人信息模块

  • 查看学生信息

  • 录入学生成绩

管理员

  • 管理学生信息
  • 管理教师信息
  • 管理班级信息
  • 管理课程信息
  • 管理成绩信息

学生表:学号,姓名,密码,性别,出生日期,电话,入学分数,班级号,学分, 家庭地址

字段名 数据类型 长度/备注 是否允许为空 字段说明
stu_id int 11 学号
stu_name string 2-4 姓名
stu_password string 需要加密MD5 密码
stu_sex string 1 性别
stu_birth string 时间格式 出生日期
stu_tel string 11 电话
stu_point float 共4位,一位小数 入学分数
class_id int 8 班级表的id 班级号
credit int 最长4位 学分
stu_source string 16 家庭地址

课程表 :课程号,课程名,学分,学时

字段名 数据类型 长度/备注 是否允许为空 字段说明
course_id int 6 课程号
course_name string 16 课程名
course_credit int 2 学分
course_hour int 3 学时

学生课程表:学号,课程号,课程名,成绩

字段名 数据类型 长度/备注 是否允许为空 字段说明
stu_id int 11 学号
course_id int 6 课程号
course_name string 16 课程名
score float 4,一位小数 成绩

班级表:班级号,班级名称

字段名 数据类型 长度/备注 是否允许为空 字段说明
class_id int 8 班级号
class_class string 16 班级名称

教师表:教师号,姓名,密码,性别,出生日期, 电话,所在院系,是否为管理员

字段名 数据类型 长度/备注 是否允许为空 字段说明
teacher_id int 8 教师编号
teacher_name string 4 教师姓名
password string 加密 密码
teacher-sex string 1 性别
tel string 11 电话
dep_name string 16 院系名称
type int 1 是否是管理员,1是管理员,0不是管理员

开课信息表:教师号,课程号,班级号,所在院系

字段名 数据类型 长度/备注 是否允许为空 字段说明
teacher_id int 8 教师编号
course_id int 6 课程号
class_id int 8 班级号

学生

登录:学号 密码,(学生没有注册的功能)

查看个人信息,修改密码和手机号(其余的个人信息,只有管理员才可以修改),修改条件,需要根据原手机号进行修改,修改可以写成验证码的形式,或者是简单的输入手机号验证,只有验证通过了才可以进行修改密码

查看成绩:分课程查看
根据学生的stu_id从学生课程表里面差查成绩。根据不同的课程course_id进行分类,学生只能看自己所学的成绩

教师

登录:教师编号和密码

注册:编号根据学院和注册的顺序自动生成,注册成功以后返回生成的教师编号(在注册过程中,教师编号不是自己填的,是注册成功以后后端生成并返回的)

查看个人信息

查看查看担任的课程及学生名单(这个的跨表查询比较多)

  • 通过班级查看:根据开课信息表,教师teacher_id和course_id查询,所有教授的班级,然后通过学生表class_id 查询在班级内的学生,这样就得到了 老师担任的课程以及学生名单
  • 直接通过课程id,根据课程信息表,教师teacher_id查询,得到该教师担任的课程号,然后根据得到的课程号分别通过学生课程表查询到选择本课程的学生

录入学生成绩:录入格式,学号,课程号,课程名,成绩(学生课程表),如果成绩及格,同时也要修改学生表里面的学分(加上本课程的学分)
录入的学生一定是选自己课程的学生,一定是存在的学生(简单来说就是从学生课程表里面查询到选自己课的学生,然后修改成绩这一属性)

管理员

  • 超级管理员:直接写在代码里面,可以用来添加管理员,添加的管理员只能从已注册的教师账户里面选(管理员也属于教师)

  • 登录:和教师登录一样,在登录过程中判断是否是管理员,如果是管理员进入管理员界面,是用户进入用户界面

  • 管理学生信息:录入学生信息,尽量能够实现批量录入(从文件中录入信息),学分默认为 0,密码初始化统一为学号后6位,查看和修改学生的信息,删除学生
    在录入学生的信息时,所分配的班级一定是在班级表内存在的(管理员需要先新建班级,然后再录入学生的成绩)

  • 新增班级:创建新的班级(新增班级表里面的内容)

  • 管理课程信息:新增课程,课程号(系统自动生成)课程名,课程的学分,学时

  • 查询课程

  • 修改课程

  • 删除课程,删除课程的同时,需要将学生信息表和开课信息表中的相关数据删除

  • 管理教师信息:

    • 给老师分配担任的科目,担任的班级。(所分配的一定是老师存在,课程存在,班级存在,需要从三个表中查数据)同一门课可以有多个班级,联想自己大学中的课程(暂时不考虑选课,共选课)需要修改我增添数据的表是开课信息表,将分配的结果存进开课信息表。另外操作的表是学生课程表,根据其他相关表在学生课程表里面添加新的内容(这些操作都是后端根据分配的课程完成的在这个阶段和前端没有关系)

    • 修改老师的个人信息,调整老师所在的院系(院系暂时不考虑也行)

  • 管理成绩信息:

    • 分班级查看:
    • 分课程查看:
      例;查看数据211班,python课程的成绩
      首先需要查询出来所有数据211班的学生(学生表),然后根据再查询这些学生python课程的成绩(学生课程表)
      例2查询python课程所有班级的成绩
      直接根据学生课程表进行查询就行,查询课程名为python
  • 统计并分析成绩:班级的平均分,最高分,及格率等,可以理解为是对成绩的数据分析(在查询成绩的过程同时就可以操作)

你可能感兴趣的:(项目总结,python)