文章目录

  • 一、需求分析
  • 1.1系统功能需求
  • 1.2 其他性能需求
  • 二、概念结构设计
  • 2.1实体关系分析
  • 2.2 E-R图
  • 三、逻辑结构设计
  • 3.1关系模式设计
  • 3.2数据类型定义
  • 四、实现代码


一、需求分析

  • 开发意义: 随着信息技术不断向深入发展,越来越多的学校开始着手信息化建设。其中学生选课、成绩信息化管理就是其中重要的一块内容。学生选课与成绩信息规模大、项目条数多、信息量庞大,传统的人工管理方式显然已经无法满足要求,需要借助计算机来进行现代化信息管理,从而提高管理的准确性与高效性。
  • 可行性: 传统人工管理成绩存在诸多弊病,比如准确性低、效率低等。计算机具有存储快、查找便利、准确性高的特点,能非常好的解决人工管理的弊病。
  • 应用环境:
  • Web服务器:tomcat8.5;
  • 编程工具Eclipse Java 2019-09;
  • 数据库:SQL sever 2017;
  • 技术路线: jsp+servlet+javabean;

1.1系统功能需求

系统功能框架介绍,处理模块描述。

  • 管理员:
  1. 查询教师名单;
  2. 添加教师信息;
  3. 修改教师信息;
  4. 删除教师信息;
  5. 查询学生名单;
  6. 添加学生信息;
  7. 修改学生信息;
  8. 删除学生信息;
  9. 查询课程信息;
  10. 添加课程信息;
  11. 修改课程信息;
  12. 删除课程信息;
  13. 修改登录密码;
  • 教师:
  1. 查看个人信息;
  2. 查看任课信息;
  3. 按照课程表信息开设课程;
  4. 取消个人已开课的课程;
  5. 按行政班级查看学生均绩及排名;
  6. 按任课课程查询学生单门成绩及排名;
  7. 按学年查询个人教授课程的平均成绩;
  8. 录入学生成绩, 自动更新该学生已修总学分;
  9. 修改登录密码;
  • 学生:
  1. 查看个人信息;
  2. 查看本人课程;
  3. 选课与退选;
  4. 按学年查询考试成绩;
  5. 修改登录密码;

选修课管理系统java数据库_java

1.2 其他性能需求

  1. 分管理员、教师、学生不同身份登录,并给予不同的权限,提高系统安全性;
  2. 使用前端验证保证用户的输入正确。
  3. 创建触发器及存储过程,保证完整性。
  4. 充分考虑系统报错情况,尽量防止系统崩溃。

二、概念结构设计

2.1实体关系分析

  1. 开设班级,每个班级包含若干学生;
  2. 课程由教师开设;
  3. 同一门课可能有多个教师开课,一个教师在一学期可能开多门课程;
  4. 需要考虑不同学年,并以学年制管理学籍;
  5. 不考虑按照班级直接开课的情况,即所有课程均由学生自由选择;
  6. 一个学生只能选择某位老师的开的某个课程,即学生不能同时选择同一门两个不同老师开的课程;
  7. 不存在两个及以上老师联合开课的情况,即不存在两个及以上教师负责同一教学班的情况。

2.2 E-R图

基于以上分析可得以下E-R 图:

选修课管理系统java数据库_java_02


选修课管理系统java数据库_tomcat_03

三、逻辑结构设计

3.1关系模式设计

将E-R图转换为以下关系模式:(加粗代表主键,斜体内容表示外键)

  • 班级(班级编号, 班级名称)
  • 学生(学号, 姓名, 性别, 年龄, 生源所在地, 已修学分总数, 登录密码, 班级编号)
  • 课程(课程编号, 课程名称, 学时, 考试或考查, 学分)
  • 教师(教师编号, 姓名, 性别, 年龄, 职称, 电话, 登录密码)
  • 开课情况(开课编号课程编号, 任课教师编号,开课学年, 开课学期,学号,成绩)
  • 选课情况(开课编号学号,成绩)

3.2数据类型定义

对关系模式中的属性定义类型、长度和约束:

  1. 班级

数据项名

数据类型

长度

完整性约束

备注

班级编号

nvarchar

4

主键,唯一,非空

班级名称

nvarchar

20

非空

  1. 学生

数据项名

数据类型

长度

完整性约束

备注

学号

nvarchar

12

主键,唯一,非空

姓名

nvarchar

5

非空

性别

nvarchar

1

非空

年龄

int

4

非空

生源所在地

nvarchar

20

非空

已修学分总数

float

4

登录密码

nvarchar

20

非空

班级编号

nvarchar

4

外键,非空

  1. 课程

数据项名

数据类型

长度

完整性约束

备注

课程编号

nvarchar

5

主键,唯一,非空

课程名称

nvarchar

20

非空

学时

int

4

非空

考试或考查

bit

1

非空

学分

float

4

非空

  1. 教师

数据项名

数据类型

长度

完整性约束

备注

教师编号

nvarchar

5

主键,唯一,非空

姓名

nvarchar

20

非空

性别

nvarchar

1

非空

年龄

int

4

非空

职称

nvarchar

10

非空

电话

nvarchar

20

非空

登录密码

nvarchar

20

非空

  1. 开课选课情况

数据项名

数据类型

长度

完整性约束

备注

开课编号

nvarchar

15

主键,唯一,非空

课程编号

nvarchar

5

外键,非空

任课教师编号

nvarchar

5

外键,非空

开课学年

nvarchar

4

非空

开课学期

bit

1

非空

  1. 选课情况

数据项名

数据类型

长度

完整性约束

备注

开课编号

nvarchar

15

联合主键,也均为外键

学号

nvarchar

12

成绩

int

4

四、实现代码

代码详见 Github,欢迎star!(SQL命令在/WebContent/WEB-INF/下)