摘要:随着在校学生数量的不断增多,学生成绩管理需要一个高效且能够随需应变的学生成绩管理平台。如何能有效的实现信息化管理学生成绩信息,建立一套适合该校学生成绩管理系统,已经是各学校数字信息建设所需解决的重要问题。该文基于SSH2 技术框架,构建了学生成绩管理系统,系统可以实现了对学生信息、成绩的分析、统计、审核等的数字化、网络化管理,不受时间和空间限制。
关键词:Struts2;Spring;Hibernate;成绩管理系统
中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2014)21-4955-04
由于目前对学校信息化管理的要求,早期的学生成绩管理系统已不能适应需求,在这样的背景下,为了加快校园的信息化建设,实现学校办公自动化也就显得越来越重要了。开发基于SSH2学生成绩管理系统,学生成绩信息化管理可以提高学校办学整体效率,所以要充分依托校园网,利用学生成绩管理系统实现学生成绩信息向数字化、无纸化、智能化、综合化的方向发展。
1 需求分析
随着计算机和网络的应用普及,在信息时代,对信息处理的要求高效、快速,人工管理模式已不能满足需要,因此要改变学生成绩人工管理方式,实现用计算机来高效、快速地处理信息。本系统设计功能主要实现学生管理、教师管理和管理员模块。实现不同的用户角色登录,具有不同的权限和功能。其中,系统相关的设置等由管理员负责,教师和学生由管理员管理,同时教师也管理学生,而学生只能查看成绩和选课。
2 系统设计
本系统设计基于SSH2(Struts2 + Spring + Hibernate)技术,表现层使用了Struts2框架实现了视图控制分离。业务层使用了Spring框架能够很好地黏合表示层与持久层。Service层实现了业务代码的高效分离,主要处理业务逻辑和交叉业务逻辑、处理事务、日志、安全等。Hibernate框架是一个独立的对象持久层框架。Hibernate高效的权衡了运行效率、内存消耗和、开发效率,并自动封装了事务控制和安全性代码等重要功能。
2.1 关键技术
在本系统中使用的技术主要有: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对应的数据库映射配置文件。
本系统采用了Flash以及jQuery UI为用户提供最大的交互性,同时交替使用FormValidator和EasyValidator为用户的数据输入提供最直观可视化的验证,为了防止一些恶意用户禁用JavaScript,同时使用Struts2的服务器端数据验证。使用DataTables实现数据的本地分页、排序与即时数据查询。
2.2 数据库结构的设计
1) 数据库需求分析
学校下有多个专业,每个专业有多个班级,因此这些机构就可以全部放在一张表里,以父id的方式实现自身一对多连接。教师和班级是多对一的关系。授课与教师的关系是多对一,且授课与课程的关系也是多对一,以授课表为连接,这样就实现了教师与课程的关系是多对多。同时教师还要为所教授的课程上传实验要求,这样每个授课就要对应多个实验要求,所以授课和教师上传文件的关系是一对多。每个班级有一定数量的学生,同时一个学生只能属于一个班级,所以学生和班级的关系是多对一。成绩和学生的关系是多对一,且成绩与课程的关系也是多对一,以成绩为连接,这样就实现了学生与课程的多对多关系。同时学生还得为所选的课程的成绩上传上机作业,以便日后生成上机成绩,这样成绩就要对应多个学生上机作业,所以成绩和学生上传文件的关系是一对多,在Sybase PowerDesigner 15.1的关系如图1所示。
2) 数据库的连接设计
本系统采用SSH2三大Java Web框架,使用Apache的DBCP数据连接池[12]连接MySQL数据库,并设置连接池启动时的初始值、最大值、最大空闲值、最小空闲值,以防止访问者过多导致服务器的崩溃。
3) 数据库表的设计
管理员表:记录管理员用户名和密码,用于管理员的登录。
课程表:记录课程的一些属性:如课程名和课程类型等。
授课表:教师的授课列表,主要有学期和学年,最重要的就是平时成绩比率、考试成绩比率以及上机成绩比率,为日后成绩的统计提供重要依据。
Log4j日志表:记录任何一个用户对系统所做的任何操作。
机构表:列出了三种机构分别是院系、系别、班级,且它们的关系是前一个是后一个的父机构,而后一个是前一个的子机构,它们的关系是通过pid父id进行关联的。
班级-教师关联表:记录教师和班级多对多的关系,仅仅作为一个连接表。
成绩表:这是本系统的核心表,大部分的数据操作都是基于此表的,将学生平时成绩、考试成绩、上机成绩通过教师授课所设定的比率进行计算,最终将结果存入score字段中。
学生表:主要记录学生的个人信息和照片名,以及学号和密码用于学生的登录。
学生上传文件表:记录学生上传上机作业的文件名和次数,以及上传至服务器的文件名,用于学生对文件的上传和下载,其中point字段还记录着每次学生电子实验的成绩,方便最后的上机成绩汇总。
教师表:主要记录教师的个人信息和照片名,以及教工号和密码用于教师的登录。
教师上传文件表:记录着教师上传实验要求的文件名和次数,以及上传至服务器的文件名,用于教师对文件的上传和下载。
2.3 系统设计
本系统设计主要有学生模块、教师模块、管理员模块三个部分。如图2所示。
管理员管理模块主要有:
学生管理:实现管理员可以查看全部的学生,并对选定的学生可以进行视图、详情、更新、删除等操作。管理员还可以实现按选课查看学生、按院系查看学生、按班级查看学生、快速按班级查看学生、按教师查看学生等以不同的方式查看学生。然后可以将全部的学生以Excel文件下载,也可以打印当前的数据页面。最后管理员还可以添加学生。
教师管理:实现管理员可以查看全部的教师,并对选定的教师可以进行视图、详情、更新、删除等操作。管理员还可以实现按授课查看教师、按系别查看教师等以不同的方式查看教师。然后可以将全部的教师以Excel文件下载,也可以打印当前的数据页面。最后管理员还可以添加教师。
机构管理:实现管理员可以按照级别查看全部的院系、系别和班级。当管理员进入不同级别的机构时,就可以在对应级别的机构创建、修改相应的机构。管理员只能删除再无子机构的机构,然后才能删除父机构。也可以打印当前的数据页面。最后管理员还可以添加顶级机构也即是院系。
课程管理:实现管理员可以查看全部的课程,并对选定的课程可以进行更新、删除等操作。也可以打印当前的数据页面。最后管理员还可以添加课程。
成绩管理:实现学生成绩的查看、删除、打印当前的数据页面等操作。由于学生成绩涉及到的关系复杂想要更细粒度的成绩管理可通过相应的教师或学生视图进行操作。
授课管理:实现管理员可以查看全部的教师的授课,并对选定的教师授课可以进行查看、更新、删除等操作。也可以打印当前的数据页面。由于教师授课涉及到的关系复杂想要更细粒度的授课管理可以进入相应的教师视图进行操作。
网络搜索:实现管理员想要快速的进行网络信息上的检索,可以快速的使用该功能进行百度或Google搜索,同时搜索的页面会在新的窗口打开而对本系统没有任何影响。
小工具:实现管理员可以使用钟表、日历、科学计算器等以Flash形式弹出的小工具。为操作人员提供更友好的界面和实用的功能。
查看日志:实现管理员可以查看所有使用过该系统人员在使用系统的任何痕迹,方便管理员的日后系统维护工作。
修改密码:实现管理员可以修改自己的密码。
修改用户名:实现管理员可以修改自己的用户名。
注销:实现管理员登录系统后可以进行注销。
教师管理模块主要:
学生信息:实现教师可以查看所教授班级的全部学生,并对选定的学生可以进行视图、详情、更新、删除等操作。教师可以实现按班级查询学生、按课程查看学生。也可以打印当前的数据页面。最后教师还可以添加学生。
授课:实现教师可以查看所教授全部课程,并对选定的课程可以进行修改、删除等操作。也可以打印当前的数据页面。最后教师还可以添加授课。
电子实验:实现教师可以通过学生电子作业,以班级和课程为条件来查看学生上传的电子作业情况并打分。也可以通过按次数查看学生电子作业,加之以作业次数查看学生上传的电子作业。同时教师还可以管理自己每次电子作业的实验要求。也可以打印当前的数据页面。
学生成绩:实现教师可以查看所教授课程的全部学生的成绩信息,并对选定的成绩可以进行平时成绩和考试成绩的修改、评语的添加等操作。教师可以实现按班级查询成绩、按课程查看成绩、不及格成绩、优秀成绩。也可以打印当前的数据页面。
班级:实现教师可以查看所教授全部班级,并对选定的班级可以进行删除等操作。也可以打印当前的数据页面。最后教师还可以添加班级。
学生信息统计:实现教师可以通过查看学生平均分以班级和课程为条件来查看学生的平均分,同时也可以以Excel文件形式将当前的数据下载下来。教师还可以通过查看不及格总人数、查看学生总人数、查看男女生总人数来查看学生的其他统计信息。 也可以打印当前的数据页面。
信息统计图表:实现教师可以通过使用成绩区间柱状图功能以班级和课程为条件来生成成绩区间人数分布图,给教师最直观的数据展示。教师还可以通过使用成绩区间饼状图,男女生比例饼状图来直观的观看统计信息。也可以打印当前的图表页面。
学生管理模块主要有:
成绩:实现学生可以通过全部成绩查看自己选择的课程成绩,还可以查看教师对自己的评语。还可以通过不及格成绩、平均成绩、总成绩以不同的角度来查看自己的成绩。也可以打印当前的数据页面。
课程:实现学生可以查看所选择的全部课程,并对选定的且暂时没有给定成绩的课程进行删除操作。也可以打印当前的数据页面。最后学生还可以添加课程。
老师:实现学生可以查看所教授自己的全部教师。也可以打印当前的数据页面。
电子作业:实现学生可以以课程为条件来查询教师发布的上机实验要求并下载。学生可以通过电子作业管理,来管理自己上传的文件。也可以打印当前的数据页面。
成绩图表:实现学生可以通过单击全部成绩柱状图和全部成绩饼状图,以最直观的方式来查看自己的成绩,以此来分析自己在哪方面的不足。
3 系统安全设计
学生成绩管理系统的安全主要从数据库关键数据加密、数据在网络加密传递和用户权限的分配三个方面进行设置。
1) 数据加密
数据的加密通过MD5实现,将学生登陆密码加密经网络由客户端传到服务器端,这样做的目的就是防止不法分子通过抓包工具抓取用户密码明文,即使被抓取到了也只是加密后的密文,从而确保了数据在网络上传输的安全性。接着将被客户端第一次加密的密码传输到服务器端后,通过MD5加密方式,进一步在服务器端加密,这样做的目的是增加一些MD5破解软件破解的困难度,此时密码已经进行了双重的MD5加密。客户端传过来的学生姓名在服务器端将通过密钥进行DES加密,数据库中实现双重MD5密码加密和一次DES姓名加密,数据库中的关键数据以密文的形式体现,保证数据库中数据的安全,为系统的安全提供最后一层防线如图3所示。
图3 MD5和DES加密流程
2) 系统中用户权限分配
用户输入用户ID、密码和验证码后,选择相应的角色进行登录。在此管理员可以管理教师和学生,教师可以管理学生,而学生只能查看自己的成绩如图4所示。
4 结束语
本系统充分利用计算机网络,实现高效自动化的信息管理。学生成绩管理主要是对本校学生的成绩信息以及学生的个人信息进行存档备案,对每个学生的信息进行信息化的管理,不同的用户实施自己的管理功能,授课成绩比率的设定、学生成绩的录入、学生上传作业的管理等由老师的来完成,学生可以进行课程的选择、查询成绩、上传作业等多种功能。学生成绩的管理完全可以通过本系统来实现。
参考文献:
[1] 周平等.Java EE大学教程[M].北京:清华大学出版社,2012:49-53.
[2] 姜承尧.MySQL技术内幕:SQL编程[M].北京:机械工业出版社,2012:103-109.
[3] 陈萍.网格模式下的高校教学平台研究与设计[J].电脑开发与应用,2006(7):41-43
[4] 陆舟.Struts2技术内幕:深入解析Struts架构设计与实现原理[M].北京:机械工业出版社,2012:15-18.