请教VB打字练习中正确率设计

来源:百度知道 编辑:UC知道 时间:2024/06/26 03:16:47
zq = 0
z1 = 0
z2 = 0
For z1 = 1 To Len(Text1.Text) - 1
tmpStr = Mid$(Text1.Text, z1, 1)
Next

For z2 = 1 To Len(Text2.Text) - 1
tmpStr = Mid$(Text2.Text, z2, 1)
If z1 = z2 Then
zq = zq + 1
End If
Next
zql = (zq / zstj) * 100
form3.Label6.Caption = zql
这是我现在编写的正确率部分的源程, 但是得不到结果。
我的意图是用户输入的内容在text2中,用text2中用户输入的文字与text1中给出的文字,逐一进行比较,正确就让zq加1,最后求出正确率
注释:z1——text1中的文本 z2——text2中的文本 zq——正确的个数
zql——正确率 zstj——字数统计(之前已完成)

探讨一下编程思路:多行文本框1保存并显示用于打字对照的文本,锁定不允许修改编辑,可以随机生成可录入字符或者载入已保存好的文本文件;多行文本框2为打字练习窗口,屏蔽键盘上的退格键和光标键,也就是说,启动打字练习时,只能按顺序从左到右依次键入,键入错了,不允许用退格键来删除刚键入的字符后再录入(如果允许使用退格键删除刚刚错录入的字符,则下面的索引变量i的改变及正确率的计算方式得修改),如果刚键入的字符与文本框1中的对照字符比较后不符,则将该字符标红。在录入过程中,中途休息,也不能用光标键或者鼠标左键改变文本框2中的光标位置,这得屏蔽文本框2的click事件。
正确率计算:变量sum代表文本框1中的总字符数;变量right代表文本框2中正确录入的字符总数,初始值等于sum,也就是说,在刚开始录入时,正确率是100%。在文本框2中添加keypress事件,在此事件中,需要考虑如下一些情况:
1.设置索引变量i,其值从1 到 sum,i应该是全局变量,初始值为1,在模块中定义; 2.屏蔽掉非可录入字符,也就是说对非可录入不予响应,不执行i=i+1语句;3. 如果录入的是可录入字符,判断其与循环变量i所索引的文本框1中的对应该字符是否相同,如果不同,则将该字符标红,同时同时执行:right=right-1,i=i+1;4. 正确率计算公式: right_rate=right*100/sum,结果可显示在一个文本框或者标签上;5.当i=sum时,打字练习结束,锁定文本框2,弹出本次打字练习结束的消息框,也可以将正确率显示在消息框上。

设置 重置 按钮,重新初始化各种变量以及重新载入文本框1中的打字练习内容。

这是一个系统工程,不是一两个函数,几行代码就能行的,还得考虑界面的美观,功能的实用,异常情况的处理。就如windows自带的计算器应用程序那样,不是简单的加减乘除,要考虑很多东西的。特别是要考虑文本框2的change事件或者keypress事件该如何编程,不是像一楼说的这样就这几行代码就能完美实现的。

两个循环应该嵌在一起吧。

zq = 0
For z1 = 1 To Len(Text1.Text) - 1
if Mid$(Text1.Text,