基于网络的学生成绩管理系统的设计的体系构建
网络技术的应用使得计算机之间通信、信息共享成为可能,而数据库技术的应用则为人们提供了数据存储、信息检索、信息分析等功能,从而使得工作更高效地进行。利用计算机实现学生成绩管理,具有存储量大、保密性好、寿命长、成本低、查找方便、检索迅速、可靠性高等优点。这些优点使得学生成绩管理的效率在很大程度上得到了提高,加快了校园的信息化建设。依托校园网,充分实现学生成绩信息的集中管理、分散操作、信息共享,使传统的成绩管理朝着数字化、无纸化、智能化、综合化的方向发展。学生成绩管理主要是对本校学生的成绩信息以及学生的个人信息进行备案,并对其进行记录和管理,是学校教务管理的重要组成部分,成绩管理系统包括管理员模块、教师模块以及学生模块。管理员可以进行不同机构的建立、学生和教师信息的管理等;教师可以进行学生成绩的录入、授课成绩比率的设定、学生上传作业的管理等;学生可以进行课程的选择、查询成绩、上传作业等多种功能。学生成绩的管理完全可以通过学生成绩管理系统来实现。本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量。
1 系统设计原则
1.1 开放性、可扩充性、可靠性原则
开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。
1.2 安全性原则
数据库中关键词段,如用户姓名使用DES加密,用户的密码分别使用客户端MD5加密和服务器端MD5再加密。即使数据库被盗,也不会透露出用户的个人关键信息。
1.3 良好的用户操作界面
用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。使用DWR[9]可以实现网页的局部刷新,从而增加用户的友好度。使用户能够方便使用,使用该系统成为用户的一种享受。
1.4 实用性原则
任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支,规范管理。
2 关键技术
本系统的开发是基于SSH2(Struts2 + Spring + Hibernate)技术,采用SSH2技术开发系统可以提高工作效率,提高系统的稳定性、安全性和健壮性。使用Struts2框架,实现了视图控制分离。业务层使用了Spring框架,完美的实现了业务代码的高效分离。Hibernate框架是一个独立的对象持久层框架,它是JDBC的轻量级的对象封装,自动封装了事务控制和安全性代码等重要功能。
在本系统中技术主要有:JSP负责系统页面的展示;Log4j负责日志指定位置的输出;DataTables负责数据的排序、分页及查找;DWR负责三级下拉菜单联动以及用户ID的即时检测;Hibernate负责和数据库进行交互;HTML5使用其新提供的标签属性required进行表单数据的验证;Spring负责管理系统中所有类的Bean;JFreeChart负责以图形的方式直观的显示数据;JQuery负责页面脚本的编写,使编写JavaScript写的更少,做的更多;JQuery UI负责以更友好美观的方式显示网页上的可视控件;Struts2负责整个系统的Action导航;JUnit负责进行Java代码的快速调试;网页文本编辑器CKEditor;基于JQuery的表单验证插件FormValidator和EasyValidator;配合使用XDoclet和Ant就可以直接在Java文件中写出注解,然后运行Ant脚本,最后自动生成Hibernate和该Java对应的数据库映射配置文件。
3 系统设计与实现
3.1系统设计
本系统设计主要有管理员模块、教师模块、学生模块三个部分组成,如图1所示。其中,管理模块主要由学生管理、教师管理、机构管理、课程管理、成绩管理、授课管理、网络搜索、小工具、查看日志、修改密码、修改用户名、注销等功能模块构成。教师管理模块由学生信息、授课、电子实验、学生成绩、班级、学生信息统计、信息统计图表、网络搜索、小工具、个人信息、修改密码、注销等功能模块构成。学生管理模块主要由成绩、课程、老师、电子作业、成绩图表、网络搜索、小工具、个人信息、修改密码、注销等功能模块构成。
3.2 数据库结构的设计
建立数据库及应用系统,设计满足用户需求的各种实体,以及他们之间的关系。主要设计管理员表:记录管理员用户名和密码,用于管理员的登录。课程表:记录课程的一些属性:如课程名和课程类型等。授课表:教师的授课列表,主要有学期和学年,最重要的就是平时成绩比率、考试成绩比率以及上机成绩比率,为日后成绩的统计提供重要依据。Log4j日志表:记录任何一个用户对系统所做的任何操作。机构表:列出了三种机构分别是院系、系别、班级,且它们的关系是前一个是后一个的父机构,而后一个是前一个的子机构,它们的关系是通过pid父id进行关联的。班级-教师关联表:记录教师和班级多对多的关系,仅仅作为一个连接表。成绩表:这是本系统的核心表,大部分的数据操作都是基于此表的,将学生平时成绩、考试成绩、上机成绩通过教师授课所设定的比率进行计算,最终将结果存入score字段中。学生表:主要记录学生的个人信息和照片名,以及学号和密码用于学生的登录。学生上传文件表:记录学生上传上机作业的文件名和次数,以及上传至服务器的文件名,用于学生对文件的上传和下载,其中point字段还记录着每次学生电子实验的成绩,方便最后的上机成绩汇总。教师表:主要记录教师的个人信息和照片名,以及教工号和密码用于教师的登录。教师上传文件表:记录着教师上传实验要求的文件名和次数,以及上传至服务器的文件名,用于教师对文件的上传和下载。
3.3登录模块的实现
本系统为使用户有着良好的操作体验,系统采用了Flash以及jQuery UI为用户提供最大的交互性,同时交替使用FormValidator和EasyValidator为用户的数据输入提供最直观可视化的验证,为了防止一些恶意用户禁用JavaScript,同时使用Struts2的服务器端数据验证。使用DataTables实现数据的本地分页、排序与即时数据查询。
学生成绩管理系统的用户登
录模块,可以实现学生、教师和管理员不同身份用户的登录,其中Radio Button和Submit按钮均是采用JQuery UI中的主题。网页上部是一个Flash,其中“SFL”是本人的Logo,旋转星星的光晕给整个网页以动感。联合使用FormValidator,EasyValidator和HTML5的required进行客户端数据的验证。加入验证码功能防止用户恶意登录系统造成服务器资源的浪费。其中用户的密码不是直接传送到服务器上的,而是经过浏览器JavaScript[17]的MD5加密再上传至服务器,目的是为了防止用户密码的明文被截获而造成用户账号的安全问题。该登录模块实现了完全的国际化,如Flash、图片、iframe中文字、标题栏、JavaScript表单验证的国际化。用户登录流程如图2所示。
学生登录代码片段如下所示。
if (getVerificate().equals(code)) {
if (("student")) {
String studentPwd = null;
try {
student = (Student) Sid(getId());
studentPwd = sword();
String id = () + "";
text().getSession().put("studentId", id);
text().getSession().put("role", "学生");
} catch (Exception e) {
ribute("tip", "该学号不存在!");
("学生:" + getId() + "学号不存在!登录失败!");
return ERROR;
}
if (passwordToMD5().equals(studentPwd)) {
text().getSession().put("user", getId());
("学生:" + getId() + "登录成功!");
return "student";
} else { ribute("tip", "学号正确,但密码输入错误!");
("学生:" + getId() + "学号正确,但密码输入错误!");
return ERROR;
}
}
}
4 结束语
在学校管理中,学生的成绩管理是一个很重要的环节,运用现代化的手段进行学生成绩,可以有效提高管理效率,减轻教务人员的工作量,用好学生成绩管理系统可以实现管理的自动化、系统化和规范化。
参考文献:
[1] 李刚.轻量级Java EE企业应用实战(第3版)—Struts 2+Spring 3+Hibernate整合开发[M].北京:电子工业出版社,2011:68-75.
[2] 陆舟.Struts2技术内幕:深入解析Struts架构设计与实现原理[M].北京:机械工业出版社,2012:15-18.
[3] Rod 框架高级编程[M].北京:机械工业出版社,2009:125-130.