陳正光
在初中《信息技術(shù)》(福建教育出版社,《信息技術(shù)》教材編寫組編著)八年級上冊中,其中第二單元“VB程序設(shè)計基礎(chǔ)”介紹了VB的開發(fā)環(huán)境和有關(guān)基礎(chǔ)知識,初步體驗了順序、分支和循環(huán)結(jié)構(gòu)的程序設(shè)計,讓學(xué)生深刻體會到了可視化程序設(shè)計的一般過程。下面介紹本人在平時教學(xué)過程中對VB程序設(shè)計的一些體會和做法。
一、教材中有一個“電視歌手大獎賽評分”程序設(shè)計,題目是這樣的:在電視歌手大獎賽中,經(jīng)常有10個評委為參賽選手打分,分?jǐn)?shù)為1到10分。選手的得分為去掉一個最高分和一個最低分后其余8個分?jǐn)?shù)的平均值。請你編寫一個程序,當(dāng)用戶點擊“開始”按鈕后,程序?qū)⑻崾据斎敫鱾€評委的打分,輸入一個并在列表框中顯示一個打分,最后在列表框輸出去掉的最高分、最低分以及最后得分。
我們可以對教材中的“電視歌手大獎賽評分”程序設(shè)計進(jìn)行拓展引伸,設(shè)計出比較智能多用途的程序?,F(xiàn)介紹如下。
1.程序界面設(shè)計
新建一個標(biāo)準(zhǔn)exe工程,添加如表1所示的控件,并設(shè)置控件相應(yīng)的屬性。(見附圖1)
表1 “時鐘的時針和分針重合的問題”程序用到的控件及其屬性說明
2.算法分析
①請輸入這次大獎賽的滿分分?jǐn)?shù)(如10分或100分)以及評委的人數(shù),賦值給系統(tǒng)的公共變量public_min和public_i。這里要求事先定義好這兩個系統(tǒng)公共變量。
系統(tǒng)公共變量的定義方法:單擊“工程”菜單,選擇“添加模塊”命令,在“Module1”框中輸入Public public_min As Single和 public_i As Single即可。
②輸入各評委的評分并計算。如果輸入的數(shù)值超過事先輸入的滿分的值,系統(tǒng)則提示:“出錯啦,分?jǐn)?shù)超出范圍。”在這里用到了For …Next循環(huán)語句、輸入函數(shù)InputBox(提示信息,標(biāo)題,默認(rèn)值,位置)和輸出函數(shù)MsgBox“”。
③輸出。去掉一個最高分和一個最低分后其余分?jǐn)?shù)的平均分。
3.編寫事件過程
由于在“大獎賽評分系統(tǒng)”程序中用戶單擊“請先輸入滿分和評委人數(shù)”按鈕后,開始讀入滿分分?jǐn)?shù)和評委人數(shù),因此:
⑴在“Command1”的“Click”事件過程中程序代碼如下:
Private Sub Command1_Click()
public_min = Val (InputBox("請輸入本次大賽的滿分分?jǐn)?shù)", "輸入滿分分?jǐn)?shù)"))
public_i = Val (InputBox("請輸入本次大賽的評委人數(shù)", "輸入評委人數(shù)"))
End Sub
⑵ 在“Command2”的“Click”事件過程中程序代碼如下:
Private Sub Command1_Click()
Dim max As Single, min As Single, score As Single, sum As Single
Dim i As Single
List1.Clear ‘列表清空
max = 0
min = public_min
sum = 0
ii = public_i
For i = 1 To ii
‘輸入第i個評委的打分
score = Val (InputBox("請輸入第" & i & "?個評委的打分", "輸入分?jǐn)?shù)"))
‘將第i個評委的分?jǐn)?shù)加入列表
If score <= public_min Then
List1.AddItem ("評委" & i & "£o " & score)
If score > max Then max = score
If score < min Then min = score
sum = sum + score
Else
MsgBox "出錯啦,分?jǐn)?shù)超出范圍"
Exit Sub
End If
Next i
將“去掉一個最高分:”與max的值連接成字符串添加到List列表框中
List1.AddItem ("去掉一個最高分:o" & max)
List1.AddItem ("去掉一個最低分:o" & min)
List1.AddItem ("選手最后得分o" & (sum - max - min) /(ii - 2))
End Sub
⑶在“Command3”的“Click”事件過程中程序代碼如下:
Private Sub Command3_Click()
End
End Sub
二、下面針對教材的第103頁和第107頁的“創(chuàng)新活動”中的問題給出比較詳細(xì)的程序編寫過程。
㈠教材第103頁“創(chuàng)新活動”的問題:在12小時制的時間中,在鐘表正常走動的時候,有多少個時針和分針重合的位置?它們分別表示什么時刻(精確到秒即可)?
請編寫一個界面如附圖2所示的“時鐘的時針和分針重合的問題”程序,單擊“開始計算”按鈕,程序計算并顯示出答案,單擊“退出”按鈕,結(jié)束程序運行。
1.程序界面設(shè)計
新建一個標(biāo)準(zhǔn)exe工程,添加如表2所示的控件,并設(shè)置控件相應(yīng)的屬性。