基于VB的通用型成绩自动录入软件的研究及实践

2020-09-27 23:02肖冬焱蒋智钢
电脑知识与技术 2020年23期

肖冬焱 蒋智钢

摘要:随着校园信息化建设进度的加快,课程考试结束后将学生的考试成绩录入教务管理系统已经成为各大院校的标准操作。常规的手工录入成绩的方法已经不能满足大家对工作质量和效率的要求。为了在保证成绩录入正确率的同时,提高工作效率,减轻教师的工作量,本文在教师需求调研以及对学校教务管理系统成绩录入模块功能分析的基础上,编写了通用型成绩自动录入程序,该程序操作简单、运行稳定,可适用于多种数据录入环境,具有很高的推广性。

关键词:成绩管理;自动录入;VB

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

文章编号:1009-3044(2020)23-0004-03

Abstract: With the rapid development of campus information construction, it has become a standard operation for colleges and universities to input students' examination results in the educational administration management system after the course examination. The traditional method of manually entering grades can not meet the requirements of work quality and efficiency. To ensure the accuracy of score entry, reduce the workload of teachers and improve the work efficiency of score upload, a general-purpose automatic score entry program was developed based on the investigation of teachers' needs and the analysis of the function of score entry module of school educational administration management system. The program was easy to use, stable to operate, applicable to a variety of data entry environments, and popularized highly.

Key words: score management; automatic typing; VB

时至今日,校园网已经日益普及,许多学校的日常教学管理工作也基本上都转变成了网上办公,如学生课程表的安排、教师授课计划任务的下发、网上考试的实行、考试成绩的管理等,这些改变大大地减少了传统教学管理中的一些中间环节,提高了管理部门的工作效率;但与此同时也给不同专业的教师带来了新的挑战和急需解决的困难。按教务处要求,教师须在考试结束后一周内完成改卷及成绩上传工作,要在较短的时间内完成试卷的批改、平时成绩的统计、期末考试成绩的汇总及上传,并且还要保证成绩的正确性,这些都给教师造成了很大的压力。在过去,期末考试结束以后,教师只需要把学生的考卷批改完毕,然后将考试成绩登入记分册后交到教务处即可。由于不少高校的成绩管理系統尚不完善[1-2],现在虽已改为网络办公,但出于某种考虑,教师依旧得先完成纸质版成绩册的填写,然后再将其录入校园网的教务系统中去,这无形中使得教师工作量翻倍,在这个过程中,成绩输入错位、漏输以及成绩审核烦琐等情况时有发生。这种成绩处理方式不但工作量巨大而且效率低下,导致学生成绩管理工作也变得烦琐困难。因此,有必要开发一个辅助教师高效完成成绩录入的小程序,除了能降低成绩录入出错的概率外,还应大大减少该工作的劳动量,提高工作效率,有利于保证教务管理部门能够按计划按时完成相关工作。

1 系统功能需求分析

开发本系统的目的是解决教师录入成绩过程中存在的3个问题:1)成绩录入速度慢;2)成绩录入容易发生输错位置或输错等情况;3)成绩录入完成后复核工作的烦琐。由于网上成绩录入系统的表格中字体较小,教师录入一段时间后极易出现眼花的情况。因此,哪怕只是复核录入完毕的成绩也不轻松。

软件的预期目标是:1)快速完成上百乃至上千人成绩的自动录入;2)保证近乎0的录入出错率;3)免除成绩复核的工序;4)方便易用,不受制于网络成绩录入系统中网页元素的限制;5)除了成绩录入还可满足其他类似数据的录入需要。

据此,规划设计系统功能时需满足:1)使用简单,教师无须花费时间学习,看见软件就会使用;2)设计为通用型数据录入工具,而不是针对特定网页元素使用[3];3)开发成用户接受的绿色便携版。

2 程序设计思路

