计算机等级考试上机考试系统中的问题与解决
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机等级考试上机考试系统中的问题与解决
摘要:针对四川省高校计算机等级考试上机考试系统中存在的服务器与客户机的连接方式选择、试卷内容发送、考试计时等主要问题,提出了解决方法。
关键词:上机考试系统;FTP;网络硬盘;TDBJPGImage;计时
四川省高校计算机等级考试上机考试目前采用的是软盘单机考试模式。这种考试模式存在的问题有:考试管理为人工操作,工作量大,易出错,并且与现有的考务数据管理系统脱节;软盘质量和软驱故障常导致考生磁盘存盘和读盘错误;考前需准备大量软盘,更换较多数量软驱,增加了考试的成本和教师的工作量;考生在考场可能相互交换软盘或拷贝软盘带出考场}考生资料记录在软盘上,由此可能带来教师阅卷的不公平。针对以上问题,作者提出了以下解决方法。
1 系统开发要求针对目前四川省高校计算机等级考试上机考试方式不足,用户对新的考试系统要求是:
(1)采用Client/Server工作模式,实现实时控制在线考试和阅卷,试题发送和回收由系统自动完成,实现无纸化操作;(2)具有考试管理和考务数据管理功能,要求两者紧密结合;(3)系统网络负载小,响应速度快,同一服务器下能容纳尽量多的考试客户机,两者之间最好能跨网关进行;(4)计时功能除了能正常计时外,还能处理死机、网络中断等异常情况;(5)试卷形式能适应第四代高级语言的图形界面;此外,用户还提出运行模式、运行流程以及考生客户端软件运行界面应尽量与全国等级考试的考试系统保持一致,以减少管理人员和考生的培训时间等要求。
2 系统开发中的问题与解决
2.1 服务器与客户机的连接方式选择根据需求,本系统除了具有一般信息系统的数据传输功能外,还必须具有试题源程序的发送回收功能。利用Windows或Netware操作系统本身功能构建的网络,虽然能比较容易实现试题源程序的发送回收功能,但这种方式数据处理功能较弱,难以实现系统所需的较强功能的考务数据管理。两种可取的方式是FTP文件传输方式和网络映射硬盘方式。
FTP文件传输方式的工作过程:考试系统首先将试卷内容和试题源程序信息录入位于服务器端的数据库系统中,当考生登录时,系统首先在服务器端建立一个考生目录,然后将抽取试卷信息发送到考生客户端,将抽取的对应的试题源程序传送到该目录,之后利用FTP 文件传输协议将试题源程序发送到考生客户端指定目录中,考生在考生客户端目录中对试题源程序进行操作,新建的程序文件也放在该目录中。当考生交卷或考试结束时,系统将该目录中所有文件回收到服务器端对应的考生目录中。
利用FTP文件传输方式,可以实现实时的在线可控考试和考试管理与考务管理的紧密结合,但也存在较大缺陷(见图1):考生是对客户机中的考试目录进行操作而不是直接对服务器上的考生目录进行操作,因此不管是试题源程序还是考生已完成的试题程序都将在文件网络中传输,再加上试卷内容也需通过网络发送,因此网络流量较大。并且,大量的文件传输均集中于考生登录和考试结束时,容易形成网络堵塞的“雪崩效应”,使系统响应时间大大延迟,甚至造成网络瘫痪。
虽然可以采用“错峰”技术避免“雪崩效应”的产生,但不能从根本上解决FTP方式的网络负载大的问题,并且造成系统的响应时间增长,而且第四代高级语言试题的源程序体积比第三代高级语言试题源程序体积要大很多,更加剧网络负载。因此,FTP方式在同一服务器下能容纳的考试客户机数量有限。在测试中还发现,FTP方式在大数据流量情况下,存在丢包问题。基于以上原因,作者采用映射考生考试目录为网络硬盘的工作方式。
映射网络硬盘方式工作过程:当考生正确登陆后,由系统在服务器硬盘上建立该考生考试目录,然后把该考生的试题源程序复制到该目录,之后设置该目录共享并由考生客户端使用WinAd—dconnection2 API函数把映射为客户端网络硬盘并唯一占用。考生直接对网络硬盘(即服务器硬盘的该考生考试目录)进行操作。当考生交卷或考试结束时,由系统断开连接并取消该目录共享。
映射硬盘的方式克服了FTP方式的缺陷,无论在考生登录、考试终止或考试过程中,除了试卷信息外,网络中只有少量的指令和数据的传输,避免了网络中大量的文件传送,使系统响应速度大大提高(几乎取决于服务器硬盘的速度),单个服务器下的客户机数目得到很大增长。此外,在程序编写时还有意识地较多采用了存储过程等方法,有效减少了网络流量,降低了网络负荷。
2.2 试卷内容的发送除了试题程序文件外,系统在网络中传送的数据主要就是试卷信息。试卷信息采用的格式及发送方式,将直接影响系统响应速度和网络负荷。
这是必须解决好的另一重要问题。
对于FoxBase,TC等第三代面向过程的高级语言,其试题一般使用文本格式。文本格式无论存储到数据库或从数据库中读出,都比
较容易处理。但考虑到VFP、VB、VC等第四代面向对象的高级语言已经并即将成为等级考试的主要考试语种,试题中不可避免将出现图形,故试题不能采用文本格式,而必须采用图片方式。因此,试卷的发送问题就转变为图片信息在系统数据库中的存储和发送的问题。
一个比较简单而直接的方法是将每套试题的试卷做成单独图片文件,在考生登录后抽取试题时和试题源程序一同发送到服务器硬盘上的考生目录中,然后考生客户端程序读取网络硬盘中的该试卷图片文件,并在客户端程序中显示出来。
但一台服务器下可能连接有数量较大的考试客户机,当大量考生同时抽取试题时,可能会造成服务器过于频繁的读取硬盘上的文件,形成抽取试题阻塞。同时这种方式只是简单地进行文件读取而不是从数据库中读取信息,未能利用SQL Server的多线程结构和缓存读取机制,在试卷发送效率上是比较低的,只是相当于在网络中进行简单的文件传输。
实际开发过程中,设计试题的存放和发送方式为:在服务器数据库中建立一个试题表,每套试题占用一个记录,试题以JPEG图片形式存放到对应记录的字段上,客户机以读取记录字段方式读取试题内容。这样方式可利用SQL Server的多线程结构和缓存读取机制,可有效地避免抽取试题阻塞,使考生客户机得到及时响应。
采用JPEG图片格式主要是因其体积远远小于BMP格式的图片,可以有效地减少网络流量。
但具体实现时,存在一个很大的困难:前台开发软件Delphi没有直接从数据库中存放和读取JPEG格式文件的组件,其DBImage控件只能显示BMP图片数据,JPEG 的不能用DBImage。为此,作者编写了一个名为TDBJPGImage的组件实现了该功能。其基本原理是:在JPEG数据存放时,可先将其转换,然后将其存人数据库的Blob字段;读出时,过程相反。下面是TDBJpgImage组建中的change事件的部分代码:proced ure TDBJPEGImage.DoDataChange(Sender:TObject);;beginif not (FDataLink.Field is TBlobField)thenExit;Fld:一FDataLink.Field as TBlobField;:Strm:一TMemoryStream.Create();Jpeg:= TJPEGImage.Create();FLoadingFromDataSet:一True;tryFld.SaveToStream(Strm);Strm.Position:一0;Jpeg.LoadFromStream(Strm);Picture.Assign(Jpeg);finally;end;end;2.3 考试计时利用服务器或客户机时钟进行计时,其特点是简单并且及时准确。但对于考生客户机死机或网络中断等意外情况,系统必须能进行相应的停止计时或延时处理,而计时由服务器或考生客户机单独进行都是不合适的。解决的方法是:考试计时由服务器和客户机协同完成,并且系统能保存实时计时信息。
本系统计时的方法为:在服务器数据库中的studinfo表中设置一个用于记录考生考试时间的字段,属性为整型,初始值为0;在考生客户端加入一个Timer组件,当考生考试时,该组件每隔lmin(根据计时精度要求和网络负载能力可调整间隔),把studinfo表对应记录的时间字段值加1,之后读取该值显示与考生客户端时间显示栏。
如果不能从服务器中读取时间字段值,客户端报断线警告;如果客户端死机,重新登录后以studinfo表时间字段值为起始值重新开始计时。
3 结束语
针对四川省高校计算机等级考试上机考试系统中的问题,开发了四川省计算机等级考试上机考试系统。该系统已投入试用,运行情况良好,并即将替代传统的软盘单机考试方式。本论文网专业从事计算机专业毕业论文业务!如需转载请保留一个链接:发表计算机论文