毕业生成绩单生成软件的开发与应用

2017-03-22 12:59马致明叶尔肯·加伦木汉赵晴阿卜杜热
软件工程 2017年1期
关键词:软件

马致明 叶尔肯·加伦木汉 赵晴 阿卜杜热伊木·图尔荪

摘 要:教务管理系统是高校必不可少的教学管理软件,随着需求的提升教务管理系统也在不断地升级改造;因新旧系统数据库的兼容性问题而存在的安全隐患,过渡期间一些高校同时有两套教务管理系统在运行,两个系统中的成绩如何生成一张完整的毕业生成绩单就成了问题。利用VBA编程手段把从新旧系统中导出的Excel成绩表自动生成每个学生按学期分布的毕业生成绩单,大大减轻了教务人员的工作负担。文中介绍了有关方法和技术,以对遇到相同或相近问题的读者有所启示。

关键词:毕业生成绩单;生成;软件;教务管理系统;Excel VBA

中图分类号:TP311 文献标识码:A

1 引言(Introduction)

高校教务管理工作是高等教育中的一个极为重要的环节,是整个高校管理的核心和基础[1]。随着我国高等教育改革的不断深化和学校办学规模的不断扩大,使得教学管理部门的任务也越来越重,面对种类繁多的数据和报表[2,3],手工处理方式已经很难跟上现代化管理的步伐[4]。因此,我国高校多年前就已采用教务管理系统开展教务管理工作,信息化和网络化的管理模式使得管理手段更加先进、科学和高效。教务管理系统的功能主要包括学籍管理、教学计划管理、开课管理、智能排课管理、选课管理、考务管理、成绩管理、教材管理、实验管理、毕业环节管理,以及教学质量监控等方面,涉及对学生从入学到毕业离校的全过程管理[5,6]。在这些管理功能中最为关键的是成绩管理!学生能否毕业并获得学位全得看成绩,同时装入档案中的成绩单既是学生大学期间分量最重的材料,也是用人单位最看重的一份档案内容。

目前,我国高校的教学管理制度主要有学年制、学年学分制和完全学分制这三种,有些高校因教学管理制度的变化需要对已有的教务管理系统进行改造,还有一些高校因原有教务管理系统不能满足教务管理的需要而要进行升级改造。新的教务管理系统启用后,因新旧系统数据库的兼容性问题而隐藏着一些安全隐患,为了系统的安全性和数据的可靠性,过渡期间一些高校有两套教务管理系统同时在运行,新疆师范大学就是一例。

新疆师范大学教务管理系统于2012年开始处于新旧过渡期,因系统数据库兼容性方面的原因,从旧系统导入新系统的学生成绩出现了异常!出于对学生成绩安全性和可靠性考虑,同一个学生的成绩便出现在两个不同的教务管理系统中:新系统启用前的成绩数据在旧系统中,新系统启用后的成绩数据在新系统中。这批学生毕业时存入到学生档案中的成绩单如何打印就成了问题,如果在两个系统中分别打印的话,一个学生将有两个成绩单,这种“两张皮”的成绩单是极不正常的!如果让教务管理者通过手工方式逐个学生地去粘贴数据,其工作量将极其庞大,而且出错的概率也是极高的。

2 采取的对策(The strategy)

为了保持教务管理的严肃性和规范性,同时也为了维护学校的形象,我们决定自己开发一款软件,以便从两个系统中导出的Excel格式的学生成绩表为依据,自动生成每一个学生的一张完整的成绩单。

经过研究采用VBA编程手段是最为恰当和高效的。VBA是Visual Basic for Application的简称,是Microsoft对Office进行二次开发的工具,是VB程序设计语言的一个子集,VBA继承了VB程序设计语言的主要功能,并支持对Office对象的引用和操作。利用VBA编程手段开发者可以在Office文档中添加命令按钮等控件作为用户接口元素,通过这些控件Office文档可以得到用户的请求,并根据需求做出相应的响应[7]。在Excel中通过VBA编程手段可以访问工作簿、工作表、单元格等Excel对象,还可以根据自己制定的模板工作表动态生成任意多个工作表。本软件要生成的学生成绩单的有关数据已经在Excel工作表中,只要按照相应的格式统一数据,设置好模板工作表,就可以借助VBA编程手段将Excel中的成绩表按学生人数生成每一个学生的成绩单,最后提交打印即可。

3 软件相关信息的规划(Relative software information planning)

3.1 成績工作表数据格式的设定

(1)字段的设定

