孩子一年级上学期马上就要过去了,之前在论坛下了几个数学口算出题器,我嫌排版没有我满意的,就在Excel中用RANDBETWEEN函数自己做。
孩子一直这么做题练,直到上周老师说,孩子口算不行,让回家练。练的方法不是把提题目打印出来,是家长口头出题,孩子听了直接在脑子里算。
练了两天孩子没啥,我自己受不了了,一是效率低,二是太费脑子。
于是就用VBS做了个简单的加减法语音出题器。语音随机出加减法计算题,孩子计算后把答案写下来,最后语音对答案。这样效率提高不少。
[Visual Basic] 纯文本查看 复制代码 Randomize
set sapi = createobject("SAPI.SpVoice")
sapi.volume = 100
sapi.rate = -1
s = ""
dim jieguo()
num = InputBox("输入题目数量","一年级数学口算",50)'总题数
if num = false then wscript.quit
num = Cint(trim(num))
sapi.speak "预备,三,二,一,开始"
redim jieguo(num)
for i = 1 to num
a = GetRandom(1, 100)
if a > 50 then
yi = GetRandom(3, 10)'加法第一个数取值范围
er = GetRandom(2, 10)'加法第二个数取值范围
z = "加"
b = yi + er
s = s & yi & " + " & er & " = " & b & " "
if i mod 5 = 0 then s = s & vbcrlf
jieguo(i) = b
else
yi = GetRandom(7, 20)'减法第一个数取值范围
a = yi
er = GetRandom(3, a - 1)'减法第二个数取值范围
z = "减"
b = yi - er
s = s & yi & " - " & er & " = " & b & " "
if i mod 5 = 0 then s = s & vbcrlf
jieguo(i) = b
end if
sapi.speak yi & z & er, 2
wscript.sleep 1000 * 4'出完一题后等待4秒出下一题
next
sapi.speak "结束,开始对答案"
for i = 1 to num
sapi.speak jieguo(i)
if i mod 5 = 0 then wscript.sleep 5 else wscript.sleep 2
next
wscript.echo s
Function GetRandom(under, over)
If under < over Then
temp = under
under = over
over = temp
End If
Randomize
GetRandom = Int((under - over + 1) * Rnd + over)
End Function
再分享一个自己做的Excel版汉语拼音字母拼读表。https://mmn.lanzoue.com/iJU6T0j2aocd
|