- 开发意义: 随着信息技术不断向深入发展,越来越多的学校开始着手信息化建设。其中学生选课、成绩信息化管理就是其中重要的一块内容。学生选课与成绩信息规模大、项目条数多、信息量庞大,传统的人工管理方式显然已经无法满足要求,需要借助计算机来进行现代化信息管理,从而提高管理的准确性与高效性。
- 可行性: 传统人工管理成绩存在诸多弊病,比如准确性低、效率低等。计算机具有存储快、查找便利、准确性高的特点,能非常好的解决人工管理的弊病。
- 应用环境:
- Web服务器:tomcat8.5;
- 编程工具Eclipse Java 2019-09;
- 数据库:SQL sever 2017;
- 技术路线: jsp+servlet+javabean;
系统功能框架介绍,处理模块描述。
- 查询教师名单;
- 添加教师信息;
- 修改教师信息;
- 删除教师信息;
- 查询学生名单;
- 添加学生信息;
- 修改学生信息;
- 删除学生信息;
- 查询课程信息;
- 添加课程信息;
- 修改课程信息;
- 删除课程信息;
- 修改登录密码;
- 查看个人信息;
- 查看任课信息;
- 按照课程表信息开设课程;
- 取消个人已开课的课程;
- 按行政班级查看学生均绩及排名;
- 按任课课程查询学生单门成绩及排名;
- 按学年查询个人教授课程的平均成绩;
- 录入学生成绩, 自动更新该学生已修总学分;
- 修改登录密码;
- 查看个人信息;
- 查看本人课程;
- 选课与退选;
- 按学年查询考试成绩;
- 修改登录密码;
![图1.1.1 系统功能需求](https://camo.githubusercontent.com/382f5af52c2a8130363b494161caec39dff76e76e07984d1da577e9c6ccf5366/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303230303130343135353632313932322e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c33646c61586870626c38304e444d784f4445354d673d3d2c73697a655f31362c636f6c6f725f4646464646462c745f3730)
- 分管理员、教师、学生不同身份登录,并给予不同的权限,提高系统安全性;
- 使用前端验证保证用户的输入正确。
- 创建触发器及存储过程,保证完整性。
- 充分考虑系统报错情况,尽量防止系统崩溃。
- 开设班级,每个班级包含若干学生;
- 课程由教师开设;
- 同一门课可能有多个教师开课,一个教师在一学期可能开多门课程;
- 需要考虑不同学年,并以学年制管理学籍;
- 不考虑按照班级直接开课的情况,即所有课程均由学生自由选择;
- 一个学生只能选择某位老师的开的某个课程,即学生不能同时选择同一门两个不同老师开的课程;
- 不存在两个及以上老师联合开课的情况,即不存在两个及以上教师负责同一教学班的情况。
基于以上分析可得以下E-R 图:
![在这里插入图片描述](https://camo.githubusercontent.com/5dfcaccbfd7a95303c34d4476b44b22d167771ec4f7cb4cb954cccdb718a4ded/68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303230303130343135353735383433312e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d46755a33706f5a57356e6147567064476b2c736861646f775f31302c746578745f6148523063484d364c7939696247396e4c6d4e7a5a473475626d56304c33646c61586870626c38304e444d784f4445354d673d3d2c73697a655f31362c636f6c6f725f4646464646462c745f3730)
将E-R图转换为以下关系模式:(加粗代表主键,斜体内容表示外键)
- 班级(班级编号, 班级名称)
- 学生(学号, 姓名, 性别, 年龄, 生源所在地, 已修学分总数, 登录密码, 班级编号)
- 课程(课程编号, 课程名称, 学时, 考试或考查, 学分)
- 教师(教师编号, 姓名, 性别, 年龄, 职称, 电话, 登录密码)
- 开课情况(开课编号,课程编号, 任课教师编号,开课学年, 开课学期,学号,成绩)
- 选课情况(开课编号,学号,成绩)
对关系模式中的属性定义类型、长度和约束:
- 班级
数据项名 |
数据类型 |
长度 |
完整性约束 |
备注 |
班级编号 |
nvarchar |
4 |
主键,唯一,非空 |
|
班级名称 |
nvarchar |
20 |
非空 |
|
- 学生
数据项名 |
数据类型 |
长度 |
完整性约束 |
备注 |
学号 |
nvarchar |
12 |
主键,唯一,非空 |
|
姓名 |
nvarchar |
5 |
非空 |
|
性别 |
nvarchar |
1 |
非空 |
|
年龄 |
int |
4 |
非空 |
|
生源所在地 |
nvarchar |
20 |
非空 |
|
已修学分总数 |
float |
4 |
|
|
登录密码 |
nvarchar |
20 |
非空 |
|
班级编号 |
nvarchar |
4 |
外键,非空 |
|
- 课程
数据项名 |
数据类型 |
长度 |
完整性约束 |
备注 |
课程编号 |
nvarchar |
5 |
主键,唯一,非空 |
|
课程名称 |
nvarchar |
20 |
非空 |
|
学时 |
int |
4 |
非空 |
|
考试或考查 |
bit |
1 |
非空 |
|
学分 |
float |
4 |
非空 |
|
- 教师
数据项名 |
数据类型 |
长度 |
完整性约束 |
备注 |
教师编号 |
nvarchar |
5 |
主键,唯一,非空 |
|
姓名 |
nvarchar |
20 |
非空 |
|
性别 |
nvarchar |
1 |
非空 |
|
年龄 |
int |
4 |
非空 |
|
职称 |
nvarchar |
10 |
非空 |
|
电话 |
nvarchar |
20 |
非空 |
|
登录密码 |
nvarchar |
20 |
非空 |
|
- 开课选课情况
数据项名 |
数据类型 |
长度 |
完整性约束 |
备注 |
开课编号 |
nvarchar |
15 |
主键,唯一,非空 |
|
课程编号 |
nvarchar |
5 |
外键,非空 |
|
任课教师编号 |
nvarchar |
5 |
外键,非空 |
|
开课学年 |
nvarchar |
4 |
非空 |
|
开课学期 |
bit |
1 |
非空 |
|
- 选课情况
数据项名 |
数据类型 |
长度 |
完整性约束 |
备注 |
开课编号 |
nvarchar |
15 |
联合主键,也均为外键 |
|
学号 |
nvarchar |
12 |
|
|
成绩 |
int |
4 |
|
|