vb打字练习应用程序,跪求高手,谢谢了!!
编制一个能帮助初学者进行打字练习的程序,练习完成后,自动进行评分和显示。具体要求如下。(1)“请选择练习题”框中,有5个练习可供选择,每个练习的练习文字对应一个文本文件(...
编制一个能帮助初学者进行打字练习的程序,练习完成后,自动进行评分和显示。具体要求如下。
(1)“请选择练习题”框中,有5个练习可供选择,每个练习的练习文字对应一个文本文件(练习文字ex1.txt~ex5.txt保存在“素材”文件夹下)。
(2)单击 【开始练习】按钮,能够将选中的练习文件的内容显示在“题目内容”文本框中,用户输入的文字显示在“输入内容”文本框中。与此同时,在显示倒计时的时间(5分钟),并在最下方的文本框中显示输入正确的字符数和不正确的字符数,如图1所示。
(3)用户输入完成后单击【完成本题】 按钮,在下面的文本框显示成绩,如图2所示。若用户5分钟内未能完成,将弹出一个消息框提示时间到,如图3所示,并自动显示成绩。(成绩计算方法:正确的字符数除以应输入的全部字符数,然后乘以100)
(4)单击【退出练习】 按钮结束程序。
i 展开
(1)“请选择练习题”框中,有5个练习可供选择,每个练习的练习文字对应一个文本文件(练习文字ex1.txt~ex5.txt保存在“素材”文件夹下)。
(2)单击 【开始练习】按钮,能够将选中的练习文件的内容显示在“题目内容”文本框中,用户输入的文字显示在“输入内容”文本框中。与此同时,在显示倒计时的时间(5分钟),并在最下方的文本框中显示输入正确的字符数和不正确的字符数,如图1所示。
(3)用户输入完成后单击【完成本题】 按钮,在下面的文本框显示成绩,如图2所示。若用户5分钟内未能完成,将弹出一个消息框提示时间到,如图3所示,并自动显示成绩。(成绩计算方法:正确的字符数除以应输入的全部字符数,然后乘以100)
(4)单击【退出练习】 按钮结束程序。
i 展开
2个回答
展开全部
Dim RNEWALLSTRING As String '合并字符串,此时的字符串已经不包换换行符和空格
Dim ER As Integer
Private Sub Command1_Click() '注意len(vbcrlf)=2
Timer1.Enabled = True
Dim PATH As String
Dim ALLSTRING As String
If Option1(0).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习1.TXT"
ElseIf Option1(1).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习2.TXT"
ElseIf Option1(2).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习3.TXT"
ElseIf Option1(3).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习4.TXT"
ElseIf Option1(4).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习5.TXT"
ElseIf Option1(5).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习6.TXT"
End If
Dim fso As FileSystemObject 'set是给对象变量赋值
Dim file1 As TextStream
Set fso = CreateObject("Scripting.FileSystemObject")
Set file1 = fso.OpenTextFile(PATH)
ALLSTRING = file1.ReadAll
Text1.Text = ALLSTRING
Dim SPI '用来存储分割后得字符串
SPI = Split(ALLSTRING, vbCrLf)
Dim NEWALLSTRING As String '用来存储合并后的字符串,为了去掉换行符
For i = 0 To UBound(SPI)
NEWALLSTRING = NEWALLSTRING & SPI(i)
Next
Dim Rspi '用来存储去掉空格后的字符串
Rspi = Split(NEWALLSTRING, " ")
For i = 0 To UBound(Rspi)
RNEWALLSTRING = RNEWALLSTRING & Rspi(i)
Next
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
i = 100 - (ER / Len(Text2.Text)) / (Len(Text2.Text) / Len(RNEWALLSTRING)) * 100
Text5.Text = i
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
End Sub
Private Sub Text2_Change() '用来检测字符是否正确
For i = 1 To Len(Text2.Text)
If Left(Text2.Text, i) <> Left(RNEWALLSTRING, i) Then
J = J + 1
End If
Next
ER = J
Text3.Text = ER
End Sub
Private Sub Timer1_Timer()
Static i As Integer
Text4.Text = 5000 - i
i = i + 1
If i > 5000 Then
MsgBox "时间已到"
Text5.Text = 100 - (ER / Len(Text2.Text)) / (Len(Text2.Text) / RENEWALLSTRING) * 100
End If
End Sub
你还说个邮箱吧,要不然你看不明白,我把工程文件给你发过去 ,不过我的练习题的文本文件是保存在桌面上的,当然你可以改为其他的路径
Dim ER As Integer
Private Sub Command1_Click() '注意len(vbcrlf)=2
Timer1.Enabled = True
Dim PATH As String
Dim ALLSTRING As String
If Option1(0).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习1.TXT"
ElseIf Option1(1).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习2.TXT"
ElseIf Option1(2).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习3.TXT"
ElseIf Option1(3).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习4.TXT"
ElseIf Option1(4).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习5.TXT"
ElseIf Option1(5).Value = True Then
PATH = "C:\Documents and Settings\Administrator\桌面\练习6.TXT"
End If
Dim fso As FileSystemObject 'set是给对象变量赋值
Dim file1 As TextStream
Set fso = CreateObject("Scripting.FileSystemObject")
Set file1 = fso.OpenTextFile(PATH)
ALLSTRING = file1.ReadAll
Text1.Text = ALLSTRING
Dim SPI '用来存储分割后得字符串
SPI = Split(ALLSTRING, vbCrLf)
Dim NEWALLSTRING As String '用来存储合并后的字符串,为了去掉换行符
For i = 0 To UBound(SPI)
NEWALLSTRING = NEWALLSTRING & SPI(i)
Next
Dim Rspi '用来存储去掉空格后的字符串
Rspi = Split(NEWALLSTRING, " ")
For i = 0 To UBound(Rspi)
RNEWALLSTRING = RNEWALLSTRING & Rspi(i)
Next
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
i = 100 - (ER / Len(Text2.Text)) / (Len(Text2.Text) / Len(RNEWALLSTRING)) * 100
Text5.Text = i
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
End Sub
Private Sub Text2_Change() '用来检测字符是否正确
For i = 1 To Len(Text2.Text)
If Left(Text2.Text, i) <> Left(RNEWALLSTRING, i) Then
J = J + 1
End If
Next
ER = J
Text3.Text = ER
End Sub
Private Sub Timer1_Timer()
Static i As Integer
Text4.Text = 5000 - i
i = i + 1
If i > 5000 Then
MsgBox "时间已到"
Text5.Text = 100 - (ER / Len(Text2.Text)) / (Len(Text2.Text) / RENEWALLSTRING) * 100
End If
End Sub
你还说个邮箱吧,要不然你看不明白,我把工程文件给你发过去 ,不过我的练习题的文本文件是保存在桌面上的,当然你可以改为其他的路径
更多追问追答
追问
传到我的QQ邮箱吧,735994409@qq.com 实在是太感谢了~~
追答
已经发送
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询