Office网络考试系统的研究

2013-04-18 02:38:12朱克武
计算机与现代化 2013年3期
关键词:文件夹客户端服务器

朱克武

(广东食品药品职业学院,广东 广州 510520)

0 引言

目前,Office办公软件考试系统非常成熟,都实现了联网考试,由一台服务器和若干台客户机组成,一般一个服务器可以带200个客户端。例如:广东省考试中心的计算机水平一级考试系统、无忧公司制作的Office办公软件考试系统、广东省劳动厅的计算机水平考试系统等。

这些网络考试系统都由服务器和客户端两部分组成,需要在一台教师机上安装服务器程序,并配置服务器的相关参数,如HTTP服务器的IP地址和端口、FTP服务器的IP地址和端口等。学生机不需要安装客户端程序,学生可直接在客户端使用IE浏览器登录。

学生登录服务器后,由服务器分发考生的试卷。在考试过程中,服务器及时接收学生机上传的数据;如果学生机掉线,服务器能够及时了解是哪个客户端掉线;如果学生机死机重新启动,再次登录服务器后,服务器会回传该学生所做的内容,文件不会丢失。在考试过程中,系统自动计时,考试时间到服务器会自动停止考生的操作,即客户端停止答题。在学生关闭Word、Excel等应用程序后,客户端自动上传数据,上传完成后,会自动删除客户端的考生文件夹,不会留下相关的考试信息。

本网络考试系统借鉴了这些优秀的考试系统,设计相关的界面、对应的功能。系统采用Visual Studio 2005、Access等编程软件进行设计。

1 网络考试系统的方案讨论

上述3种办公软件网络考试系统中,考生在客户端使用IE浏览器登录服务器,登录成功后,从服务器端下载考试数据到客户端。下载完成后,自动启动考试程序,显示考试的题目。在考试过程中,每隔一段时间上传考试数据到服务器,考试结束后,上传数据,并删除考试信息。

1.1 服务器系统的方案

在服务器端的ASP NET网页中,可以调用服务器组件来实现相关的功能,服务器组件具有集合、属性和方法,创建一个服务器组件对象,通过该对象可以访问组件中的集合、属性和方法。

服务器端与数据库的连接,服务器最基本的功能是连接数据库,实现数据库中数据的添加、修改、删除、浏览、查找等基本功能。

服务器端要实现文件管理功能,可以使用文件系统对象或FileInfo对象。文件系统对象(FileSystemObject)位于Scripting类型库中,在安装Windows系统时,系统会自动在WindowsSystem32目录中生成scrrun.dll文件。在该文件中,引用Scripting类型库,可以声明一个文件系统对象的类型。创建一个文件系统对象,通过该对象,可以获得驱动器的信息、创建文件或文件夹等有关文件和文件夹的各项操作。在一个网页界面中,通过调用文件系统对象,就可以完成对文件或文件夹的操作。用户在客户端就可以对服务器上的文件或文件夹进行操作,非常方便用户管理服务器。这里不存在服务器安全的问题,因为只有服务器管理员才拥有修改服务器文件或文件夹的权限,其他用户没有这种权限。

服务器端要实现下载的功能,是通过内置对象Response的AddHeader方法设置HTTP标头名称和值实现的。具体实现的方法是,先添加HTTP标头信息,再写入文件内容。Response.AddHeader(“Content-Disposition”,”attachment;filename= ” +file.name),其中,第一个参数是设置的HTTP标头的名称,第二个参数是标头的值。Response.WriteFile(file.FullName),将指定文件的内容发往客户端,实现文件的下载。

1.2 客户端系统的方案

在客户端首先需要实现文件管理功能,如果没有考试目录,需要创建一个考试目录。安装Windows系统时,同样要有scrrun.dll文件,使用IE浏览器上网,可以浏览服务器上提供的各种信息,如果服务器提供了上传和下载功能,客户端可以向服务器上传数据,也可以从服务器下载数据到客户端。例如:浏览新浪的网站,只能浏览网站提供的各种信息,但是没有权限删除某个页面文件,也不能删除网页中的某个图片,即普通用户只有读的权限,没有修改、删除的权限。而网站的管理员则拥有修改、删除的权限,可以对服务器上指定的文件进行各种操作。但是,服务器不能对客户端上的文件或文件夹进行修改,否则上网的用户,他的电脑上的所有个人信息就全部暴露在服务器的面前,没有安全可言。在一个页面中,不能像服务器端那样,创建文件系统对象,虽然存在scrrun.dll这个文件,但是不能调用,这就是出于客户端安全性的考虑。因此服务器不能对客户端的文件或文件夹进行任何管理,没有这样的权限。然而计算机病毒的传播就是利用Windows系统的漏洞,达到对客户端控制的目的。

由于IE浏览器的限制,人们可以上网浏览服务器上提供的信息,而服务器不能对客户端的文件进行任何操作。通过编程,有多种方法可以实现服务器对客户端的文件进行管理。方法一是编写一个ActiveX控件,在控件中实现对文件的各种操作、文件读取、上传等功能,然后在页面中,通过JavaScript脚本调用该控件,实现对客户端的管理。方法二是利用msadco.dll的漏洞进行处理,首先创建一个对象,obj=document.CreateElement(“object”),设置对象的属性为msadco.dll的 classid,obj.SetAttribute(“classid”,ID的数值),obj对象相当于服务器的内置对象Server,使用它能够创建各种组件对象。obj.CreateObject(“Microsoft.XMLHTTP”,””),创建一个 xmlhttp 对象,可以从服务器上下载文件,obj.CreateObject(“ADODB.Stream”,””),实现文件的读写操作,obj.CreateObject(“Scripting.FileSystemObject”,””),该对象可以对文件进行管理,即创建文件或文件夹、设置属性、删除、更名等有关文件管理的操作,它都能够实现,功能非常强大。通过这3个对象的使用,基本上就能够满足网络考试系统客户端的要求。

客户端的文件上传,一般可以使用文件上传控件。但是该控件需要指定具体的文件,单击上传按钮,才能触发文件的上传,即文件上传时需要用户参与,而考试时文件的上传不需要考生参与,考生只负责做题目,不可能让考生每做完一道题目就上传一次。因此,使用文件上传控件的方法不可行。

在实际使用过程中,第一种方法编程的难度有些大,第二种方法会被杀毒软件查杀,而且Windows系统已经修复这些漏洞,因此不太容易实现。

服务器端由于可以使用Server对象,能够满足网络考试服务器系统的要求,但是客户端不能创建有关文件系统对象、数据流对象,因此无法实现文件的操作,无法实现网络考试客户端的要求。

因此,本办公软件网络考试系统采用C/S结构,服务器处于不断侦听和接收状态,每接收一个客户端,就分配一个Socket与客户端关联,通信双方使用Socket进行联系。

2 服务器端的设计

服务器端的设计包括用户登录、题库分发、考生信息显示、接收上传数据等部分。重点是服务器上的数据下载到客户端,客户端的数据上传到服务器。

首先,客户端的程序必须具有文件操作的功能,因为在考试之前,客户端并不存在考生这个文件夹,需要创建这个文件夹,然后才能把服务器上的数据下载下来。第二,一个文件要上传,必须有该文件的完整路径,否则读取文件失败。第三,考试系统的界面必须一直在最前面,需要调用API函数。

2.1 考生名单的导入

数据库采用Access,因为办公软件考试系统涉及的内容不是很多,主要有考生信息、客户端信息、考试题目信息等,属于一个小型数据库,所以使用Access完全能够满足网络考试系统的要求。

并不是每个教师都了解和会使用Access应用程序,而Excel应用程序是很多教师都会使用的。因此为方便教师的使用,在系统中需要设计一个功能,将含有考生信息的Excel文件转换为Access数据库中的一个考生信息表。方法是创建一个考试信息表,一般4个字段:班级、学号、姓名、考试科目。然后读取Excel表中的内容,该表中的字段与信息表中的字段名称要一致,否则无法读取,字段的顺序可以不同。将读取的每一行数据写到信息表中,循环读取,直到最后一条记录。

2.2 考生登录

首先读取客户端传来的“学号”数据,然后读取考试信息表,判断是否有该学号,有则回传登录成功信息;无,则该学号不正确或没有该学号,回传登录不成功的信息。这时在客户端,考生需重新登录,或由教师在服务器上添加该考生的相关信息。考生登录不成功,服务器不会将考试的相关信息下载到客户端,该考生无法参加考试。

