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