APP下载

中英文文字录入测试软件设计及实现

2009-05-25舒清录

中国教育技术装备 2009年9期
关键词:测试软件操作者中英文

舒清录

随着计算机应用在人们生活、工作和学习中的渗透和普及,文字录入已成为现代人必须熟练掌握的计算机基本技能之一。目前市场上虽然有一些现成的文字录入测试软件,如金山打字通、Ccit2000、Typingfaster等,这些软件在一定程度上能提高人们文字录入的效率,但在系统的集成、需求的个性化、录入效率评价、录入过程监控等方面,往往还存在诸多问题。故设计该中英文文字录入测试软件,以期进一步提高操作者的文字录入水平。

1 文字录入测试涉及的主要技术

文字录入测试主要检验操作者键盘操作以及中英文文字输入的熟练程度。录入的内容主要包括英文字母、数字、汉字以及一些特殊字符等。特别是英文字母、数字、汉字、特殊符号等混合文本的录入,对操作者的录入技能要求更高。

本软件是基于Visual Basic(以下简称VB)6.0而开发的,主要采用VB控件库中的RichTextBox控件以及Label控件实现。RichTextBox控件主要用于接受用户的输入文本,其具有灵活、丰富的格式设置功能。Label控件用于显示原始文本内容,供用户对照输入的标准,具有不可编辑性[1]。

1.1 主要用到的RichTextBox控件属性1)SelLength属性——返回或设置所选择的字符数;2)SelStart属性——返回或设置所选择的文本的起始点,如果没有文本被选中,则指出插入点的位置;3)SelColor属性——返回或设置在对象里显示图片和文本的前景颜色;4)SelText属性——返回或设置包含当前所选择文本的字符串;5)AllowDrop属性——获取或设置控件是否接收拖放的通知等。

RichTextBox控件事件有Change事件(控件中当前文本的选择发生改变或插入点发生变化时)、keydown事件等。

1.2 控件数组的使用本测试软件采用按行对照录入文本的方式,这样有利于操作者对照原始文字录入,可以提高录入的速度和准确度。主要用到Label(index)和RichTextBox(index)2个控件数组,分别用于分行存放原始文本和用户录入的文本。控件数组通过控制其索引(index),能很方便地在不同的控件中转换,给程序设计和用户对照输入带来很大的方便。

1.3 文字格式的转换在VB6.0中,一般情况下,中文和英文或数字都只算一个字符,占一个字节,给中英文混合录入的定位带来不便。所以采用Unicode编码来处理中英文数字等文本,也就是把中文看作2个字节,英文、数字等其他字符看作一个字节。可以通过LenB(StrConv(strTxt, vbFromUnicode))来求得strTxt字符串所占的字节数[2]。

2 文字录入自动评分实现

在中英文录入过程中,由于紧张、疲劳等多种原因往往会导致操作者多打、漏打、错打字符,甚至出现多次交叉串行现象。如果在2个字符串的字符之间选取不同匹配对,操作者得到的评价将有较大差异,甚至得出不合理的结果。而判卷就是要在录入文本和标准文本字符之间找出最佳匹配对,以便正确评价操作者的水平,但这是一个实现比较困难且复杂的事情。

本文把系统自动评分的困难转嫁到对系统操作界面设计的高技巧上来,要求操作者输入的字符必须与原文字符对应位置完全匹配才算正确,结果用不同颜色的字来表示,比如输入正确的用蓝色表示,错误的用红色表示。系统实时统计蓝色字符的数目,也就是输入的正确字符数目,并实时反馈、显示给操作者,从而可对操作者的录入效率进行实时评价。

2.1 算法初始处理在系统启动时,随机从数据库中得到数据加密的文字,经过数据解密把待测试的文字存入YS()数组,存放的标准是:中文文字占2个存储单元,其他的占一个存储单元。例如:原始数据“我I”,则YS(0)=YS(1)="我",YS(2)="I"。把原始数据按照一定的数据标准放入RichTextBox()控件数组中,供操作者对照参考。

2.2 实时提醒用字体颜色的变化和实时显示操作者在当前输入情况下的正确数与错误数来体现其实时性。核心设计思想为:利用RichTextBox的selstart确定操作者输入或删除的起点位置值和终点位置值;通过两值的比较,确定进行的操作类型(删除、输入),然后从找到正确的位置开始,一直到输入总字符的最后位置,逐个与原始数据YS()里对应位置的内容比较;通过比较的结果,使用RichTextBox的SelColor属性改变输入的文字颜色,提醒操作者。对于实时显示操作者输入的准确数字反馈,可以每次从最启始位置开始,逐个比较RichTextBox的文字颜色,如果是红色的则错误,错误计数器值加一,否则正确计数器值加一。下面是此设计思想的伪代码:

For I = 0 To 输入总文字的长度-1

RichTextBox控件的SelStart = I

RichTextBox控件的SelLength = 1

IfRichTextBox1.SelColor是正确的颜色值 Then

正确计数器值加一

Else

计数器值加一

End If

Next

2.3 评分实现当测试者完成整个测试或中途因某种原因中断时,系统根据实时提醒得到的正确字符数与总的字数的比例来得出一个评价。

文字录入测试算法流程图如图1所示。

3 文字录入安全问题及其解决办法

3.1 防止操作者篡改原始数据在文字录入测试软件的实际应用中,可能会出现有的操作者通过其他手段找到系统存放原始文字数据的文件并篡改的现象。对此,可以对原始文字数据进行加密,文件内容被导入到系统再进行解密。一般而言,在此环境下简单的加密方案就可以满足要求。

3.2 禁止通过鼠标右键或键盘实现复制粘贴以及文字直接拖放为真实有效地检验操作者文字录入的效率,可以通过设置RichTextBox控件的keydown事件,来禁止操作者利用鼠标右键或键盘实现复制粘贴以及文字直接拖放。当用户按“Ctrl+V”时,让系统剪贴板内容清空(Clipboard.Clear)就可以达到目的[3]。拖放问题可以直接设置RichTextBox控件的禁止拖放属性(AllowDrop设置为False)就可以实现。

4 结束语

本文所介绍的实现中英文文字录入测试的一些关键技术,将为用户开发类似软件提供参考。同时,本文提到的实现方法通过变换可以运用到VB.NET环境中去,实现当前流行的基于B/S体系的测试模式。

参考文献

[1]谭浩强,袁玫,薛淑斌.Visual Basic程序设计[M].第二版.北京:清华大学出版社,2007

[2]VB函数[EB/OL].http://msdn.microsoft.com/zh-cn/library/cc437624(VS.71).aspx

[3]周长安,等.独立学院网络考试的汉字录入题设计[J].中国科技信息,2006(9):260-261

猜你喜欢

测试软件操作者中英文
《古脊椎动物学报(中英文)》编委会
网络自适应测试软件运行方法设计
第35卷(2020年)A辑中英文总目次
操作者框架在车辆传动系旋转耐久试验中的研究与应用
自动化检测EPU10A板卡系统设计与实现
操作者因素对Lenstar测量眼轴长度可重复性的影响
APPITA 2015年第2期中英文摘要
双腔管插入操作者手卫生依从性护理干预效果观察
远程开放教育学生自主学习能力评价的研究
一款重型包装抗压系统控制软件的设计与开发