【转】自编汉字测试软件(有删减,仅保留文本比较算法部分)

二、 软件设计思路

本软件的基本思路就是对学生输入的字符串和源字符串进行比较。比较算法要考虑到多打、漏打、错打等各种情况,并能正确区分错误类型。想一想,我们人为什么能正确的区分多打、漏打、错打等各种错误类型,在用人工对两份文稿进行对比时,我们不仅看到当前的文字,而且还看到了上下文中的文字,我们能首先判断出那些文字是对的,然后以正确文字为标准,然后再判断错误的文字是多打、错打、还是漏打。仿照人工判断正误的方法,我设计的比较算法共分三步,第一步,查找源串和输入串中最大相同的子串即正确的子串,第二步,以最大相同子串为界(以正确子串为参照标准),分别将源串和输入串分成三部分,即最大相同子串前面部分,简称前部,最大相同子串,和最大相同子串后面部分,简称后部。第三步,分别对源串输入串的前部,源串输入串的后部再次应用本比较算法(递归调用),直到没有相同的子串为止。此时根据源串和输入串是否为“空”,以判断各种错误类型,见下表:

源串内容

不空

不空

输入串内容

不空

不空

错误类型

多打

漏打

错打

本软件的开发以微软的 .net为开发环境,c#为编程语言进行编制,部署在WEB服务器上,学生端利用IE为客户端,只要登录WEB服务器即可开始测试。软件具有部署简单,使用方便的特点。
三、 关键子程序清单:

1、 获取两个串中,最大相同子串分别在两串中的起始位置和相同子串的长度。
变量说明:
psourcestr  :源串         puserstr :  输入串
psl         : 最大相同子串在源串中的超始位置
pul         : 最大相同子串在输入串中的超始位置
psamelength : 最大相同子串的长度

2、按STYLE格式显示STR的内容。该子程序用于以不同的颜色显示字符串的内容。
  

3、 通过递归调用该子程序,穷尽所有相同的子串。
变量说明:
psourcestr:源串   puserstr: 输入串
samewords :相同的字符数  totalwords: 总的正确字符数
mistakewords:错误的字符数
  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值