成绩工作表的首行为列标题,共有96个。其中A列为“序号”,B列为“姓名”,C列为“学号”,D列到CN列为“课程名称”(共89列,按学期顺序排列,如果没有那么多的课程,后面列标题设为空白即可),CO列为学分绩点之和,CP列为总学分,CQ列为平均学分绩点数,CR列为排名。

(2)开课学期的设定

成绩工作表的第二行为开课学期。在D列到CN列课程名称的下面填写开课学期的序号,有预科教育的班级共10个学期,序号值从1到10;没有预科教育的班级共8个学期,序号值从1—8。

(3)课程学分的设定

成绩工作表的第三行为课程学分。在第三行D列到CN列单元格中填写对应课程名称的学分数。

(4)学生成绩的设定

成绩工作表从第四行开始为学生的相关数据。其中,CO列的学分绩点之和、CP列的总学分、CQ列的平均学分绩点数和CR列的排名均由VBA代码算出。

3.2 成绩单模板工作表的设定

每个学生的成绩单要生成一个格式相同的单独的工作表,为此需要设定一个模板工作表,以填写其中的固定信息和因人而异的成绩信息等。

成绩单模板工作表的数据区域设定在1到34行、A列-J列(共10列)。其中,第1行的10个单元格合并用来呈现成绩单大标题,如“新疆师范大学学生成绩登记表”;第2行用来显示“学院”“专业”“班级”“学号”和“姓名”这5项信息;第3行将左右相邻的两个单元格合用于显示奇数学期名;第18行将左右相邻的两个单元格合用于显示偶数学期名;第4行和第19行各显示5个奇数学期和偶数学期的“课程名称”和“成绩”;每个学期的课程最多为13门,在第5—17和20—32行中填写;第33行用来显示“平均分”“平均学分绩点数”“排名”“审核签字(章)”和公章单位;第34行的I列填写表格打印日期。设置格式使成绩单中的所有信息刚好在一页A4纸页面内,其中第1、2、33、34行均无表格线。具体格式可参见图1中的成绩单样表。

4 软件开发(Software development)

4.1 軟件结构设计

本软件的原始界面只有两个Excel工作表,一个是成绩工作表Sheet1,另一个是成绩单模板工作表Sheet2,两个工作表均按照前面的格式要求进行设定。在成绩工作表Sheet1中通过“控件工具箱”工具栏添加一个命令按钮,并将其标题改为“生成成绩单”。单击此按钮后先获取成绩单表头等基本信息,然后按学生人数在此工作簿中生成学生成绩单,最后呈现生成结果及打印成绩单的提示。

4.2 软件算法设计

单击Sheet1工作表中“生成成绩单”按钮后先弹出一个对话框窗体,用来获取学院名称、专业名称、班级名称以及是否排名等信息;然后统计出Sheet1工作表中的学生人数,之后计算出每个学生的学分绩点之和、总学分、平均学分绩点数和学生排名这4项重要数据,并存放到Sheet1中的相应单元格;最后按学生人数自动生成相应个数的学生成绩单工作表,每个工作表的标题是学生的序号,在生成每个学生成绩单工作表的同时从成绩工作表中提取相应学生的数据并填写在对应成绩单工作表中的相应单元格中。

4.3 关键问题的处理方法

(1)列号的计算

在Excel VBA中用区域对象来引用单元格,其方法是:Range(“单元格名称”),其中单元格名称由英语字母所组成的列号和阿拉伯数字所组成的行号构成,如D5、BH4等。如前所述,课程名称及对应成绩的列号的取值范围是从D列到CN列,用循环控制的话列号L的取值范围是4—92,算出L列所对应的一个或两个字母所组成的列号名称就成为关键,为此我们用一个自定义函数过程FindCol来返回L列所对应的列号名称:

Function FindCol(L As Integer)As String

Select Case L

Case Is<=26

FindCol=Chr(64+L)

Case Is<=26*2

FindCol="A" &Chr(64+L-26)

Case Is<=26*3

FindCol="B" &Chr(64+L-26*2)

Case Is<=26*4

FindCol="C" &Chr(64+L-26*3)

End Select

End Function

(2)学生人数的统计

学生数据是在Sheet1工作表中的第4行开始的,B列存放的是学生姓名,只要学生姓名不空学生人数就增加1;若用H来统计学生人数,则代码为:

Do Until IsEmpty(Sheet1.Range("B"&H+4))

H=H+1

Loop

(3)课程门数的统计

课程名称数据是在Sheet1工作表中的第1行第4列开始的,只要课程名称不空课程门数就增加1;若用L来统计课程门数,则代码为:

Do Until IsEmpty(Sheet1.Range(FindCol(4+L)&1))

L=L+1

Loop

(4)成绩单工作表的自动生成和数据的填写

每个学生的成绩单是以工作表Sheet2为成绩单模板生成的,若共有H个学生,则生成成绩单工作表的核心代码是:

For r=1 To H'控制每个学生

'生成成绩单工作表

Sheets("Sheet2").Select

Sheets("Sheet2").Copy After:=Sheets(2)

Sheets("Sheet2(2)").Select

Sheets("Sheet2(2)").Name=r '将添加的工作表改名为学生的序号

'填写成绩单中的相关数据

Sheets(Trim(Str(r))).Range("G2")=Sheet1.Range("C"&r+2)'学号

Sheets(Trim(Str(r))).Range("I2")=Sheet1.Range("B"&r+2)'姓名

…… '限于篇幅其他代码省去

Next r

5 软件的应用(Software application)

(1)软件运行效果图

图1是由软件自动生成24个学生的成绩单后的界面图,其中“学生排名”根据需要可以选填,也可以只填写前10名。

(2)成绩单打印

学生成绩单生成后,单击工作表标签“1”,按住Shift键单击最后一个工作表标签,然后单击工具栏中的“打印”按钮即可一次打印所有学生的成绩单。本打印方法在成绩单生成后也已通过消息框提示给用户。

(3)软件使用情况

使用本软件时,教务管理人员只需要从两个教务管理系统中将学生成绩数据导出,然后按班级粘贴到本Excel工作簿中,单击“生成成绩单”按钮,全部学生成绩单就可立即生成并打印。由本软件生成的成绩单不仅比教务管理系统中直接打印出的成绩单美观,而且还增加了平均成绩、平均学分绩点数和班级排名等功能。

本软件运行稳定可靠,实用价值高,已在新疆师范大学2013届、2014届、2015届所有本科毕业生和2016届毕业生中的2011级学生中使用,四届上万名学生的成绩单全部由本系统生成并打印。难以想像如果没有本软件,打印出的毕业生的成绩单将会是什么模样!本软件的开发和应用为解决学校教务上遇到的困难和问题、提高教务管理的信息化水平发挥了重要的作用,也得到了学校领导和教务管理人员的高度评价。

6 结论(Conclusion)

本文就新舊教务管理系统数据库的兼容性而产生的毕业生成绩单生成问题进行了叙述,并采取了相应对策解决了有关的难题。但是我们也需要明确,在计算机技术与数据库技术应用大发展的时代,数据库安全研究必须全方位、分层次、立体式进行。孤立地、片面地、停滞地思路永远无法解决数据库安全的问题,只有通过不断地改进和完善安全防范手段,才能提高数据的可靠性[8],也才能给用户更好的体验。

参考文献(References)

[1] YueyuXu.Developing a Comprehensive Teaching EvaluationSystem for Foundation Courses with Enhanced Validityand Reliability[J].Educational Technology Research andDevelopment,2012(605):55-58.

[2] LEI Ming.College Teaching Quality Evaluation ModelandImplementation[J].Journal of Shenyang LigongUniversity,2015(01):87-94.

[3] Liu Q.Design and Implementation of Teaching ResourcePlatform under Flash Stream Media On-Demand Mode[C].2015 International Conference on Intelligent Transportation,BigData& Smart City(ICITBS).IEEE ComputerSociety,2015:278-281.

[4] 成伟,黄坚.基于C/S和B/S模式相结合的高校教务管理系统[J].湖南人文科技学院学报,2007(6):42-44.

[5] 卢文昊,姚丹.高校教务管理系统[J].吉林广播电视大学学报,2009(6):89-90.

[6] 王胜利,朱晓平.基于模块化教学的教务管理信息系统重构研究[J].中国教育信息化,2014(23):57-58.

[7] 马致明,等.巧用Excel制作带音效的电脑摇奖程序[J].电脑开发与应用,2011(7):52-54.

[8] 陈松,孔琳俊.教务管理系统数据库安全现状及对策分析[J].软件,2011(5):118-120.

作者简介:

马致明(1964-),男,硕士,教授.研究领域:计算机教育,软件开发.

叶尔肯·加伦木汉(1964-),男,学士,讲师.研究领域:物理、数学教育.

赵 晴(1990-),男,硕士生.研究领域:计算机应用技术.

阿卜杜热伊木·图尔荪(1993-),男,本科生.研究领域:计算机科学与技术.

猜你喜欢
软件
禅宗软件
软件对对碰
谈软件的破解与保护