VBA开发考试系统的方法初探

时间:2015-12-04 09:25 来源:www.fabiaoba.com 作者:王璐烽 点击:

  VBA作为针对应用而设计的程序设计语言,其实用性是其它程序设计语言无法比拟的,而标准化考试(客观题考试)又无须更多人工参与,所以运用ExcelVBA完成考试系统的随机组题和自动评分,简化考试的繁杂步骤,自动完成整个考试过程。

  【关键词】VBA考试系统方法

  现在许多考试客观题占了很大比例,如果人工组题、阅卷劳神费力,效率还低,但如果开发网络在线考试系统,费用高昂,周期长,维护不便,并且要求网络畅通,总之要实现可谓困难重重。那么能不能把教师从繁杂而重复的任务中解放出来,可以,VBA就可以高效、简易地减轻教师负担。

  1再认识EXCEL

  MicrosoftExcel是微软公司的办公软件Microsoftoffice的组件之一,是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。但一般用户只知道它是一个制表软件,并且在处理格式方面远不及Word表格功能强大,稍熟悉的用户对EXCEL函数、计算、数据处理功能往往还是赞不绝口,Excel中大量的公式函数可以应用选择,使用Excel可以执行计算,分析信息并管理电子表格,对数据信息列表进行数据资料图表制作,实现许多方便的功能。

  不仅如此,Excel(包括其它office的组件)还具有程序设计功能,对一般用户来讲,这一点可以称得上鲜为人知,其VBA语言和其他开发语言一样,可以提供强大功能,开发任意类型的信息系统;更专业方面,它还具有数据库功能,可以实现数据库的基本管理。

  2考试系统初步构想

  基本功能:

  (1)老师可随时建立、修改、完善题库,能够随机抽题,保证每个考生每次的题目不雷同,按规定格式组卷,试卷具有防修改功能

  (2)考生只能在指定区域答题,保护区域只能阅读,不能选定,鼠标、光标都不能驻足,答题区域尽量用下拉列表选择,保证数据完整性、有效性。

  (3)考生交卷(自动交卷)后,文档完全锁定,保留提交(卷)标记

  (4)保护评阅试卷密码,老师输入密码后,自动阅卷、评分,并给出评判和参考答案,保留阅卷标记

  (5)已经阅卷的试卷,给出提示。

  (6)定时器功能自动显示考试剩余时间,剩下5分钟进行提示,时间到点,自动交卷,自动保存关闭。

  3定时器的实现

  定时器(Timer)在C#、VB等系统开发语言中是极其普遍的控件,而VBA恰恰没有定时器。但功能可由Application对象的OnTime方法来实现,OnTime安排一个过程在将来的特定时间运行(既可以是具体指定的某个时间,也可以是指定的一段时间之后)。

  3.1两种用法

  (1)特定时间执行某一过程,如Application.OnTimeTimeValue("12:00:00"),"displaytime",就是12点执行displaytime过程。

  (2)特定时间段后执行某一过程,用法为:现在时间+时间段,如:Now+TimeValue("00:00:01"),本质上都特定时间。

  3.2两点说明

  (1)递归调用因为OnTime执行某一过程后不能自动重启,因此执行的过程必须包含重启语句,实现递归调用。

  (2)中止方法既然递归调用,那就不能自动停止,因此必须有条件退出执行过程。

  基于上面两点,现通过具体过程进行说明:

  过程设定D2单元格显示时间,初始化为1小时,倒计时每秒显示,过程框架如下:

  PublicSubdisplaytime()

  Range("D2").Value=Range("D2").Value-TimeValue("00:00:01")

  '在D2里面显示剩余的时间,这个动作每隔一秒会执行一次,因为每隔一秒displaytime就会被调用一次。

  nTime=Now+TimeValue("00:00:01")'设定下一秒时间

  IfRange("D2").Value<>TimeValue("00:00:00")Then'有条件重启和退出过程

  Application.OnTimenTime,"ThisWorkbook.displaytime",,True

  Else

  '完成自动提交后的工作,如:设定状态:已提交;显示考试日期、开始时间、结束时间、用时多少、删除提交按钮、锁定文档、保存文档等

  Response=MsgBox("请按“考号+姓名”方式给文件改名,并上传给老师……",0,"提示")

  Application.Quit'退出Excel

  EndIf

  EndSub

  必须说明,displaytime是ThisWorkbook对象的通用过程,不能自动启动,通过ThisWorkbook的Workbook_Open()启动,因此Open()必须有包含displaytime启动语句。

  PrivateSubWorkbook_Open()

  '其它语句、功能……

  displaytime'首次启动

  EndSub

  参考文献

  [1]李政.VBA应用基础与实例教程[M].北京:国防工业出版社,2009:313-315.

  [2]丁士锋.ExcelVBA标准教程[M].北京:化学工业出版社,2010.

 

www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
  本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/ CSSCI核心/医学投稿辅导/职称投稿辅导。

投稿邮箱:fabiaoba365@126.com
 在线咨询: 投稿辅导275774677投稿辅导1003180928
 在线咨询: 投稿辅导610071587投稿辅导1003160816
 联系电话:18796993035

联系方式
李老师QQ:发表吧客服610071587 陈老师QQ:发表吧客服275774677 刘老师QQ:发表吧客服1003160816 张老师QQ:发表吧客服1003180928 联系电话:18796993035 投稿邮箱:fabiaoba365@126.com
期刊鉴别
  • 刊物名称:
  • 检索网站:
热门期刊
发表吧友情提醒

近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。

此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。

如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。

 
QQ在线咨询
论文刊登热线:
137-7525-9981
微信号咨询:
fabiaoba-com

友情链接

申请链接