Visual Basic面向對象程序設計
[日期:2019-03-18] | 作者:信息技術 次瀏覽 | [字體:大 中 小] |
Visual Basic面向對象程序設計
一、活動背景:
程序設計是當今信息技術產業高速發展的基礎和源動力,已經高度滲透與融合到國民經濟和社會發展的每個領域,其技術水平和發展規模已成為衡量一個國家產業競爭力和綜合國力的重要標志之一。程序設計可以培養學生嚴謹數理思維,挖掘潛力。優質生和特長生通過程序設計提高了思維能力和解決問題的能力,參加程序設計競賽。程序設計也是計算機科學核心,現有信息技術課程,以多媒體應用、圖形化為主,不能體現計算機科學核心。信息技術擁有有自己的學科體系,課程不能以“工具”為中心,要回歸其本質“計算科學”,程序設計直接體現“計算科學”,中小學信息技術課開設程序是重要的一環?,F代學生的信息接觸面已經越來越廣闊,適當的了解程序設計,學習基本的程序開發,不僅有助于學生幫助了解社會的發展,提升對人類文明的認識。更是培養其對高新科技濃厚興趣的有效途徑之一。
雙流中學實驗學校實施“以課程改革為核心的素質教育”,其核心是促進學生個性化學習,培養學生綜合實踐能力,《Visual Basic程序設計》課程的開發與實施,應運而生。Visual Basic是微軟公司推出的面向對象編程工具,它也是基于Windows操作系統可視化編程環境。Visual Basic是極具特色和功能強大的程序設計軟件。主要表現在:所見所得的界面設計,基于對象的設計方法,把程序和數據封裝起來作為一個對象,每個對象都是可視的,同時,具有較易維護的代碼。是程序設計教學的良好載體。
經過了一學期的Visual Basic程序設計學習,學生學習了VB集成開發環境和VB語言的簡單語法基礎;會使用VB的窗體、VB標簽、文本框、命令按鈕、以及單選框等控件,同時掌握了這些控件的基本屬性設置及訪問方法;學習了VB常見變量類型及定義方式、數學運算、布爾運算、賦值語句、分支語句、循環語句等基礎語句及其流程;能夠編寫和調試簡單的Visual Basic程序。
二、 活動目標:
通過Visual Basic(以下簡稱VB)程序設計匯報活動,讓學生探究VB語言的編程算法規則,體驗VB程序設計語言的設計過程。培養學生初步用VB語言設計短小應用程序的能力。
通過該課程的學習,使學生了解算法和程序設計在解決實際問題中的地位和作用。培養學生的算法思維能力,使學生能利用學過的算法和VB語言解決生活和學習中碰到的一些簡單問題。隨著學習深入,能夠設計出有一定實用價值的程序,讓計算“聽”自己的話,按自己的意圖運行。
讓學生感悟程序設計思想,體驗程序設計過程,發現計算機運行的原理和規律,激發學生進一步繼續學習的熱情。讓學生體驗程序中嚴謹的態度并養成良好的習慣。引導學生發現程序設計中的美如:程序實現效果的美、算法代碼規律美、數學模型的結構美。讓學生的個性特長得到充分的展現和發展。
三、活動流程:
(一)導入新課
程序設計“大佬”介紹:比爾-蓋茨13歲開始學習編程,后創建微軟,成為世界首富。馬克-扎克伯格10歲開始學編程后來他創立了著名網站Facebook成了最年輕的億萬富翁。百度創始人李彥宏、騰迅創始人馬化騰、新浪創始人王志東、網易創始人丁磊、360創始人周鴻祎,小米創始人雷軍.....他們都有共同一個共同的起點—程序設計。
巨人是學習榜樣,是我們的目標,讓我們也一同走進Visual Basic程序設計。
經過大半學期的Visual Basic(VB)程序設計學習,我們學習了:
1、 了解了程序基本知識及常用程序設計語言;
2、 VB集成開發環境和VB語言的簡單語法基礎;
3、 會使用VB的窗體、VB標簽、文本框、命令按鈕、以及單選框等控件,同時掌握了這些控件的基本屬性設置及訪問方法;
4、 學習了VB常見變量類型及定義方式、數學運算、布爾運算、賦值語句、分支語句、循環語句等基礎語句及其流程;
5、 能夠編寫和調試簡單的Visual Basic程序。
同學們在學習過程中有什么想法或困惑,我們就請一些同學來展示他們的學習的過程,編程實例及相關經驗介紹。
(二)小組匯報
1、利用循環程序實現老鼠繁殖數量模擬。
小組成員:刁俊熙(7.3)、徐伊雯(7.3)、付敏(7.6)
(1)需求分析
老鼠作為“四害”之一 ,十分猖獗。其根本原因老鼠的繁殖能力十分驚人。老鼠的繁殖能力極強,如果讓雌、雄老鼠交配,母鼠21天就可以產下幼鼠。雄性幼鼠30天后就進入成年;雌性幼鼠40天以后就可以繁殖下一代。這些年輕的老鼠又會接連不斷地生下幼鼠,生下幼鼠后,在6-10小時內又可進行交配,懷下另一胎。這樣父母和子女同步生產,就像繁殖機器,使老鼠數量急劇增加。
一對成年老鼠若干月后究竟能繁殖多少后代呢?如果用實驗的方法來探究這個問題,那么,不管是時間成本、經濟成本還是環境成本……代價都是巨大的。所以我們不可能用真實的實驗來呈現老鼠的繁殖的規模!計算機模擬實驗無疑是這個問題是最佳解決方案。
(2)系統設計
界面及接口設計:通過輸入初始老鼠數量、繁殖時間等參數后計算機自動運行模擬計算出老鼠繁殖的總量。
模型設計:為了簡化數學模型我們先做以下假設:a)、一對老鼠每月繁殖一胎、平均6只。即:初生幼鼠數量=成年鼠/2 *6,(也可以簡化為:初生幼鼠數量=成年鼠*3)。 b)、初生幼鼠經歷三個月后長成年老鼠。c)、老鼠總量=幼鼠+成年鼠。
(3)程序編碼
a)變量的使用 對于不同月齡的老鼠數量用不同的變量表示。其中,初生幼鼠數量用變量n0、一月鼠n1、……成年鼠m。其中幼鼠變量的類型都為整形:Integer,成年鼠的數量有可能會非常龐大所以采用長整型:Long。b)賦值語句 老鼠的繁殖過程可以用賦值語句Let n0 = m / 2 * 6來實現;而老鼠的生長過程實現起來則要繁瑣一些需要幾條賦值語句同時使用:
Let m = n3 + m
Let n3 = n2Let n2 = n1Let n1 = n0而且賦值順序必須嚴格按照以上語句順序進行,否則就會由于賦值混亂造成數據覆蓋的嚴重后果!c)循環結構的使用 由于可以根據繁殖時間精確得出循環執行的次數所以我們采用FOR循環語句來模擬實現老鼠的繁殖和生長情況,具體語句如下:
For i = 1 To month Step 1
m = m + n3
n3 = n2
n2 = n1
n1 = n0
n0 = m * 3
Next i
最終老鼠的總量計算則由代碼LET m = m + n3 + n2 + n1 + n0實現。
(4)程序調試
為了驗證程序的執行效果,我們特意編排了一系列數據輸入進行測試:
a) 在程序中輸入下列數據:1、5、10、 30、0、99999、-5 ……;
b)在程序中輸入下列數據:a、B、Hello、“米老鼠”、“唐老鴨”……。經測試,程序對預期正常輸入數據能作出正確輸出,但對非法輸入會報類型錯誤;超大數據則會溢出。
針對這種情況,我們對程序進行了以下完善:a、利用Val 、IsNumeric函數確保輸入的合法性;b、利用if語句和Msgbox提示用戶輸入有效數據;c、對界面進行了進一步的規范和美化。
(5)匯報答辯
由學生觀眾和匯報成員互動答疑(略)
(6)教師點評
老鼠繁殖數量模擬程序屬于計算機模擬實驗的范疇。所謂計算機模擬實驗是指:利用計算機模擬某種自然現象或實驗現象。很多實驗由于各種局限無法實施,如輻射因素、時間跨度、場地限制、危險系數……這時我們可以進行計算機模擬實驗。通過一系列觀察和推理過程建立它的數學模型;給定的模型條件下不斷調整其參數并進行模型修正。這種計算機模擬實驗也稱作“干式實驗”原子能實驗、生物遺傳實驗、經濟調控、氣象災害預報等領域有著廣泛的運用。
2、等差數列計算程序
小組成員:吳佳軒(7.20)、劉源炳(7.20)
(1)需求分析
高斯是德國著名的大科學家,高斯最著名的故事莫過于小學時計算1+2+3+...+100的值。當時高斯上小學,老師在班上出了這樣一道題,叫大家算。那個老師以為至少要20分鐘以后才會有答案,正想休息一下,誰知剛坐下高斯就說算出來了。老師很驚訝,問他怎么算的,他就說先算1+100=101,2+99=101,。。。這樣一共有50個101,因此1+2+3+……+100=5050從1一直加到100其實就是一個經典的等差數列求和的計算?;貞浧鹦W計算等差數列的情形無疑是很多同學的夢魘……
(2)系統設計
可以用VB程序求出任何等差數列的和,先用VB計算1到100的和
(3)程序編碼
Dim a, s, d, f, g As Integer Let d = Text1.Text Let f = Text2.Text Let g = Text3.Text For s = d To f Step g a = a + s Next s Let Text4.Text = a
(4)程序調試
Private Sub Command2_Click()Dim tuichu As Integertuichu = MsgBox("確定要退出嗎?", 1, "退出")If tuichu = 1 Then EndEnd Sub這樣就行了
(5)匯報答辯
由學生觀眾和匯報成員互動答疑(略)
(6)教師點評:在數學物理化學都有很多類似的數列的問題,雖然可以用數學的方法可以得出相應的計算方法,但是,如果要統計計算出相應的結果的話,則十分繁瑣。而計算機通過編程則可以高效快速的計算出結果,因此,在物理化學,軍事等高科技很多領域,采用計算機編程來計算結果已經必不可少。
3、簡易口算訓練程序
王智翔、龍威伍、羅博文(7.10)
(1)需求分析
口算訓練是大家從小學一直到中學數學學習的必修課。我們每一個人都不厭其煩地做了無數道的口算練習、數學老師也孜孜不倦的批改了更多的口算,為了提高計算能力,大家可以說在這方面不斷重復花費了太多太多的精力……能否利用計算機來輔助我們提高自己的計算能力呢?答案是肯定的。
首先,我們需要隨機生成一道口算加減法算式。用戶回答后計算機判斷正誤并作出相應提示,用戶單擊“繼續”后自動生成新的算式。
(2)系統設計
為了優化系統界面,我們運用了Label標簽進行提示并判斷計算的正誤。同時運用了一些激勵性話語進行評價。TextBox作為口算答案的輸入框,但是TextBox的內容為文本類型,因此在判斷答案正誤時需要結合Val函數的使用才能比較。命令按鈕CommandButton則是分別作為調用新算式生成過程以及判斷正誤過程的觸發按鈕。
(3)程序編碼
a) Rnd函數和Int函數的使用。 使用Rnd函數可以產生0~1之間的隨機數。所以乘以100就變成了 1~100之間的隨機數。Int函數則可以把隨機數的小數位裁掉,即取整函數。
Let a1= Int (Rnd*100) b) 計算結果的判斷
If k = Val(Text1.Text) ThenLabel5.Caption = "正確,你真行!單擊“繼續”做下一題。"ElseLabel5.Caption = "錯了,要計算仔細哦!"Text1.Text = ""
End If
c) Randomize函數的使用。同一臺計算機使用Rnd函數每次生成的隨機數是一個相同的序列。Randomize語句可以改變這一情況,使隨機函數每次生成的隨機數都不同,從而讓口算算式題目更為隨機。
d) 如何實現加減法的隨機出現。為了讓算式中加減法隨機交替出現,我們又一次巧妙的運用了Rnd函數。具體代碼如下:
Let d = RndIf d > 0.5 Then Label2.Caption = "+" Let k = a + bElse Label2.Caption = "-" Let k = a - bEnd If
(4)程序調試
由于Val函數的使用,所以程序運行中沒有出現數據類型不匹配的問題。在減法算式中偶爾會出現結果為負數的情況,如果小學生用到這個程序就可能無法解答的問題。為了解決這個小Bug又加入了以下代碼:
If a < b Then
Let c = b
Let b = a
Let a = c
End If
這樣就再也不會出現結果為負數的情況了。
(5)匯報答辯
由學生觀眾和匯報成員互動答疑(略)
(6)教師點評:計算機輔助教學(Computer Aided Instruction 簡稱 CAI)是計算機運用中的一個重要領域。學生計算能力的培養是數學教學中的基石。這個口算訓練程序有著廣泛的運用前景,可以讓學生書包中的口算練習本全部“退休”!同時,也可以讓辛苦的數學老師從批改口算本的繁重工作中解放出來,是一個非常不錯的CAI程序。這個程序還可以進一步完善和優化:可以設定難度控制標志用于改變口算的難易程度,以覆蓋更為廣泛的學生群體。同時可以進一步加入乘數法的運算,讓程序的功能更加完善。
(三)教師總結
Visual Basic面向對象程序設計選修課已經成功的開設了一學期了,同學們在課堂中取得了豐碩的成果。但我們開設這門選修課的目標不是為了把大家培養成為一名將來的程序員。
1、 感悟程序設計思想
①抽象:從具體案例和實際問題中抽象出內在的數學模型。如:案例中老鼠的生長過程繁殖過程抽象為循環的過程;加減運算符號的隨機轉換為隨機數大小的判斷…… ②算法:同一現象可能會演變為不同的程序模型,程序的算法實現也將衍生出不同的版本。我們需要對比不同算法的實現難度、簡繁程度、執行效率等作出選擇。 ③角色轉變:程序設計要求我們學會從計算機的角度思考問題。例如:從一系列數據中找出最大數,從人類的角度出發,這個問題十分簡單。人運用了眼睛、大腦結合比較,具體思維過程一閃而過。而計算機就不同了它面對這些數據就像盲人摸象……所以這就要求程序設計者能夠從截然不同的角度分析問題解決問題。
2、 體驗程序設計過程
現實需求→建立模型→算法語言實現→調試→完善求精
這是一個完整的程序設計需要經歷的過程,同時這也完全符合我們完成某項工作任務的具體流程。而且這個過程更為規范、嚴謹、完善。
3、 感受跨學科的學習環境
在Visual Basic程序設計中全英文的編程環境、數學思維與模型的構建、物理學科知識的支撐……為大家構建了一個自然的跨學科學習環境。 4、態度與習慣的形成
嚴謹的態度包括:模型建立嚴謹、算法嚴謹、語法嚴謹、……良好的習慣是程序設計的基本要求:變量聲明的習慣、賦值的習慣、調試的習慣…… 5、發現程序設計中的美
程序設計中的美包括:程序實現效果的美、算法代碼規律美、數學模型的結構美……