亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用Visual Basic實現(xiàn)20以內(nèi)加減法出題器

        2017-09-22 10:18:36張玄同
        科技傳播 2017年17期

        張玄同

        摘 要 利用Visual Basic中的標簽、文本框和命令按鈕等基本控件編寫“20以內(nèi)加減法練習”程序。實現(xiàn)出題、判斷正誤、統(tǒng)計練習者正確率、結(jié)束練習、結(jié)束程序的功能。

        關(guān)鍵詞 任意;加減法練習;開始答題;結(jié)束答題;結(jié)束程序

        中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2017)194-0085-03

        高二上學期學習《算法與程序設計》這門課,老師讓學生在Visual Basic編程環(huán)境下學習編寫一些功能簡單易實現(xiàn)的程序,筆者對此也很有興趣。筆者想到了小學時每天要做算術(shù)練習,如果能有程序自動為小學生出題,家長就不用為孩了買練習冊了,于是筆者試著編寫了能夠幫助小學生練習20以內(nèi)任意兩個正整數(shù)的加減法練習程序。

        筆者利用Visual Basic中的標簽、文本框和命令按鈕等基本控件實現(xiàn)了“20以內(nèi)加減法練習”程序。其中自動出題的兩個數(shù)不能被修改,所以用標簽控件顯示,減號和等號也是用標簽控件顯示,而最后的答題區(qū)需要答題者在此輸入答案,文本框控件具有這個功能,所以筆者選擇了文本框控件,為了讓答題者能了解如何答題,我在下面用標簽控件給出的操作提示。程序運行界面如圖1所示。

        當練習者單擊“開始答題”按鈕時程序隨機出題,這時練習者可以在等號后的答題區(qū)輸入答案,如果輸入錯誤可以進行修改,確認答案正確后,敲鍵盤上的“Enter”鍵提交答案,程序會對練習者的答案進行正誤判斷并把結(jié)果顯示在列表框中,以供練習者查看,并自動進入下一題的練習。如果練習者想停止答題,可單擊“結(jié)束答題”按鈕,程序會在列表框下顯示練習者本次練習的情況統(tǒng)計,即共做了幾題,對了幾題,錯了幾題,如圖2所示。如需繼續(xù)練習,可再次單擊“開始答題”按鈕;如果要結(jié)束程序運行,可單擊“結(jié)束程序”按鈕。程序代碼如下:

        因為答題總數(shù)、答對的題目數(shù)和答錯題目數(shù)要被兩個事件過程用到,所以要在通用代碼段變聲明這4個變量:

        Dim t As Integer, y As Integer, n As Integer

        答題者單擊“開始答題”按鈕,程序就開始第一次隨機出題。程序的隨機出題功能是利用了Visual Basic中的隨機函數(shù)Rnd來實現(xiàn)的,其中包括運算數(shù)的隨機出現(xiàn)和加減法運算符的隨機出現(xiàn)。為了做到被減數(shù)一定要不小于減數(shù),筆者用了一個循環(huán)語句(Do While…Loop),當被減數(shù)小于減數(shù)時就重新隨機產(chǎn)生減數(shù),直到符合減法運算的要求為止?!伴_始答題”按鈕(Command1)的單擊事件過程代碼如下:

        Private Sub Command1_Click()

        Dim c As Integer

        t = 0

        y = 0

        n = 0

        List1.Clear

        Label5.Caption = “”

        Randomize

        Label1.Caption = Int(Rnd * 21)

        Label3.Caption = Int(Rnd * 21)

        c = Int(Rnd * 10) + 1

        If c Mod 2 = 0 Then

        Label2.Caption = “+”

        Else

        Label2.Caption = “-”

        End If

        If Label2.Caption = “-” Then

        Do While Val(Label1.Caption) < Val(Label3.Caption)

        Label3.Caption = Int(Rnd * 21)

        Loop

        End If

        Text1.SetFocus

        End Sub

        如果答題者想中止練習,可以單擊“結(jié)束答題”按鈕。結(jié)束答題的同時程序會給出答題的正誤情況及正確率?!敖Y(jié)束答題”按鈕(Command2)單擊事件過程代碼:

        Private Sub Command2_Click()

        Dim p As Single

        p = y / t * 100

        Label5.Caption = "共" & t & "道題," & "對了" & y & "道題,錯了" & n & "道題。" & "正確率" & p & "%"

        Label1.Caption = “”

        Label3.Caption = “”

        End Sub

        如果答題者想停止練習,可以單擊“結(jié)束程序”按鈕,“結(jié)束程序”按鈕(Command3)代碼:

        Private Sub Command3_Click()

        End

        End Sub

        答題者輸入完答敲回車鍵表示提交答案。輸入答案和敲回車鍵都是按鍵的動作,所以用到文本框的按鍵事件過程。那么按鍵的動作是在輸入答案還是結(jié)束答題呢?就要看答題者按的是否是“回車”鍵,鍵盤上的每一個鍵對應的都有編碼,回車鍵的編碼是13,所以我用if語句判斷被按下鍵的編碼是否是13,如果是13,再判斷答案是否正確,如果答正確就把各標簽及文本框的內(nèi)容連接成一個字符串最后再串上"√",否則在最后串上”×”。t表示答題總數(shù),y表示答對的題數(shù),n表示答錯的題數(shù),每完成一道題,答題的總數(shù)就t加上1,如果答對了y的值就加上1,如果答錯了n的值就加上1。由于此題已完成,所以要緊接著隨機出下一道題,這部分代碼和“開始答題”按鈕的出題部分代碼相同。文本框的按鍵事件過程代碼:

        Private Sub Text1_KeyPress(KeyAscii As Integer)endprint

        If KeyAscii = 13 Then

        If Label2.Caption = “+” Then

        If Val(Label1.Caption) + Val(Label3.Caption) = Val(Text1.Text) Then

        List1.AddItem Label1.Caption & Label2.Caption & Label3.Caption & "=" & Text1.Text & "√"

        y = y + 1

        Else

        List1.AddItem Label1.Caption & Label2.Caption & Label3.Caption & “=” & Text1.Text & “×”

        n = n + 1

        End If

        Else

        If Val(Label1.Caption) - Val(Label3.Caption) = Val(Text1.Text) Then

        List1.AddItem Label1.Caption & Label2.Caption & Label3.Caption & "=" & Text1.Text & "√"

        y = y + 1

        Else

        List1.AddItem Label1.Caption & Label2.Caption & Label3.Caption & “=” & Text1.Text & “×”

        n = n + 1

        End If

        End If

        Text1.Text = “”

        Randomize

        c = Int(Rnd * 10) + 1

        If c Mod 2 = 0 Then

        Label2.Caption = “+”

        Else

        Label2.Caption = “-”

        End If

        Label1.Caption = Int(Rnd * 21)

        Label3.Caption = Int(Rnd * 21)

        If Label2.Caption = “-” Then

        Do While Val(Label1.Caption) < Val(Label3.Caption)

        Label3.Caption = Int(Rnd * 21)

        Loop

        End If

        t = t + 1

        End If

        End Sub

        非常感謝老師帶領(lǐng)學生認真學習了這門課,讓筆者對Visual Basic程序設計有了初步的認識。由于筆者學習Visual Basic編程時間不長,水平有限,對很多知識還沒有掌握,可能程序還有需要改進的地方,筆者會在以后的學習中繼續(xù)努力。希望筆者設計的這個程序能夠幫助到需要的人。

        參考文獻

        [1]信息技術(shù)(選修1算法與程序設計)[M].上海:上??萍冀逃霭嫔?,2017.

        [2]沈祥玖.VB程序設計[M].2版,北京:高等教育出版社,2003.endprint

        国偷自产一区二区免费视频| 久久久久欧洲AV成人无码国产 | 日本啪啪视频一区二区| 日本强伦姧人妻一区二区| 久久精品丝袜高跟鞋| 亚洲av无码av男人的天堂| 国产日产精品久久久久久| 久久91精品国产91久| 日韩亚洲一区二区三区在线| 一 级做人爱全视频在线看| 国产精品三级在线观看无码| 亚洲精品无码高潮喷水在线| 国产啪精品视频网给免丝袜 | 亚洲人成网站色7799| 亚洲国产另类久久久精品黑人| 亚洲午夜福利精品久久| 宅宅午夜无码一区二区三区| 日本免费大片一区二区三区| 不卡av网站一区二区三区| а天堂中文最新一区二区三区| 国产特级毛片aaaaaaa高清| 成 人 网 站 免 费 av| 久久精品中文字幕极品| 狼人狠狠干首页综合网| 女女同女同一区二区三区| 国产精品无码一区二区在线观一| 美女大量吞精在线观看456 | 久久久精品免费观看国产| 亚洲情精品中文字幕有码在线| 男奸女永久免费视频网站| 又大又紧又粉嫩18p少妇| 国产午夜精品电影久久| 亚洲av午夜福利一区二区国产| av在线高清观看亚洲| 免费视频爱爱太爽了| 欧美成人三级网站在线观看| 成人全视频在线观看免费播放| 免费看黄视频亚洲网站| 老师开裆丝袜喷水视频| 一本大道色婷婷在线| 亚洲AV无码久久久一区二不卡 |