2.3 题库的组合

教师必须事先准备好题目,题目由6个部分组成,分别是:理论题、Windows操作题、Word操作题、Excel操作题、PowerPoint操作题和网络操作题。操作题一般是根据知识点进行设计,例如Word操作题就包含字体、段落、项目符号、分栏等近30个知识点,Word的字体主要有:字体、字形、字号、字体颜色等。要考Word的字体这个知识点,可以出一道字体的题目,也可以出多套字体的题目。如果只有一道字体的题目,则在所有考生的试题中,都包含该道题目;如果有多套字体的题目,则通过一些算法,使这几套题目均分到考生的试题中,要求相邻的两个考生题目不同,目的是防止考生考试作弊。

2.4 题库的分发

考生登录成功后,服务器向该客户端发送考题,即下载考题资料到客户端。考题资料分为两个部分:(1)考试的素材,即:Windows文件夹、Word文件、Excel文件、PowerPoint文件、网络题的文件,要有具体的素材,否则考试无法操作;(2)题目的内容,它存在一个Access文件中,客户端使用数据库系统,通过读取mdb文件中的内容,在客户端界面上显示题目。

2.5 考生信息的显示

在考试过程中,要能够及时反映考生的考试状态,即是否保持网络的连接、是否断线,断线的时间是多少等,让教师能够及时掌握考试的情况。每隔三分钟向服务器发送一次信息,收到该信息表示连接正常,没有收到表示断线,记录断线的时间,在服务器的界面上显示出来,提醒教师对断线的机器进行处理,重新打开IE浏览器、重启系统、或更换到另一台机器等,目的是解决网络不通的问题。

2.6 接收考生上传的数据

考生上传的数据是放在服务器端的数据库中,不能上传文件,因为每上传一个文件,就需要把原来的文件删除或覆盖,服务器将不断地处理这些文件,影响了服务器的工作效率,因此改用数据库处理就非常方便。一个文件对应一个字段,该字段使用备注类型,长度为65536个字符,一般Word等考试文件的长度不超过40k,使用一个字段就能够满足存储一个文件的要求。

在接收考生上传的数据中,首先要说明是哪个考生,上传的是哪个文件,然后接收该考生的文件内容,查找数据表中该考生的信息,将收到的数据替换原有的数据,实现数据的更新。

如果要简化网络考试系统,数据上传的操作可以省略。在客户端设置考试的时间,时间到考试结束,压缩考生文件夹,上传压缩文件,该压缩文件就是最终考试的结果。上传数据的目的就是考生换机后,服务器将考生的考试信息下载到他所在的机器上。电脑死机时,如果文件保存的话,文件就不会丢失,重新启动后,考生文件夹下的内容是不变的,因此如果不考虑学生换机这个因素,上传数据这步可以省略。

2.7 考试结束

考试结束,接收所有考生的文件,修改考生考试的状态,由“考试中”状态更改为“考试结束”。客户端系统退出,停止运行,而服务器端的考试系统还处于运行状态,客户端再次登录时,服务器还会接收登录信息,判断该考生是“未登录”、“考试中”、“考试结束”,根据数据库中考生信息的状态进行分析,对客户端作出相应的回应。

3 客户端的设计

客户端的设计包括考试计时、考试界面、数据上传等操作。首先,考生登录界面,输入学号,单击“提交”按钮,将考生信息上传到服务器。其次,考试系统运行时,在考试界面上,显示考试的时间,使用到计时的方式,一分钟计时一次。

3.1 客户端的界面设计

客户端的界面分两种情况设计,考理论题时是一个满窗口的界面;考操作题时,界面是固定大小的,占整个窗口的六分之一或更小,一般只显示一道题目的内容,目的是考试界面不要影响考生对文件的操作。

客户端的界面要一直处于最前面,没有最小化、最大化,调用API函数SetWindowPos,可以实现这个功能。

3.2 数据的上传

客户端每3分钟上传一次数据,这个时间并不是固定的,可以人为作出调整。时间不能太短,否则客户端会不断上传数据;时间也不能太长,如果客户端出现断线、死机等情况,上传的数据就不及时,即客户端的数据和服务器中的数据没有保持一致,即考生做的内容没有及时上传,会导致数据丢失。

