當前位置:編程學習大全網 - 源碼下載 - VB編寫的打字程序

VB編寫的打字程序

我有,當年自己寫的壹個得過<省二等獎><市壹等獎>的作品!

功能:運行打錯字,回退鍵重要,打對字實現“打勾”,與打錯字“打差”統計正確率,速度,圖形界面顯示鍵盤圖。。。(2萬行左右代碼)

Private Sub Text1_Change(Index As Integer)

On Error GoTo text1changewrong:

' Print Mid(Label1(myord Mod 7).Caption, begin + 1, myend - begin + 1)

MouseSetfocusOrAutoSetfocus = False '把是否用標點text1(0)標記變為不是(false)

Text1(Index).IMEMode = 9 '用於改變輸入法狀態

backyn = False '讓退格可以用

Label3.Caption = "myend" & Str(myend)

Label4.Caption = "begin" & Str(begin)

If key = 1 Then '如果k=1 '清空文本框

For i = 0 To 6

Text1(i).Text = ""

Text1(i).Enabled = False

Label2(i).Caption = ""

Next i

Text1(0).Enabled = True

key = 0

'此處應變題(出題, 待作:...........)

End If

If delete = 0 Then

myend = Text1(myord Mod 7).SelStart + 1

Else

myend = myend - 1

begin = begin - 1

End If

If myend - begin <> 0 Then

tmstr$ = Mid(Label1(myord Mod 7).Caption, begin, myend - begin)

dtstr$ = Mid(Text1(myord Mod 7).Text, begin, myend - begin)

If tmstr = " " And dtstr = " " Then

Label2(myord Mod 7).Caption = Label2(myord Mod 7).Caption & " "

yorn(Text1(Index).SelStart) = 2

' GoTo kung:

'這裏下

Else

If tmstr$ = dtstr$ Then

Label2(myord Mod 7).Caption = Label2(myord Mod 7).Caption + "√"

y = y + 1 '對的加壹個

Label5.Caption = "正確:" & Str(y) & " 個字"

yorn(Text1(Index).SelStart) = 1

Else

Label2(myord Mod 7).Caption = Label2(myord Mod 7).Caption + "×"

n = n + 1 '錯的加壹個

Label6.Caption = "錯誤:" & Str(n) & "個字"

yorn(Text1(Index).SelStart) = 0

End If

End If

End If

If y >= 1 Then '除數不可為0

Label7.Caption = "正確率:" & left(Str((y / (y + n)) * 100), 5) & "%" '在label7上顯示[正確率]

Correctness = left(Str((y / (y + n)) * 100), 5) '用於寫文件時用的

Else

Label7.Caption = "正確率:" & 0# & "%" '在label7上顯示[正確率]

Correctness = 0# '用於寫文件時用的

End If

If Text1(myord Mod 7).SelStart >= Len(RTrim(Label1(myord Mod 7).Caption)) Then

If Text1((Index + 1) Mod 7).Visible = False Then

MsgBox "正確:" & Str(y) & "個 " & Label7.Caption & Chr(13) & Chr(10) & "錯誤:" & Str(n) & "個 " & Label8.Caption, 64, "測試報告"

Close #1

'Form2.Show

Unload Me

Exit Sub

'水有文單

End If

Text1(myord Mod 7).SelStart = 1

myord = myord + 1

If myord Mod 7 = 0 Then

key = 1 '用key=1 表示要清空所有文本框

For m = 0 To 6

Text1(m).Enabled = True

Next m

End If

begin = 1

delete = 0

Label2(myord Mod 7).Caption = ""

For u = 0 To 6

Text1(u).Enabled = False

Next u

Text1(myord Mod 7).Enabled = True

If Text1(myord Mod 7).Visible = True Then Text1(myord Mod 7).SetFocus

Text1(myord Mod 7).Text = ""

End If

'*******************************此段用於locked文本框*******

If myord Mod 7 <> 0 Then Text1(myord Mod 7 - 1).Enabled = False

'***************************************************

begin = myend

Exit Sub

text1changewrong:

MsgBox "系統出錯,將要關閉!", 32, "系統提示"

Unload Me

End Sub

Private Sub Text1_GotFocus(Index As Integer)

Dim tuige As Integer '用於保存text、label 應退的格數

If MouseSetfocusOrAutoSetfocus = True Then Exit Sub

