海南省技师学院,海南省 海口市
摘要:本次课题的研究任务是,通过不断与用户沟通,了解客户真实需求,在此基础上,研发出适用于我院体育组的学生体能统计分析系统。原有传统手工电子表格统计学生体能成绩的方式,效率低,成本高。研发的系统将会代替传统的统计学生体能成绩的方式,大大节省和减轻表格统计者的时间和劳动量,并且有利于提高数据的准确性。
系统主要能够实现对数据库中相关数据的处理,根据学年、部门、年级、性别、项目查询学生体能统计分析的数据,并成功导出报表。
关键词:体能;统计;报表
引言
我院基础教学部体育教研组每一学年都需要根据学生的体育成绩、体能测试成绩、第二课堂成绩以及学年总分等四项指标通过人工手动统计分析计算学生的体能综合成绩。由于每年需要统计的学生人数逾6千人,所以每年在开展这项工作时,都需要耗费大量的人力、物力及时间,不仅工作量巨大还容易产生统计数据的误差。在信息技术高速发展的今天,用这样一种效率低下的手工方式来进行数据的统计分析显然已经不合时宜。
我院目前已运行有一个数字化校园平台,该平台具有良好的开放性和拓展性,我们希望依托我院的数字化校园平台,新增一个子系统,用信息技术的手段来解决这个问题。
1 需求分析
1.1 项目类别
在与我院体育组相关负责人对需要实现的功能进行充分的沟通后,我们将需求进行如下梳理:
项目类别:
(1)体质测试成绩:主要指学生在第一学期体育课的综合成绩;
(2)体育成绩:主要指学生在第二学期体育课的综合成绩;
(3)第二课堂成绩:主要依据学生在两个学期的平时操练中(如军训、广播操等)的表现由班主任评价得出的成绩;
(4)学年总分:学年总分通过计算机体质测试成绩、体育成绩和第二课堂成绩这三个项目而得出的成绩,学年总分的计算方法是:体质测试成绩的30%,体育成绩的30%,第一学期和第二学期的第二课堂成绩和的40% ;计算公式是:学年总分=第二课堂成绩*0.4+(体质成绩+体育成绩)*0.3。;
1.2评价等级计算方法
(1)不及格——综合成绩小于60;
(2)及格——综合成绩大于等于60,小于75;
(3)良好——综合成绩大于等于75,小于85;
(4)优秀——综合成绩大于等于85。
2 系统设计与实现
2.1类及结构体设计
本系统依托于数字化校园系统平台进行开发,在编码方面只涉及到页面前端脚本代码的编写,不涉及到类及结构体的设计。
2.2模块设计
根据需求、本系统的系统功能模块图如下图2-2所示:
2-2 系统功能模块图
(1)学生体能素质评价
本模块主要体现学生个人的体能素质评价情况,按照班级对学生进行汇总,可进行新增、查看、修改、删除、查询及打印操作,方便主模块进行相关数据的调用,是本系统的一个辅助性模块。
(2)学生体能成绩统计
本模块是系统的核心模块,基本以需求分析阶段采集的原始报表作为模板设计,把相关的学年、部门、项目、年级、性别、检查人数、优秀人数、优秀百分比、良好人数、良好百分比、及格人数、及格百分比、不及格人数及不及格百分比等字段全部放在页面显示,并辅以学年、部门、年级、性别四个查询条件。本模块只设计一个页面,不提供任何对数据修改的操作,仅实现导出报表的功能,所有数据都来源于系统数据库中的原始数据或综合计算的结果。
2.3页面设计
在本系统新增的学生体能成绩统计页面,页面设计如图3-3-1所示。
图2-3-1 学生体能成绩统计
2.4数据库设计
2.4.1数据库表
(1)数据库中涉及提取数据的表如下所示:
1)ZZ_TEST_JXCJ:军训成绩表 2)JW_XSJBXXLR:学生基本信息表
3)OU_DEPARTMENT:部门表 4)ZZ_TEST_COURSE:班级课程表
5)ZZ_TEST_SCORE:成绩表 6)ZZ_KC:课程表 7)XN:学年表
(2)创建的表如下所示:
JW_TINENG_SCORE_STATISTICS :学生体能成绩统计评价表
(3)数据库表的数字字典和表关系如下:
学生体能成绩表所关注的学生的体能成绩信息,与部门表、学生基本信息表、学年表关联。如表3-1所示:
表2-4-1学生体能成绩统计评价表(JW_TINENG_SCORE_STATISTICS)
字段名称 | 含义 | 数据类型 | 允许为空 | 主键 | 外键 |
ID | id | VARCHAR2(20) | N | Y | |
bjszx | 班级所在系 | VARCHAR2(20) | N | | Y |
project_type | 体育项目 | VARCHAR2(20) | | | |
xb | 性别 | VARCHAR2(20) | | | |
nj | 年级 | VARCHAR2(20) | | | |
check_count | 检查人数 | VARCHAR2(20) | | | |
bujige_count | 不及格人数 | VARCHAR2(20) | | | |
jige_count | 及格人数 | VARCHAR2(20) | | | |
lianghao_count | 良好人数 | VARCHAR2(20) | | | |
youxiu_count | 优秀人数 | VARCHAR2(20) | | | |
bjgbfb | 不及格百分比 | VARCHAR2(20) | | | |
jgbfb | 及格百分比 | VARCHAR2(20) | | | |
yxbfb | 优秀百分比 | VARCHAR2(20) | | | |
lhbfb | 良好百分比 | VARCHAR2(20) | | | |
xn | 学年 | VARCHAR2(20) | N | | Y |
2.4.2创建表的实体图
(1)JW_TINENG_SCORE_STATISTICS:学生体能成绩统计评价表
学生体能男成绩统计评价表用于统计分析评价各系部在各体育项目以及各年级的生与女生的总的检查人数,其中优秀人数、良好人数、及格人数以及不及格人数所占检查人数的百分比,学生体能成绩统计评价表实体图如下图3-4-2-2所示:
2.4.3实体关系图
数 据库中涉及表的相关实体关系如下图2-4-3所示:
2-4-3实体关系图
2.5编码实现
2.5.1页面前端主要核心脚本代码
if(login.getId()=='admin')
{
var sql = "select t.*, t.rowid from XSTNSZPKBZ t ";
var nj=request.getParameter("nj0");
if(nj==""||nj==null)
{
sql+=" where 1=1"
}
else
{
sql+=" where nj like'%"+nj+"%'"
}
sql+=" order by t.tjsj desc";
runtime.setSQL(sql);
}
2.5.2数据库存储过程编写
创建proc_TiNengScore_Statistics存储过程,主要用于计算各项目的成绩等级,核心代码如下:
create or replace procedure proc_TiNengScore_Statistics
is
begin
--体育和体质测试成绩等级的统计
delete from JW_TINENG_SCORE_STATISTICS;
commit;
insert into JW_TINENG_SCORE_STATISTICS(xn,bjszx,project_type,xb,nj,check_count,bujige_count,jige_count,lianghao_count,youxiu_count,Bjgbfb,Jgbfb,Lhbfb,Yxbfb)
select v.xn, v.bjszx,v.project_type,v.xb,v.nj,v.check_count,v.bujige_count,v.jige_count,v.lianghao_count,v.youxiu_count,v.bjgbfb,v.jgbfb,v.lhbfb,v.yxbfb
from view_TIYU_TIZHI_score_grade v ;
--军训成绩等级的统计
insert into JW_TINENG_SCORE_STATISTICS( xn,bjszx,project_type,xb,nj,check_count,bujige_count,jige_count,lianghao_count,youxiu_count,Bjgbfb,Jgbfb,Lhbfb,Yxbfb)
select jxs.xn,jxs.bjszx,jxs.project_type,jxs.xb,jxs.nj ,jxs.check_count,jxs.bujige_count,jxs.jige_count,jxs.lianghao_count,jxs.youxiu_count,jxs.bjgbfb,jxs.jgbfb,jxs.lhbfb,jxs.yxbfb
from view_JW_junxun_score_grade jxs ;
--学分成绩等级的统计
insert into JW_TINENG_SCORE_STATISTICS(xn, bjszx,project_type,xb,nj,check_count,bujige_count,jige_count,lianghao_count,youxiu_count,Bjgbfb,Jgbfb,Lhbfb,Yxbfb)
select xns.xn, xns.bjszx,xns.project_type,xns.xb,xns.nj,xns.check_count,xns.bujige_count,xns.jige_count,xns.lianghao_count,xns.youxiu_count,xns.bjgbfb,xns.jgbfb,xns.lhbfb,xns.yxbfb
from view_xuenian_score_grade xns ;
commit;
end ;
3 系统主要技术问题及解决方案
3.1 计算学生年级问题
因为在原有的数据库表中没有年级字段的存在,也没有计算学生年级的算法,并且学生的年级不是固定不变,而是每学年都有变化,所以如何计算判断学生处于哪个年级过程非常复杂。而且要根据年级来统计分析和评价学生的体能成绩,就必须解决如何计算学生年级的问题。
要解决学年级的问题,就首先必须分析计算年级需要的数据,以及计算年级的计算方法,经过分析得知,计算年级需要的数据是学生的入学时间和学制。
不同的学制表示不同的班级类别。中级班的学制三年;高级班的学制四年;预师班的学制五年。而入学时间则用来计算学生从入学至今在校的总月份,在校的总月份所处的范围来和学制用于判断学生处于的年级。
学生在校的总月份计算方法如下:
总月份=((系统年份-入学年份)*12+系统月份-入学月份。
实现计算学生年级方案如下:
(1)中级班、高级班、预师班的一年级的计算:
如果学生在校总月份在0-12之间,则学生处于一年级
(2)中级班、高级班、预师班的二年级的计算:
如果学生在校总月份在13-24之间,则学生处于二年级
(3)中级班、高级班、预师班的三年级的计算:
如果学生在校总月份在25-36之间,则学生处于三年级
(4)高级班、预师班的四年级的计算:
如果学生在校总月份在37-48之间,则学生处于四年级
(5)预师班的五年级的计算:
如果学生在校总月份在49-60之间,则学生处于五年级
4系统测试
4.1 软件测试的目的
测试是保证软件质量的重要手段。软件测试的目的不单单是查漏补缺,还能够帮助项目开发者和管理者发现当前软件开发过程中的缺陷,以便及时改进。即使没有发现错误,测试本身也是有价值的,完整的测试是评定软件质量的一种方法。
5 上线运行
在系统经过一个月的测试运行后,已对测试期间出现的问题进行修补,目前系统已经上线正常运行并可以导出报表。
结论
本次研究课题使用了普巴平台、Oracle、JBos、Dreamweaver等开发工具,进行并完成了基于普巴平台的架构及上层功能模块的代码设计,通过严谨的画面测试发现并修正了一系列错误。系统主要实现了能够根据学年、部门、年级、性别、项目等查询和导出数据报表的功能,全部解决了我院体育组相关负责人提出的需求,成功上线运行了研究开发的系统并交付使用。系统从需求分析到数据库设计,从框架的搭建到代码的实现,经历了一次次变更。在整个过程中,学以致用,收获颇深。
通过本次课题设计,进一步巩固了编程知识,大大的提高了专业能力,也将会更加有利于教学工作。
参考文献:
[1]许令波,深入分析Java Web技术内幕.电子工业出版社 ,2012.09
[2]耿祥义, Java基础教程(第3版).清华大学出版社,2012.06
[3]常建功, JavaWeb典型模块与项目实战大全,清华大学出版社,2011,04.
[4]郑莉, Java语言程序设计(第2版) ,清华大学出版社,2011.06
7