国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

“小學(xué)分?jǐn)?shù)四則運算自測練習(xí)”PowerPoint課件的制作

2009-09-29 08:16嚴(yán)大虎白雪靜

嚴(yán)大虎 白雪靜

摘 要:分?jǐn)?shù)四則運算是小學(xué)數(shù)學(xué)的重要內(nèi)容,常用PowerPoint課件只有固定例題,本文介紹一種在PowerPoint中利用VBA程序?qū)崿F(xiàn)自動出題和計算機(jī)批改題目的方法,從而可以快速制作“小學(xué)分?jǐn)?shù)四則運算自測練習(xí)”課件。

關(guān)鍵詞:分?jǐn)?shù)四則運算;PowerPoint;VBA

中圖分類號:G433文獻(xiàn)標(biāo)識碼:B 文章編號:1673-8454(2009)16-0059-03

一、課件界面與執(zhí)行過程

設(shè)幻燈片的名稱為“SldCalcFraction”,采用“標(biāo)題和兩欄文本”版式?!皹?biāo)題區(qū)”含標(biāo)題、最大數(shù)文本框(txtMaxNum)和批語文本框(txtComment);“左欄文本區(qū)”含題號、運算符、等號、“答案”文本信息以及分子分母文本框(txtFirstNum1~ 4, txtFirstDenom1~ 4,txtSecondNum1~4, txtSecondDenom1~4)和答案文本框(txtAnswer1~4);“右欄文本區(qū)”有“計算機(jī)批改”文本信息和批改文本框(txtTip1~4);下部的“按鈕區(qū)”有“出題”、“批改”、“答案”、“清除內(nèi)容”和“重做”五個按鈕。課件界面如圖1所示。

該課件既可由教師用于課堂教學(xué),也可由學(xué)生用于練習(xí)和自測。其執(zhí)行過程:在幻燈片的放映狀態(tài)下,先輸入最大數(shù),最大數(shù)限制分子和分母的大小;單擊“出題”按鈕產(chǎn)生四道隨機(jī)題目,用戶將計算結(jié)果輸入答案文本框中,然后單擊“批改”按鈕,根據(jù)結(jié)果產(chǎn)生相應(yīng)信息。若重新計算做錯的題目,可單擊“重做”按鈕;若查看正確答案,單擊“答案”按鈕;如果繼續(xù)做題,在單擊“清除內(nèi)容”按鈕后單擊“出題”按鈕。

二、VBA程序的設(shè)計

1.通用變量與數(shù)組聲明

Dim a(1 To 4) As Long, b(1 To 4) As Long, c(1 To 4) As Long, d(1 To 4) As Long, e(1 To 4) As Long, f(1 To 4) As Long '數(shù)組a、b、c、d、e和f分別存儲參與運算的兩個分?jǐn)?shù)的分子分母以及結(jié)果的分子分母

Dim i As Integer

Dim l As Long, m As Long, n As Long, p As Long '用于對數(shù)組a、b、c、d賦值

Dim q(1 To 4) As String '存儲結(jié)果

2.分?jǐn)?shù)化簡方法

Sub yue(x As Long, y As Long) '將分子分母約分化為最簡分?jǐn)?shù)

Dim x0 As Long, y0 As Long, t As Long

y0 = y

x0 = x

Do While y0 <> 0 '求x和y的最大公約數(shù)

t = x0 Mod y0

x0 = y0

y0 = t

Loop

x = x / x0'x0為x和y的最大公約數(shù)

y = y / x0

End Sub

3.獲取答案方法代碼

Sub Get_Answer()

'加法運算中的分子

e(1) = CLng(txtSecondDenom1.Value) * CLng(txtFirstNum1.Value) + CLng(txtFirstDenom1.Value) * CLng(txtSecondNum1.Value)

'減法運算中的分子

e(2) = CLng(txtSecondDenom2.Value) * CLng(txtFirstNum2.Value) - CLng(txtFirstDenom2.Value) * CLng(txtSecondNum2.Value)

e(3) = CLng(txtFirstNum3.Value) * CLng(txtSecondNum3.Value) '乘法運算中的分子

e(4) = CLng(txtFirstNum4.Value) * CLng(txtSecondDenom4.Value) '除法運算中的分子

f(1) = CLng(txtFirstDenom1.Value) * CLng(txtSecondDenom1.Value)'加法運算中的分母

f(2) = CLng(txtFirstDenom2.Value) * CLng(txtSecondDenom2.Value)'減法運算中的分母

f(3) = CLng(txtFirstDenom3.Value) * CLng(txtSecondDenom3.Value)'乘法運算中的分母

f(4) = CLng(txtFirstDenom4.Value) * CLng(txtSecondNum4.Value)'除法運算中的分母

For i = 1 To 4

Call yue(e(i), f(i))'調(diào)用分?jǐn)?shù)化簡方法

If e(i) = f(i) Or e(i) = 0 Or f(i) = 1 Then '避免出現(xiàn)分子為0和分子分母都為1的情況

q(i) = e(i) / f(i)

Else

q(i) = e(i) & "/" & f(i)

End If

Next i

End Sub

4.“出題”按鈕單擊事件代碼

Private Sub CommandButton1_Click()

CommandButton4_Click'調(diào)用“清除內(nèi)容”按鈕的Click 事件,清除題目的“分子”、“分母”、“答案”、“批改”和“批語”文本框的內(nèi)容

If IsNumeric(txtMaxNum.Value) = False Then

MsgBox (" 請向“最大數(shù)”文本框中輸入運算允許的“最大數(shù)”")

