用vb编写一个测试算术的小程序

这是一个小程序,要求如下:
1)这个一个随机出算术题的程序,比如随机出45 x64,然后输入答案后自动进入下一道题。(注意是输入答案如果答案正确即自动进入下一道题,无需按回车确认)
2)这个小程序要包括简单的计时,即要记录每一道题所需要的时间。
3)最好用vc来做,但如果是其它语言的话我不知道能不能用(因我只懂小小的vb),要编译成exe给我测试。当然,如果能用vba来实现的话,那更好。(有可以用flash来实现的)
4)最好有比较完整的源码,如果没有的话,说出解题思路也可。

谢谢各位关注。
谢谢各位:

不好意思,我没有补充完整。xxlxxl的程序很好,但发现了一个问题,就是第一道题的时间是从form1.load开始的,这样可能计时就不准确(还没有准备好第一道题的时间就跳到了几十秒)。可不可以实现这样的功能:在text1里面输入1的时候才开始计时并做题呢?当然并不是每道题都要按1开始,按了1开始了就是连续出题了。

希望这样清楚。

to:Zxlxxl,
你修改后的程序运行后还是自动开始计时了。请改正之。

第1个回答  2008-05-10
这样可以了吗:

呵呵,挣这100分真不容易啊

Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Dim k As Integer
Dim iTime As Long
Dim iStar As Boolean
Private Function getIssue() As Integer
'************加减乘除四则运算************************************************************************
Dim a As Integer, b As Integer, OP As String, m As String
OP = "+-×÷"
Randomize

a = Int(Rnd * 101)
b = Int(Rnd * 101)
For i = 1 To 1
m = Mid(OP, Int(Rnd * 2) + 1, 1) '在调试时,这里的4改成3,2,1等表示去掉对应的运算符
If m = "÷" And b = 0 Then i = i - 1
Next

Label1.Caption = a & " " & m & " " & b & " = "
Text1.Text = ""
Select Case m
Case "+"
getIssue = a + b
Case "-"
getIssue = a - b
Case "×"
getIssue = a * b
Case "÷"
getIssue = Round(a / b, 2) '四舍五入保留两位小数
End Select
'**************************************************************************************************

End Function

Private Sub Form_Activate()
iStar = False
Text1.Text = "按1键开始"
Text1.SetFocus
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If Not iStar Then
If KeyCode = 49 Then
iStar = True
k = getIssue()
iTime = timeGetTime()
End If
Else
If Val(Trim(Text1.Text)) = k Then
List1.AddItem Label1.Caption & k & " : " & Format((timeGetTime() - iTime) / 1000, " 0.00") & "秒"
k = getIssue()
iTime = timeGetTime
End If
End If
End Sub本回答被提问者采纳
第2个回答  2008-05-09
看“我的消息”。
第3个回答  2008-05-09
e.......
相似回答