技能测试抽签系统的设计与实现

时间:2022-03-28 08:52:46

【摘要】目前有一些单机版的抽签系统和基于C/S架构的网络版抽签系统,但这些系统都需要进行程序安装,会增加额外的工作和问题。如果使用B/S架构将可以解决这个问题,例如参考文献[1]中使用A...

技能测试抽签系统的设计与实现

摘要:技能测试已成为大学教育中的一个重要环节,如何科学合理地安排测试,确保达到良好的测试目的是组织技能测试的重要内容。设计与实现技能测试抽签系统,可以更好地辅助完成这项工作的开展。系统的设计选择简洁的B/S架构,抽签效果使用JavaScript代码实现,数据交换使用AJAX方式实现。

关键词:抽签系统;技能测试;;JavaScript;AJAX

中图分类号:G847.73 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02

一、引言

现代大学教育设置了许多技能培训课程,培训结束时需要检测学生的学习情况,就会组织技能测试,例如大学物理实验技能测试、课件制作技能测试等。其中当组织实验操作考试时,需要让学生自主抽签并进行随机化的分配,使实验的分配既满足学生做过该实验并且该实验设备可被分配而且可用,实现实验操作考试安排的合理分配而不冲突。而在课件制作技能测试时,除了选题抽签,还有学生提交作品的操作,因此需要一个综合性的技能测试系统来辅助测试工作。

目前有一些单机版的抽签系统和基于C/S架构的网络版抽签系统,但这些系统都需要进行程序安装,会增加额外的工作和问题。如果使用B/S架构将可以解决这个问题,例如参考文献[1]中使用ASP技术实现对实验测试的抽签功能,但是其是主要针对实验技能测试进行设计的,并不具有广泛的适应性。

二、技能测试抽签系统的设计

(一)系统结构的总体设计

系统的实现采用适用于小型网站的四层结构(数据访问层、事务处理层、角色层和应用层),其中数据访问层负责数据库和服务器文件的访问和管理,事务处理层是位于数据访问层之上针对用户事务进行抽象实现的中间层,角色层是将事务针对对象进行封装,使其为上层应用提供更直观的接口,应用层是最上面直接面对用户的网页和运行代码。

(二)系统功能设计

根据总体设计的原则,系统使用对象主要是教师和学生两个对象,教师对象主要拥有学生管理和测试管理两个功能,学生对象主要拥有抽签和作品提交两个功能,系统功能模型如图1:

三、技能测试随机选题系统的实现

(一)开发平台和运行环境

系统开发使用基于Windows平台的.Net Framework 4.0环境下开发工具Visual Studio 2010开发系统,该开发系统拥有大量的实用控件和调试平台,可以快速方便地设计制作系统界面和进行调试工作。开发语言使用流行的C#语言,进行环境是Windows XP系统,并装有Office 2003应用软件。

(二)主要功能的实现

1.EXCEL文件的访问

使用专业数据库适用于专业化的数据管理,该系统中数据管理功能需要比较薄弱,且教师日常是使用EXCEL文档记录学生成绩信息,所以在此选择使用EXCLE存储数据的方式比较适合教师。EXCEL文件的访问方式主要有两种,一种是作为文件进行访问,另一种是作为数据库进行访问。由于使用数据库方式比较简洁方便,因此选择数据库方式进行访问。使用数据库方式对EXCEL文件进行访问时,主要涉及两个内容,一个内容是连接字符串,对EXCEL的连接字符串为:Office2003版:Provider=Microsoft.Jet.OleDb.4.0; data source=[文件完整路径]; Extended Properties="Excel 8.0; HDR=Yes; IMEX=1";Office2007版:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[文件完整路径];Extended Properties="Excel 12.0;HDR=YES; IMEX=1"。其中HDR=Yes,代表第一行是标题,不做为数据使用,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。IMEX(Import Export mode)有三种模式:=0是汇出模式(Export mode)、=1是汇入模式(Import mode)、=2是连接模式(Linked mode)。其中汇入模式只能用来做“读取”用途,它会通知驱动程序以文本格式读取混合型的列(如数字、日期、字符串等),需要注意的是,这个选项设置为1时可能会导致Excel文件的写入拒绝。另一个内容是使用结构化查询语言(SQL),对于EXCEL文档,SQL中的连接语句(含JOIN关键字的语句)不能使用,不支持数据适配器(Adapter)的数据集合自动更新功能,另外还需注意的是表的名称后要加$号,例如默认情况下,EXCEL文件中的工作表1记为[Sheet1$]。

2.抽签功能

抽签功能涉及的关键技术有两个,一个是客户端的字幕随机滚动的抽签效果,另一个就是客户端和服务器端的数据传递问题。

客户端上实现题目的快速随机滚动效果,直接使用的服务器控件是实现不了的,因为使用动态技术(如ASP、等)可以用从表单或者参数中把信息发送到服务器,服务器然后完成计算、测试、数据库查找等。和这些技术相关联的应用程序服务器会写一个HTML文档来显示结果,然后把处理的结果以HTML文档的形式返回到浏览器来供用户查看。这样做的问题在于任何时候只要有变化,以上整个过程都需要再重复一遍(并且重新加载网页)。这样显得比较笨重缓慢,最好的选择是使用JavaScript,使抽签效果只是在客户端运行,不需要每次变化都和服务器进行交换。具体实现只需要使用一个函数给题目滚动显示控件重命名即可,再运用setTimeout([循环函数],[计时时间])函数实现计时循环,时间的设置是以毫秒为单位的,通常设置为5—10毫秒比较适宜,停止滚动获取结果只需运用clearTimeout([计时对象])清除计时对象。

JavaScript在客户端实现了良好的抽签效果,但是客户端和服务器端之间的数据交换却出现了问题,目前流行的AJAX(Asynchronous JavaScript and XML)方式可以有效地解决这个问题。其运用非常简单,在服务器端创建一个ASP文件负责具体的数据处理,然后创建XMLHttpRequest对象的一个实例负责两端的数据交换,接着使用open()方法建立调用,并设置URL以及所希望的HTTP方法(通常是GET或POST),如果需要使用异步通信,open()方法的第三个参数需要设置为True,最后对于请求实际上是通过一个send()方法调用触发。

上一篇:基于模糊控制的BP算法 下一篇:通用中位值平均滤波法PLC程序的设计与实现