Text1(Index).IMEMode = 9 '用於改變輸入法狀態

If Text1(Index).Text <> "" Then backyn = True '未驗證

myord = Index

If Text1(myord Mod 7).Text = "" Then

begin = 1

myend = 0

Else

begin = Len(Text1(myord Mod 7).Text)

myend = Len(Text1(myord Mod 7).Text) + 1

Label2(myord Mod 7).Caption = left(Label2(myord Mod 7).Caption, Len(Text1(myord Mod 7).Text))

End If

If Index = 0 Then

If callkey = 0 Then

getnum = 0 '如果form1是剛打開,則從list1的第壹行開始讀數據

y = 0

n = 0

End If

callkey = callkey + 1

If callkey Mod 2 <> 0 Then

For i = 0 To 6

mytxt = List1.List(getnum)

getnum = getnum + 1

If Not (getnum > List1.ListCount) Then

'a: ' Line Input #1, mytxt

'If Not (Len(Trim(mytxt)) >= 1) Then GoTo a:

If Len(mytxt) > 37 Then mytxt = left(mytxt, 37)

'Label1(i).Left = Label1(i).Left + (Len(mytxt) - Len(LTrim(mytxt))) * (50 / 3)

'Label2(i).Left = Label1(i).Left + (Len(mytxt) - Len(LTrim(mytxt))) * (50 / 3)

'Text1(i).Left = Text1(i).Left + (Len(mytxt) - Len(LTrim(mytxt))) * (50 / 3)

Text1(i).left = 550 '每次都讓label的位置還原

Label1(i).left = 600 '每次都讓label的位置還原

Label2(i).left = 600 '每次都讓label的位置還原

Label1(i).Caption = RTrim(mytxt) '"***和國中華人民***和國中華人民***和國中華人民***和國中華人民***和國韋"

tuige = (Len(RTrim(mytxt)) - Len(Trim(mytxt))) * Int(7695 / 37)

Label1(i).Caption = Trim(Label1(i).Caption) '"***和國中華人民***和國中華人民***和國中華人民***和國中華人民***和國韋"

Text1(i).left = Text1(i).left + tuige '退

Label1(i).left = Label1(i).left + tuige '退

Label2(i).left = Label2(i).left + tuige '退

Text1(i).Text = ""

Label2(i).Caption = ""

Text1(i).MaxLength = Len(Trim(Label1(i).Caption))

Text1(i).Width = Label1(i).Width + 100

Label1(i).Visible = True

Label2(i).Visible = True

Text1(i).Visible = True

Else

'Label1(i - 1).Visible = False

' Label2(i - 1).Visible = False

' Text1(i - 1).Visible = False

Exit For

End If

Next i

End If

End If

ReDim yorn(Len(Label1(Index).Caption)) As Integer

End Sub

Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)

'Text1(Index).IMEMode = 1

If KeyCode = 37 Or KeyCode = 39 Or KeyCode = 38 Or KeyCode = 40 Or KeyCode = 35 Or KeyCode = 36 Or KeyCode = 46 Then KeyCode = 0

If backyn = True And KeyCode = 8 Then KeyAscii = 0: Exit Sub: backyn = False

If KeyCode = 8 And Text1(myord Mod 7).SelStart <> 0 Then

If yorn(Text1(Index).SelStart) = 1 Then y = y - 1: Label5.Caption = "正確:" & Str(y) & " 個字" 'Else n = n - 1: Label6.Caption = "錯誤:" & Str(n) & "個字" '用於減少對與錯的量(y\n)

If yorn(Text1(Index).SelStart) = 0 Then n = n - 1: Label6.Caption = "錯誤:" & Str(n) & " 個字"

delete = 1

Label2(myord Mod 7).Caption = left(Label2(myord Mod 7).Caption, Len(Label2(myord Mod 7).Caption) - 1)

Text1(myord Mod 7).SelStart = myend - 1 'jjjjjjjjjjjjjjjjjjjj

Else

a:

delete = 0

End If

End Sub

。。。其它代碼不公開,但本人願意提供關鍵處代碼,以代參考,或者思路問題進行回答!請加本人的QQ:599299169

  • 上一篇:如何用vb畫出簡易函數圖像
  • 下一篇:tomcat正常啟動,但網頁項目文件不能訪問,怎麽辦?
  • copyright 2024編程學習大全網