📄 form1.frm
字号:
EndProperty
Height = 285
Left = 5040
TabIndex = 29
Top = 2340
Width = 765
End
Begin VB.Shape Shape1
Height = 435
Left = 480
Top = 2280
Width = 9735
End
Begin VB.Label Label5
Alignment = 2 'Center
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00400000&
Height = 855
Left = 3480
TabIndex = 20
Top = 2880
Width = 4575
End
Begin VB.Label Label6
Alignment = 2 'Center
BackColor = &H00FFC0FF&
BeginProperty Font
Name = "黑体"
Size = 14.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H0080FF80&
Height = 420
Left = 480
TabIndex = 19
Top = 2280
Width = 9720
End
Begin VB.Label Label1
Alignment = 1 'Right Justify
Appearance = 0 'Flat
BackColor = &H80000005&
BackStyle = 0 'Transparent
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "宋体"
Size = 72
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 1575
Left = 480
TabIndex = 2
Top = 600
Width = 8175
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim ab '计算值
Dim ndsz '难度
Dim txsz1 '题型设置(算法)
Dim txsz2 '题型设置(单连)
Dim sjsz '时间设置
Dim labelw '进度条步进值
Dim mm, ss '时间
Dim ind '模拟键盘号
Dim a(0 To 2) '算数
Dim qh
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Combo1_Change()
Command5.Enabled = True
End Sub
Private Sub Combo2_Change()
Command5.Enabled = True
End Sub
Private Sub Combo3_Change()
Command5.Enabled = True
End Sub
Private Sub Combo4_Change()
Command5.Enabled = True
End Sub
Private Sub Combo1_Click()
Select Case Combo1.Text
Case "10以内"
ndsz = 10
Case "20以内"
ndsz = 20
Case "50以内"
ndsz = 50
Case "100以内"
ndsz = 100
End Select
Label8(0) = Combo1
End Sub
Private Sub Combo2_Click()
Select Case Combo2.Text
Case "混合"
txsz1 = 0
Case "加法"
txsz1 = 1
Case "减法"
txsz1 = 2
Case "加减法"
txsz1 = 3
Case "乘法"
txsz1 = 4
Case "除法"
txsz1 = 5
Case "乘除法"
txsz1 = 6
End Select
Label8(1) = Combo2
End Sub
Private Sub Combo3_Click()
Select Case Combo3.Text
Case "混合"
txsz2 = 0
Case "单题"
txsz2 = 1
Case "连算"
txsz2 = 2
End Select
Label8(2) = Combo3
End Sub
Private Sub Combo4_Click()
Select Case Combo4.Text
Case "计时"
sjsz = 0
Case "1分钟"
sjsz = 1
Case "5分钟"
sjsz = 5
Case "10分钟"
sjsz = 10
Case "15分钟"
sjsz = 15
Case "30分钟"
sjsz = 30
Case "45分钟"
sjsz = 45
Case "60分钟"
sjsz = 60
End Select
Label8(3) = Combo4
End Sub
Private Sub Command1_Click()
If Command1.Caption = "开始" Then
If Len(Text4) = 0 Then
nval = InputBox("请输入您的大名。", "提示")
If nval <> "" Then
Text4 = nval
End If
End If
'开始
Label6.Width = 0 '进度条清零
Timer1.Enabled = True '计时开始
Label5 = ""
Label2 = 0
Label3 = 0
Text2 = ""
Command2.Enabled = True
Command1.Caption = "暂停"
If sjsz > 0 Then '如果时间设置是限时,倒计时
labelw = 9720 / 60 / sjsz '进度条步进值
ss = 0
mm = sjsz
s = IIf(ss < 10, "0" & ss, "" & ss)
m = IIf(mm < 10, "0" & mm, "" & mm)
t = m & ":" & s
Label9 = t
Else '如果时间设置是计时
ss = 0
mm = 0
s = IIf(ss < 10, "0" & ss, "" & ss)
m = IIf(mm < 10, "0" & mm, "" & mm)
t = m & ":" & s
Label9 = t
End If
Ct
ElseIf Command1.Caption = "暂停" Then
Command1.Caption = "继续"
Timer1.Enabled = False
Else
Command1.Caption = "暂停"
Timer1.Enabled = True
End If
Text1.SetFocus
End Sub
Private Sub Ct() '出题
On Error Resume Next
Dim f
qh = 0
1
r = Format(Rnd * 255, "0")
g = Format(Rnd * 255, "0")
b = Format(Rnd * 255, "0")
If r * g * b > 500000 Then GoTo 1 '防止颜色过淡
Label1.ForeColor = RGB(r, g, b)
'判断题型设置2(单连)
Select Case txsz2
Case 0
If Rnd > 0.5 Then
f = 1
Else
f = 2
End If
Case 1
f = 1
Case 2
f = 2
End Select
If f = 1 Then '如果是单题
Select Case txsz1 '判断题型设置1(符号)
Case 0
f1 = Rnd
If f1 < 0.25 Then
add1 '加法
ElseIf f1 >= 0.25 And f1 < 0.5 Then
sub1 '减法
ElseIf f1 >= 0.5 And f1 < 0.75 Then
mul1 '乘法
Else
div1 '除法
End If
Case 1
add1 '加法
Case 2
sub1 '减法
Case 3
f1 = Rnd
If f1 < 0.5 Then
add1 '加法
Else
sub1 '减法
End If
Case 4
mul1 '乘法
Case 5
div1 '除法
Case 6
f1 = Rnd
If f1 < 0.5 Then
mul1 '乘法
Else
div1 '除法
End If
End Select
Else '如果是连算
Select Case txsz1 '判断题型设置1(符号)
Case 0
f1 = Rnd
If f1 < 0.25 Then
add2 '加法
ElseIf f1 >= 0.25 And f1 < 0.5 Then
sub2 '减法
ElseIf f1 >= 0.5 And f1 < 0.75 Then
mul2 '乘法
Else
div2 '除法
End If
Case 1
add2 '加法
Case 2
sub2 '减法
Case 3 '加减法连算
f1 = Rnd
If f1 < 0.5 Then
10 a(0) = Val(Format(Rnd * ndsz, "0"))
If a(0) = 0 Then GoTo 10
a(1) = Val(Format(Rnd * ndsz, "0"))
If a(1) = 0 Then GoTo 10
ab = a(0) + a(1)
If ndsz = 10 Then
If ab > ndsz Then GoTo 10
Else
If ab > ndsz Or ab < ndsz / 2.5 Then GoTo 10
End If
fh1 = "+"
Else '减法
12 a(0) = Val(Format(Rnd * ndsz, "0"))
If ndsz = 10 Then
If a(0) = 0 Then GoTo 12
Else
If a(0) = 0 Or a(0) < ndsz / 2.5 Then GoTo 12
End If
13 a(1) = Val(Format(Rnd * a(0), "0"))
If a(1) = 0 Then GoTo 13
ab = a(0) - a(1)
fh1 = "-"
End If
f1 = Rnd
If f1 < 0.5 Then
14 a(2) = Val(Format(Rnd * ndsz, "0"))
If a(2) = 0 Then GoTo 14
ab = ab + a(2)
If ndsz = 10 Then
If ab > ndsz Then GoTo 10
Else
If ab > ndsz Or ab < ndsz / 2.5 Then GoTo 10
End If
fh2 = "+"
Else '减法
15 a(2) = Val(Format(Rnd * ndsz, "0"))
If ndsz = 10 Then
If a(2) = 0 Then GoTo 10
Else
If a(2) = 0 Or a(2) < ndsz / 2.5 Then GoTo 10
End If
ab = ab - a(2)
If ab < 0 Then
ab = 0
GoTo 10
End If
fh2 = "-"
End If
Label1 = a(0) & fh1 & a(1) & fh2 & a(2) & "="
Case 4
mul2 '乘法
Case 5
div2 '除法
Case 6 '乘除法
20 f1 = Rnd
If f1 < 0.5 Then '乘法
a(0) = Val(Format(Rnd * ndsz, "0"))
If a(0) = 0 Then GoTo 20
21 a(1) = Val(Format(Rnd * ndsz, "0"))
If a(1) = 0 Then GoTo 21
ab = a(0) * a(1)
aa = a(1)
If ndsz = 10 Then
If ab > ndsz Then GoTo 20
Else
If ab > ndsz Or ab < ndsz / 2.5 Then GoTo 20
End If
fh1 = "×"
Else
22 a(0) = Val(Format(Rnd * ndsz, "0"))
If a(0) = 0 Then GoTo 22
23 a(1) = Val(Format(Rnd * ndsz, "0"))
If a(1) = 0 Then GoTo 23
ab = a(0) * a(1)
If ndsz = 10 Then
If ab > ndsz Then GoTo 22
Else
If ab > ndsz Or ab < ndsz / 2.5 Then GoTo 22
End If
aa = ab
ab = aa / a(0)
fh1 = "÷"
End If
f1 = Rnd
If ab = 0 Then f1 = 0.1
If f1 < 0.5 Then '乘法
24 a(2) = Val(Format(Rnd * ndsz, "0"))
If a(2) = 0 Then GoTo 24
ab = ab * a(2)
If ndsz = 10 Then
If ab > ndsz Then GoTo 20
Else
If ab > ndsz Or ab < ndsz / 2.5 Then GoTo 20
End If
fh2 = "×"
Else
26 a(2) = Val(Format(Rnd * ndsz, "0"))
If a(2) = 0 Or a(2) > ab Then GoTo 26
ab = aa / a(2)
ab2 = Format(ab, "0")
If ab <> Val(ab2) Then GoTo 20
fh2 = "÷"
End If
Label1 = aa & fh1 & a(0) & fh2 & a(2) & "="
End Select
End If
Text1.SetFocus
End Sub
Private Sub add1() '加法1
10 a(0) = Val(Format(Rnd * ndsz, "0"))
If a(0) = 0 Then GoTo 10
a(1) = Val(Format(Rnd * ndsz, "0"))
If a(1) = 0 Then GoTo 10
ab = a(0) + a(1)
If ndsz = 10 Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -