论文部分内容阅读
整数四则运算是小学数学教学中教师讲解与学生练习的重要内容。但目前的四则运算PPT课件通常只给出固定例题,既不能自动出题,也无法自动批改,更不能将典型或做错的题目自动编排入库,供随后重点演示或练习。本文针对上述问题,介绍在PowerPoint中利用控件和VBA程序实现自动出题和批改的方法。
一、课件演示幻灯片界面与功能简介
课件演示幻灯片界面如右图所示,幻灯片的名称为“SldCalcInt”,采用“标题和两栏文本”版式:“标题区”含标题、批语文本框(txtComment)、供输入参与运算的最大数文本框(txtMaxNum);“左栏文本区”含题号、运算符、等号以及放置两个运算数的文本框(txtFirstNum1~4, txtSecondNum1~4)和接受答案输入的文本框(txtAnswer1~4);“右栏文本区”含“计算机批改”和放置4道题各自批改信息的文本框(txtTip1~4);下部的“按钮区”中“出题”、“批改”、“答案”和“清除内容”四个分别用于实现相应功能的按钮(CommandButton1~CommandButton4),幻灯片和它上面所有控件的名称均可在VBA编辑器单击F4键后在“属性”窗口中修改。
二、VBA程序的设计与编制
(一)通用变量与数组声明
Dim l(1 To 4), m(1 To 4) , n(1 To 4) As Integer’分别放置参与运算的整数1(l(i))、整数2(m(i))和答案(n(i))
Dim i, j As Integer
(二)获取答案方法基本代码
Sub Get_Answer()’获取答案方法:按给定的整数四则运算题目计算答案
n(1) = CSng(txtFirstNum1.Value) CSng(txtSecondNum1.Value)
n(2) = CSng(txtFirstNum2.Value) - CSng(txtSecondNum2.Value)
n(3) = CSng(txtFirstNum3.Value) * CSng(txtSecondNum3.Value)
n(4) = CSng(txtFirstNum4.Value) / CSng(txtSecondNum4.Value)
End Sub
(三)“出题”按钮单击事件的基本代码
Private Sub CommandButton1_Click()’“出题”按钮的Click事件
CommandButton4_Click’调用按钮4的Click事件:清除“题目”、“答案”、“批改”与“批语”中的内容
If IsNumeric(txtMaxNum.Value) = False Then
MsgBox ("请向“最大数”文本框中输入运算允许的“最大数”。")
Exit Sub
End If
Randomize’以系统当前时间作为产生随机数的种子数
For i = 1 To 4
l(i) = Int((CSng(txtMaxNum.Value) - 1) * Rnd 2)’产生“2~最大数”的随机整数
m(i) = Int((l(i) - 2) * Rnd 2)’产生“2~(整数1)-1”的随机整数,尽可能保证“整数1>整数2”
If (i = 4) Then
m(i) = Int((l(i) \ 2 - 1) * Rnd 2)’产生“2~(“整数1”\2)”的随机整数,尽可能保证“商≥2”
l(4) = (l(4) \ m(4)) * m(4)’保证整除(\为整除运算符,即只取商的整数部分作为结果)
End If
ActivePresentation.Slides("SldCalcInt ").Shapes.Item("txtFirstNum"
一、课件演示幻灯片界面与功能简介
课件演示幻灯片界面如右图所示,幻灯片的名称为“SldCalcInt”,采用“标题和两栏文本”版式:“标题区”含标题、批语文本框(txtComment)、供输入参与运算的最大数文本框(txtMaxNum);“左栏文本区”含题号、运算符、等号以及放置两个运算数的文本框(txtFirstNum1~4, txtSecondNum1~4)和接受答案输入的文本框(txtAnswer1~4);“右栏文本区”含“计算机批改”和放置4道题各自批改信息的文本框(txtTip1~4);下部的“按钮区”中“出题”、“批改”、“答案”和“清除内容”四个分别用于实现相应功能的按钮(CommandButton1~CommandButton4),幻灯片和它上面所有控件的名称均可在VBA编辑器单击F4键后在“属性”窗口中修改。

二、VBA程序的设计与编制
(一)通用变量与数组声明
Dim l(1 To 4), m(1 To 4) , n(1 To 4) As Integer’分别放置参与运算的整数1(l(i))、整数2(m(i))和答案(n(i))
Dim i, j As Integer
(二)获取答案方法基本代码
Sub Get_Answer()’获取答案方法:按给定的整数四则运算题目计算答案
n(1) = CSng(txtFirstNum1.Value) CSng(txtSecondNum1.Value)
n(2) = CSng(txtFirstNum2.Value) - CSng(txtSecondNum2.Value)
n(3) = CSng(txtFirstNum3.Value) * CSng(txtSecondNum3.Value)
n(4) = CSng(txtFirstNum4.Value) / CSng(txtSecondNum4.Value)
End Sub
(三)“出题”按钮单击事件的基本代码
Private Sub CommandButton1_Click()’“出题”按钮的Click事件
CommandButton4_Click’调用按钮4的Click事件:清除“题目”、“答案”、“批改”与“批语”中的内容
If IsNumeric(txtMaxNum.Value) = False Then
MsgBox ("请向“最大数”文本框中输入运算允许的“最大数”。")
Exit Sub
End If
Randomize’以系统当前时间作为产生随机数的种子数
For i = 1 To 4
l(i) = Int((CSng(txtMaxNum.Value) - 1) * Rnd 2)’产生“2~最大数”的随机整数
m(i) = Int((l(i) - 2) * Rnd 2)’产生“2~(整数1)-1”的随机整数,尽可能保证“整数1>整数2”
If (i = 4) Then
m(i) = Int((l(i) \ 2 - 1) * Rnd 2)’产生“2~(“整数1”\2)”的随机整数,尽可能保证“商≥2”
l(4) = (l(4) \ m(4)) * m(4)’保证整除(\为整除运算符,即只取商的整数部分作为结果)
End If
ActivePresentation.Slides("SldCalcInt ").Shapes.Item("txtFirstNum"