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