Exit Sub

End If

Randomize ' 以系統(tǒng)當(dāng)前時間作為產(chǎn)生隨機(jī)數(shù)的種子數(shù)

For i = 1 To 4 '生成每題的分子和分母;

d(i) = Int((CLng(txtMaxNum.Value) - 1) * Rnd + 2) '產(chǎn)生“2 ~最大數(shù)”的隨機(jī)整數(shù),即產(chǎn)生第二個運算數(shù)的分母

c(i) = Int((d(i) - 2) * Rnd + 2) '隨機(jī)產(chǎn)生第二個操作數(shù)的分子

a(i) = Int((c(i) 2 + 1) * Rnd + 2) '隨機(jī)產(chǎn)生第一個操作數(shù)的分母

b(i) = Int((a(i) - 1) * Rnd + 2) '隨機(jī)產(chǎn)生第一個操作數(shù)的分子

l = a(i)

m = b(i)

n = c(i)

p = d(i)

Call yue(l, n) 化簡第一個操作數(shù)

Call yue(m, p) 化簡第二個操作數(shù)

在分子和分母的文本框中輸入操作數(shù)

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtFirstNum" & i).OLEFormat.Object.Text = l

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtSecondNum" & i).OLEFormat.Object.Text = m

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtFirstDenom" & i).OLEFormat.Object.Text = n

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtSecondDenom" & i).OLEFormat.Object.Text = p

Next i

End Sub

5.“批改”按鈕單擊事件代碼

Private Sub CommandButton2_Click() '

For i = 1 To 4 保證答案文本框非空

If ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtAnswer" & i).OLEFormat.Object.Text = "" Then

MsgBox "請先出題并給出全部答案后,再單擊“批改”按鈕!", 1, " 提示"

Exit Sub

End If

Next i

Get_Answer 獲取答案

For i = 1 To 4 根據(jù)用戶輸入的結(jié)果的正確性,在“批改”和“批語”文本框顯示對應(yīng)信息

If CStr(ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtAnswer" & i).OLEFormat.Object.Text) =

q(i) Then

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtTip" & i).OLEFormat.Object.Text="答案正確!恭喜!"

Else

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtTip" & i).OLEFormat.Object.Text = "答案不對,找出原因喲!"

End If

Next i

If CStr(txtAnswer1.Value) = q(1) And CStr(txtAnswer2.Value) = q(2) And CStr(txtAnswer3.Value) =q(3) And CStr(txtAnswer4.Value) = q(4) Then

txtComment.Value = "您真棒!全答對了!"

Else

txtComment.Value = "沒全對,繼續(xù)努力!"

End If

End Sub

6.“答案”按鈕單擊事件代碼

Private Sub CommandButton3_Click()

If IsNumeric(txtMaxNum.Value) = False Then'保證已出題

MsgBox " 請先出題后,再單擊“答案”按鈕! ", 1, " 提示"

Exit Sub

End If

Get_Answer '獲得答案

For i = 1 To 4'在“答案”文本框中輸入正確答案,同時清空“批改”和“批語”文本框的內(nèi)容

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtAnswer" & i).OLEFormat.Object.Text = q(i)

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtTip" & i).OLEFormat.Object.Text = ""

Next i

txtComment.Text = ""

End Sub

7.“清除內(nèi)容”按鈕單擊事件代碼

Private Sub CommandButton4_Click()'

For i = 1 To 4'清除“分子”、分母、“答案”、“批改”與“批語”文本框的內(nèi)容

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtFirstNum" & i).OLEFormat.Object.Text = ""

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtSecondNum" & i).OLEFormat.Object.Text = ""

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtFirstDenom" & i).OLEFormat.Object.Text = ""

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtSecondDenom" & i).OLEFormat.Object.Text = ""

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtAnswer" & i).OLEFormat.Object.Text = ""

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtTip" & i).OLEFormat.Object.Text = ""

Next i

txtComment.Text = ""

End Sub

8.“重做”按鈕單擊事件代碼

Private Sub CommandButton5_Click()

For i = 1 To 4 '清除錯誤結(jié)果題目的“答案”和“批改”文本框的內(nèi)容

If CStr(ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtAnswer" & i).OLEFormat.Object.Text) <> q(i) Then

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtTip" & i).OLEFormat.Object.Text = " "

ActivePresentation.Slides("SldCalcFraction").Shapes.Item("txtAnswer" & i).OLEFormat.Object.Text = ""

End If

Next i

End Sub

參考文獻(xiàn):

[1]陳琛,裴純禮.“小學(xué)整數(shù)運算自測練習(xí)”PPT課件的設(shè)計與使用[J].中小學(xué)信息技術(shù)教育,2007,(6):55-57.

[2]馬致明,陳惠敏等.PowerPoint中利用VBA制作交互式物理模擬課件[J].中國教育信息化(基礎(chǔ)教育),2008,(16).

(編輯:隗爽)

七台河市| 沙雅县| 璧山县| 十堰市| 玉田县| 郴州市| 如东县| 盐边县| 吴忠市| 香格里拉县| 高陵县| 沧源| 拜城县| 武宁县| 桂平市| 瓮安县| 钟山县| 保靖县| 凤凰县| 徐闻县| 屏山县| 灵宝市| 海宁市| 甘肃省| 武鸣县| 长兴县| 丽江市| 大石桥市| 成安县| 获嘉县| 乌苏市| 屯昌县| 元氏县| 铅山县| 县级市| 玉田县| 湖口县| 耒阳市| 商丘市| 卢氏县| 保康县|