成绩录入界面的分析。我校教务系统中学生成绩管理模块部分仅涉及学生总成绩一个项目,即对于每个学生只需要教师录入该生的一个分数就可以了;录入完一个学生的成绩后,要转到下一个学生继续录入时只能按键盘上的“↓”或者直接使用鼠标点击进行定位,该录入系统不支持Enter键。此外,由于成绩上传页面中使用了多个框架页面,而且,因系统设置的原因,一个教师执教的多个班级的学生名单会同时出现在一个成绩表格中,这就意味着该表格有时会长达数百行,于是该框架页的右侧亦会常常显示一个垂直滚动条,这种复杂的页面结构使得打算利用网页元素[4]的定位属性(如ID、Name、Index等)来实现自动输入的设想难度过大,加之不同学校使用的教务系统采用的网页框架也可能存在这样或者那样的差别,这将会造成根据某一特定学校的成绩录入系统的网页特性编写的软件在其他地方无法使用,有悖于开发通用性软件的初衷。有鉴于此,本程序拟利用Visual Basic能够模拟人对键盘操作的特性来实现自动输入成绩的功能,这样就可以直接忽略目标系统的网页界面布局及其所使用的网页元素的限制,既不必对成绩录入网页的元素进行分析就能实现输入,亦可适用于更多需要实现自动输入数据的情况。

教师管理成绩的实际情况(包括教师个人习惯)分析。通过调查走访以及结合自身的实际情况,对教师处理学生成绩的具体步骤进行了详细分析,结果发现,自开学伊始,学校教务系统会向教师下发本学期的教学任务,教师可以从系统中下载其教学任务涉及班级的学生名册(Excel格式)。在随后的教学过程中,教师会依据学生名册对同学的上课情况、平时考核情况以及期末考试等逐一进行记录,并在学期末时将纸质版记录上交教务处存档,同时,还需将相关成绩录入到网上的教务系统中去。在调查中,我们发现大家的使用习惯是,几乎所有教师都会在教学过程中将与学生相关的各种信息如考勤情况、平时成绩、期中测验分数等信息记入Excel文件中,以便期末考试完毕录入试卷成绩后可以直接获得课程总成绩。另外,注意到教师平时记载学生成绩信息的Excel文件中学生名字的顺序与上传成绩时的学生名字顺序是一一对应的这一特点,这意味着,只要期末考试的试卷成绩一输入该Excel后,即可得到与成绩上传表格中学生顺序完全一致的数据源,这为实现成绩的高效录入奠定了基础。

换行方式的自定义。由于考虑到软件的通用性,即不仅要满足我校教务系统中成绩上传的特点,还要满足其他需要自动录入数据的情况,故本程序被设计成采用Sendkeys对键盘操作进行模拟,也就摆脱了本校系统只能使用箭头按键切换的限制,同时还可以将使用Enter键切换的情况也一并考虑进去,使得程序的通用性更好。从程序功能方面来说,只需在软件界面上增加一个选择换行方式的按钮,即可实现对于一个数据录入完毕后如何切换到下一个数据输入位置的自定义切换功能,使用者可以根据其所处的具体成绩登录系统环境中使用的换行键自行选择设置,本程序默认采用Enter(回车键)实现换行功能。

开发工具的选择。选择Microsoft公司的Visual Basic 6.0是因为其与Windows系列操作系统都是同一家公司出品,在兼容性方面具有良好的表现。借助CommonDialog控件的灵活性,可以很轻松地导入成绩的数据源。程序界面将遵循简洁原则进行规划,直接在界面上提供“第一步”“第二步”等简要的使用说明,以确保使用者即使是初次使用该程序也可无障碍使用。

软件运行环境的要求。硬件要求:对电脑硬件配置无特殊要求,目前学校办公室里的电脑均可正常运行。系统要求:全面兼容Windows系列操作系统,WinXP、Win7等均可正常使用,但需注意的是,由于安全性的问题,Win7及以上系统需“以管理员身份运行”才不会出现未知错误。

3 主要功能的代码实现

3.1 换行功能的自定义

本程序默认换行方式为Enter键,因此在进入程序界面时即先行设定“回车键”单选按钮处于选中状态。具体代码如下:

Private Sub Form_Load()

Option1.Value = True设定“回车键”已被选中

End Sub

若老师使用的成绩上传系统是使用“↑”或“↓”来切换数据输入位置的,那么,需要在开始执行自动录入成绩前再次确认换行方式的种类,以便保证程序能够正常运行。相关代码如下:

If Option1.Value = True Then如果换行方式为Enter键

SendKeys "{ENTER}", True

