|
本帖最后由 爱疯 于 2011-10-14 19:52 编辑
刚才看到同学的一个这样的题,也写了一个,与同学们一起学习,请老师们指正.
- Sub 出题()
- Dim i, arr, x&, r&
- i = InputBox("请输入一个正整数", "请输入题目数量", 10)
- If Val(i) < 1 Then MsgBox "没有选择题目数量!": Exit Sub
- ReDim arr(1 To i, 1 To 2)
- For x = 1 To i
- arr(x, 1) = "第" & x & "题"
- arr(x, 2) = Int(Rnd() * 100 + 1) & "÷" & Int(Rnd() * 100 + 1) & "="
- Next x
- With Sheets("100以内除法运算")
- r = .Range("A65536").End(xlUp).Row - 3
- .Cells(4, 1).Resize(r, 5).ClearContents
- .Cells(4, 1).Resize(UBound(arr), UBound(arr, 2)) = arr
- .Range("F2") = ""
- .Range("F3") = "每题" & Round(100 / i, 1) & "分"
- End With
- End Sub
复制代码- Sub 评分()
- Dim r&, i, x&, arr, j&, j1&
- j = 0: j1 = 0
- With Sheets("100以内除法运算")
- r = .Range("A65536").End(xlUp).Row
- arr = .Range("A4:E" & r)
- For x = 1 To UBound(arr)
- i = Round(Evaluate("=" & Replace(Left(arr(x, 2), Len(arr(x, 2)) - 1), "÷", "/")), 2)
- arr(x, 5) = i
- If Round(arr(x, 3), 2) = i Then
- arr(x, 4) = "√"
- j = j + 1
- Else
- arr(x, 4) = "×"
- j1 = j1 + 1
- End If
- Next x
- .Range("F2") = Round(100 / UBound(arr) * j, 1) & "分"
- .Range("A4").Resize(UBound(arr), UBound(arr, 2)) = arr
- MsgBox "正确:" & j & "题,错误:" & j1 & "题,本次测试正确率:" & Round(j / UBound(arr) * 100, 1) & "%"
- End With
- End Sub
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|