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

来源:百度知道 编辑:UC知道 时间:2024/06/01 15:02:09
我之前问过一个问题:http://zhidao.baidu.com/question/53302100.html,现在我想在该问题的最佳答案中的程序增加如下二个功能:
1)设定问题的个数,比如说一次20个问题。
2)在成绩记录的列表中按时间的短长排序。

如果完成的好话还可以加分。谢谢。
谢谢你0871love,你的答案基本上已经OK,我测试了一下,发现listbox并没有按成绩的短长排序,而是按题目出现的先后。请改正之。谢谢。

另外,增加一个要求:我需要一道题目出现后在form1用label2显示这道题目已经用掉的时间,例如我在做48x32这道题时,可能需要12秒左右,我希望label2能够显示成一个秒表。

我可以加多20分。谢谢你的帮助。

--------------
对不起,关于排序的问题我没有看清你的说明。其实我想我们应该可以实现实时排序吧!如果技术上太难的话,可以略掉。

这回该满意了吧~
这回该满意了吧~

Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Dim k As Integer
Dim iTime As Long
Dim iStar As Boolean
Dim cCount As Integer
Private Function getIssue() As Integer
'************加减乘除四则运算************************************************************************
Dim A As Integer, B As Integer, OP As String, m As String
OP = "+-×÷"
Randomize
m = Mid(OP, Int(Rnd * 4) + 1, 1) '在调试时,这里的4改成3,2,1等表示去掉对应的运算符
A = Int(Rnd * 10)
B = Int(Rnd * 10)
If m = "÷" Then '对于÷,只测试能整除的数
If B = 0 Then
B = Int(Rnd * 50) + 1
A = (Int(Rnd * (100 \ B)) + 1) * B
ElseIf A Mod B > 0 Then
B = Int(Rnd * 50) + 1
A = (Int(Rnd * (100 \ B)) + 1) * B
End If

'对于减法,只测试结果为正数的情况,如果不需要,删除掉ElseIf部分