客户端数据的上传有两种方式,一种是以文件的形式保存,一种是以数据库的形式保存。这两种形式都需要,只是用在不同场合。

客户端和服务器都需要对文件进行管理,如创建文件或文件夹、查看文件或文件夹的属性等各项操作。

每次上传时,并不是把所有的内容都上传,因为有的题目没有做,它的内容没有改变,上传没有意义;有的题目做了,内容上传了,但是在上传之后的一段时间内,没有对它进行任何操作,此时文件的内容与数据库中的内容是一致的,再上传也没有意义。如果文件的内容与数据库的内容没有变化,就不需要修改,因此要对上传的文件进行判断,即该文件是否发生变化,如何判断文件是否发生变化,可以根据该文件的最后一次修改时间来判断。

操作题做完必须关闭,因为一个文件在使用时,另一个进程是无法打开该文件,并对该文件进行读取、写入、更名等操作。因此,必须等该文件被关闭,才可以对它进行操作。

Windows操作题主要是判断文件或文件夹的创建、删除、移动、复制、更名、创建快捷方式、属性7个内容。文件的创建可以是任意文件类型,如文本文件、压缩文件等。一般都会考学生文本文件的创建,并打开该文本文件,在里面输入一段文字,并保存退出。因此,需要一个字段保存有关文本文件的内容。

Windows操作题上传的内容,根据要考核学生掌握的知识点,一般情况下,需要以下内容:文件或文件夹的名称、属性。因为创建、删除、移动、复制、更名、创建快捷方式都涉及文件或文件夹的名称,根据名称就可以判断是否进行相关的操作,例如要创建一个文件,有了该文件,并且路径正确,则该题操作正确;如果没有该文件,则该题操作错误,其它的知识点操作类似。属性涉及只读、文档、隐藏等内容,根据属性的内容,就可以判断属性知识点的操作。

在设计题目时,文件夹的深度一般不超过5层,当然也可以有多层,只是增加了程序的复杂性。一个文件夹含有多级子文件夹,目的是考核学生掌握搜索这个知识点的程度。掌握Windows的搜索操作,要很容易找到指定的文件或文件夹,不管它在哪个位置。文件夹超过五层也没有太多的意义,因此,在设计题目的时候,假定文件夹的最大深度为五层。

根据上述分析,Windows操作题上传的内容的组成包含:上一级文件夹的序号、本级文件夹的序号、本级或文件夹的名称、文件还是文件夹、属性。使用文件系统对象,递归的方式读取Windows操作题上的每一个文件和文件夹,将读取的每一项内容存放到数组或指针中,递归结束后,将该内容上传。

Word操作题、Excel操作题、PowerPoint操作题的操作类似。以 Word操作题为例,首先,需要判断Word应用程序是否在使用该题,如果Word里面有这道题目,说明该文件正在被Word操作,不能对该文件再次打开,也就是不能上传该文件。如何判断该文件是否被Word打开,可通过API函数FindWindow来判断Word是否在运行,如果在运行,读取Word的标题,因为标题就是文件名,即可判断文件是否在使用。

读取指定的文件到一个字符数组中,上传数组中的内容到服务器,服务器接收数据,将数据存入数据库。上传的文件就不压缩了,压缩以后还需要再解压,增加了系统的复杂性,当然,也可以先压缩该文件,再上传,文件的大小肯定会减少很多,减轻了服务器的负担,也减少了数据库存储字段的容量。

网络操作题一般是把网页文件另存为文本文件、把网页文件中的图片另存、申请一个邮箱、使用Outlook Express发送一封邮件等。文本文件、图片文件是一个文件,与Word的操作类似,上传该文件靠数据库即可。邮箱需要上传各个字段中的内容,例如:上传姓名、密码、确认密码等字段的内容,注意各个字段之间的分隔,不能不加区分地把所有字段的内容放在一起。Outlook Express发送邮件,需要配置邮箱服务器,本系统没有实现邮箱服务器的功能,需要考生保存要发送的邮件,扩展名为eml,读取该文件,可以获取收件人、主题、正文等信息,而这些信息正是考核的要求,因此使用保存邮件的方法,实现对邮件的考核。

3.3 考试结束

考生单击“交卷”按钮,表示考试结束;或考试的时间到,考试结束。首先,需要把Word等应用程序关闭,如果没有关闭,表示某个文件还在继续使用,WinRAR程序在压缩这个文件时,会提示压缩失败,导致整个考生文件夹压缩的失败。其次,压缩整个考生文件夹,生成一个rar压缩文件,不是一个一个文件上传,而是压缩后的一个文件。读取该文件,将它上传到服务器,修改考生的考试状态。第三,删除考生文件夹,包括该文件夹下的所有文件和子文件夹,避免考试信息泄漏。

学生再用学号登录时,服务器根据考试状态,判断该考试是否考试结束,如果考试结束,则在客户端的界面上提示考试结束。

4 结束语

办公软件网络考试系统是一个非常复杂的系统,涉及的内容比较多,有文件管理、SQL数据库知识、Excel的应用、Socket套接字、WinRAR压缩和解压、进程和线程的管理等多方面的知识,重点和难点是网络通信,即Socket套接字的使用,如果没有套接字,也就不称为网络考试系统了,是一个单机版的系统。本系统还需要解决侦听数目的问题,一般是10个,如果同时有20个客户端要求连接,则只有排在前面的10个给处理,出现客户端连接慢的现象。本系统还需要解决连接客户端个数的问题,由于没有采用线程池技术,最多可以连接64个客户端。总之,网络考试系统需要考虑的问题非常多,本系统主要是解决上传和下载的问题,基本上实现了网络考试的功能,达到了预期的设计目标,在系统运行的过程中,还会出现各种各样的问题,需要不断地完善。

[1]杜少杰.基于形式语言的Word操作题自动阅卷方案及其实现[J].唐山师范学院学报,2006,28(2):78-79.

[2]李爱玲.基于VBA的Word文档自动评阅技术研究[J].科学技术与工程,2008,8(17):83-85.

[3]周建良.基于WinPcap库的通用程序设计模型[J].计算机系统应用,2007,11(2):83-85.

[4]朱耀强.Word操作题自动阅卷功能的实现[J].宁波职业技术学院学报,2007,11(2):811-812.

[5]刘中宇,黄福君,等.PowerPoint操作测试自动评价技术研究[J].计算机技术与发展,2009,19(2):237-239.

[6]吴丰科,苏厚勤,朱汉群.Excel对象模型在统计报表中的应用研究[J].计算机应用与软件,2009,26(2):201-204.

[7]吴亚坤,郭海旭.Office文档自动评分的研究与实现[J].辽宁大学学报,2008,35(4):334-337.

[8]李文江.利用VBA实现对Word文档的自动评分[J].重庆文理学院学报,2007,26(2):73-77.

[9]赵晓峰,肖丹.基于XML与ACTIVEX技术的Office操作自动评分系统[J].计算机与数字工程,2006,34(12):178-180.

[10]李菲.考试系统中Excel操作题自动阅卷的实现[J].辽宁师专学报,2009,11(1):46,97.

[11]邵小兵,廖慧芬.Office实践操作自动评分的实现[J].计算机与现代化,2005(12):135-136.

[12]邓振杰,李瑛.Visual Basic程序设计实用教程[M].北京:中国铁道出版社,2010.

[13]周晓宏.Visual Basic 6.0程序设计实用教程[M].北京:高等教育出版社,2007.

[14]孙俏.Visual Basic 6.0程序设计[M].北京:中国铁道出版社,2011.

[15]刘炳文.Visual Basic程序设计教程[M].北京:清华大学出版社,2005.

猜你喜欢
文件夹客户端服务器
磁力文件夹
通信控制服务器(CCS)维护终端的设计与实现
县级台在突发事件报道中如何应用手机客户端
传媒评论(2018年4期)2018-06-27 08:20:24
孵化垂直频道:新闻客户端新策略
传媒评论(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客户端的设计与实现
电子测试(2018年10期)2018-06-26 05:53:34
调动右键 解决文件夹管理三大难题
得形忘意的服务器标准
知识产权(2016年8期)2016-12-01 07:01:13
计算机网络安全服务器入侵与防御
TC一键直达常用文件夹
电脑迷(2015年1期)2015-04-29 21:24:13
客户端空间数据缓存策略