Else如果换行方式为“↓”键

SendKeys "{DOWN}", True

End If

3.2 数据文件选择功能

为了使程序具有更好的操作体验,故没有指定使用者必须将成绩以固定的文件名进行保存,而是以CommonDialog控件提供文件选择功能,允许用户可以操作程序打开其保存在电脑上任意位置的数据文件。代码如下:

CommonDialog1.Filter = "All Files (*.*)|*.*|CSV Files(*.csv)|*.csv"

' 指定缺省的过滤器

CommonDialog1.FilterIndex = 2

' 显示“打开”对话框

CommonDialog1.ShowOpen

' 显示选定文件的名字

strf = CommonDialog1.FileName将获取的数据文件名赋值给变量strf

3.3 数据录入功能

在获得行数和列数的具体数值后,使用For…Next语句完成数据的输入,并在全部数据录入结束后弹出对话框对用户给予提示。

For i = 1 To xs ‘学生人数即行数

For j = 1 To ts ‘考题数目即列數

KSCJ = cj(i, j)

SendKeys KSCJ, True

Sleep 500执行下一操作前等待500毫秒

If Option1.Value = True Then

SendKeys “{ENTER}”, True

Else

SendKeys “{DOWN}”, True

End If

Sleep 500

Next

Next

Sleep 1000执行下一操作前等待1000毫秒

MsgBox “成绩全部录入完毕!”, vbSystemModal, “温馨提示”

4 软件的实际运用

运行程序后,软件界面如图所示(图1),界面第一行是关于“第一步”的文字说明,界面中间提供了一个图示,简要地介绍了成绩录入界面的情况,以行数表示需要录入成绩的同学数,以列数代表一个同学有几项成绩需要录入,可以是一份试卷中的每个题目的分数,也可以是平时成绩、实验成绩、期末成绩等,具体可由授课教师根据自己的实际情况自行设置。例如,只需要录入一个总成绩,那么在程序界面的“考题数目”处输入“1”就好,因为一个成绩对应一列,至于“学生人数”那里就是有多少人的成绩就输入多少。

另外,如果教师在教务系统中录入完一个成绩后,是通过按Enter(回车键)切换到下一位同学,那么,在“换行方式”那里就不必设置了;如果是需要按键盘上的“↑↓←→”来切换的话,那么就需要把“换行方式”区域中的“下箭头”选中就可以实现相应的功能。基本设置完成后,点击“开始”按钮,会弹出一个打开文件的对话框,使用者只需到自己保存之前成绩的文件夹里面找到成绩文件即可,本程序默认支持CSV格式,其支持Excel编辑且体积更小,以相同的1000个数据为例,若保存为Excel格式,体积为47.5KB,而CSV格式只需4.77KB,二者相差约10倍。程序读入数据完毕后会弹出提示“数据文件读取完毕,请在5秒内将光标切换到成绩上传系统的起始输入单元格中”,点击“确定”按钮后,教师只需迅速把光标放到成绩录入的地方,然后静待程序自动完成成绩的录入,待成绩全部输入结束后,会弹出对话框提示“成绩全部录入完毕!”,此时,若无须继续录入,老师点击“退出”按钮关闭程序即可(图2)。

经实际应用测试,本程序录入100个分数仅需102秒,约平均每秒输入1个分数,且出错率为0。本软件自身体积小巧,采用ASPack V2.12压缩打包后体积仅26.5 KB。此外,由于Visual Basic与Windows系统均为同一家公司开发,所以,该程序支持在Windows 系统中直接拷贝使用,相当方便。

参考文献:

[1] 张妮妮. 高校成绩管理工作的问题及对策[J]. 知识窗(教师版), 2019(11): 105.

[2] 于雯, 李辉. 高等医学院校学生成绩管理存在的问题、原因与对策[J]. 当代教育实践与教学研究, 2019(21): 82-83.

[3] 张金沙, 金笛, 石劭红. 基于VBA成绩自动上传系统的开发[J]. 电脑知识与技术, 2016, 12(32): 80-82.

[4] 李光飞, 王德东, 楼然苗. 教务成绩辅助录入系统的设计与实现[J]. 电脑知识与技术, 2015, 11(32): 60-61, 68.

【通联编辑:谢媛媛】