二、 软件设计思路
本软件的基本思路就是对学生输入的字符串和源字符串进行比较。比较算法要考虑到多打、漏打、错打等各种情况,并能正确区分错误类型。想一想,我们人为什么能正确的区分多打、漏打、错打等各种错误类型,在用人工对两份文稿进行对比时,我们不仅看到当前的文字,而且还看到了上下文中的文字,我们能首先判断出那些文字是对的,然后以正确文字为标准,然后再判断错误的文字是多打、错打、还是漏打。仿照人工判断正误的方法,我设计的比较算法共分三步,第一步,查找源串和输入串中最大相同的子串即正确的子串,第二步,以最大相同子串为界(以正确子串为参照标准),分别将源串和输入串分成三部分,即最大相同子串前面部分,简称前部,最大相同子串,和最大相同子串后面部分,简称后部。第三步,分别对源串输入串的前部,源串输入串的后部再次应用本比较算法(递归调用),直到没有相同的子串为止。此时根据源串和输入串是否为“空”,以判断各种错误类型,见下表:
源串内容 | 空 | 不空 | 不空 |
输入串内容 | 不空 | 空 | 不空 |
错误类型 | 多打 | 漏打 | 错打 |
本软件的开发以微软的 .net为开发环境,c#为编程语言进行编制,部署在WEB服务器上,学生端利用IE为客户端,只要登录WEB服务器即可开始测试。软件具有部署简单,使用方便的特点。
三、 关键子程序清单:
1、 获取两个串中,最大相同子串分别在两串中的起始位置和相同子串的长度。
变量说明:
psourcestr :源串 puserstr : 输入串
psl : 最大相同子串在源串中的超始位置
pul : 最大相同子串在输入串中的超始位置
psamelength : 最大相同子串的长度
2、按STYLE格式显示STR的内容。该子程序用于以不同的颜色显示字符串的内容。
3、 通过递归调用该子程序,穷尽所有相同的子串。
变量说明:
psourcestr:源串 puserstr: 输入串
samewords :相同的字符数 totalwords: 总的正确字符数
mistakewords:错误的字符数