資源簡介 VB教參第1單元 初級瑪麗單元概述本單元是VB程序設計學習初始內容,教材從學生玩游戲的興趣為著眼點,引入VB課程內容的學習。引導學生對以往游戲對象中動作的實現方法進行探索、研究和學習。從而提高學生學習的興趣。本單元通過“絢麗舞臺”、“昂首闊步”、“行走天涯”和“操控自如”四課內容,介紹了使游戲對象移動、墜落、跳躍等動作的實現方法。在介紹這些方法時教材力圖在教學中使學生理解對游戲過程進行動作分解、合成的程序設計思路。學習目標了解VB界面的基本功能,掌握基本操作方法。了解控件、對象、屬性、事件和事件過程的概念。學會用時鐘控件控制對象的移動。學會常用控件屬性的設置。學會調試程序。重點難點重點:學會VB程序設計的基本步驟。體會程序設計過程中分解、合成的程序設計思想。難點:對控件、對象、屬性、事件和事件過程的理解。對程序調試能力的培養。學時安排第1課 絢麗舞臺 1課時第2課 昂首闊步 1課時第3課 行走天涯 1課時第4課 操控自如 2課時第1課 絢麗舞臺本課教學目標了解、熟悉Visual BASIC 6.0集成開發環境。學會游戲窗體界面背景和前景的設計。學會用時鐘控件控制操作對象的移動。通過瑪麗移動的程序設計,了解程序設計的基本過程。教材分析本課是程序設計的第一課,教材中通過本單元的單元頁,使學生了解程序設計課程是信息技術課程學習的深入,是從應用角色到開發角色的轉換,教材力圖通過本單元游戲程序設計的學習建立學生學習程序設計的積極性,明確程序設計學習的必要性。教學設計與教學建議(含課前準備) 為了提高學生學習程序設計的興趣,可以在本課教學中演示一些簡單游戲程序和簡單應用程序的運行效果,例如可以演示一下本教材提供的學習資源,即可使學生提高學習興趣也可以是學生了解本課程學習后他們可能設計出程序,以此拓展學生學習過程中的創造性思維設計出更多、更好的應用程序。本課因為是程序設計的第一課,需要學生對VB的操作界面有所了解。由于本課教材涉及的基本知識較多,盡管難度都不大,但是占用的篇幅較大,因此本課沒能涉及具體的編程任務。而要讓學生了解界面上的功能,熟悉這些基本操作,就要讓學生在本課中通過一個簡單程序的設計全過程熟悉界面上的功能,體會用VB設計程序的一般步驟。為此建議將第2課中關于“瑪麗自動行走”的任務提前到本課中來學習。教學資源(或稱補充資料)上機資料:任務1:讓操作對象瑪麗自左向右自動移動。步驟1:設計窗體背景(游戲背景)步驟2:設計窗體前景Image1(瑪麗圖像)步驟3:在窗體上添加時鐘對象Timer1步驟4:在Timer1的屬性窗口設置Interval的屬性值為100步驟5:在代碼窗口設計以下關于Timer1的事件過程第2課 昂首闊步(一)本課教學目標學會用時鐘控件控制對象的自動移動。學會設置時鐘的時間間隔屬性Interval。學會設置對象的位置屬性Left、Top。學會對象屬性的靜態設置和動態設置。(二)教材分析本課是提出了本教材的第一個需要編寫程序的任務,時鐘控件也是學生學習的第一個控件,由時鐘控件生成的對象需要設置時間間隔Interval屬性,由圖像控件生成的對象需要設置圖像Image1的位置屬性,窗體也需要設置其標識Caption屬性。所以在了解控件概念的基礎上,對象的屬性設置是本節課的重點學習內容。(三)教學設計與教學建議(含課前準備)在屬性窗口靜態設置屬性的方法和設置動態屬性應該是本課學習的重點內容,在程序中做動態屬性設置時要用到賦值的概念,應讓學生知道賦值與相等的不同含義。建議本課簡單介紹任務完成的過程,給學生多一些上機實踐的時間,在上機過程中要鍛煉學生獨立調試程序的能力。(四)教學資源(或稱補充資料)上機步驟:(要求學生按照步驟順序完成上機任務)1.讓雷電界面中的飛機向左自動移動。2.修改1讓雷電界面中的飛機向右自動移動。3.修改1讓雷電界面中的飛機向上自動移動。4.修改1讓雷電界面中的飛機向左上自動移動5.將瑪麗放到懸崖外側,修改1使的瑪麗向下移動,墜入懸崖。6.在窗體中再設置一個計時器和一個標簽框(Label),并在標簽框中顯示(修改Caption屬性)“歡迎來玩初級瑪麗游戲”,如圖所示,修改程序用添加的計時器控制移動標簽框,顯示動態文字信息。第3課 行走天涯(一)本課教學目標1.學會根據需要用條件判斷語句編寫程序。2.學會設置對象的大小屬性。3.掌握游戲動作的分解、合成的設計、調試方法。(二)教材分析教材通過對瑪麗游戲程序完善的需求,引入了條件語句的控制。教材針對瑪麗移出窗體左邊界時的位置狀態,提出了對象大小屬性的設置需求。教材用一個時鐘對象控制瑪麗的直行,用另一個時鐘對象控制瑪麗在懸崖的墜落,引入了瑪麗直行到懸崖時墜落的兩個動作合成的編程需求。(三)教學設計與教學建議(含課前準備)建議在本課的學習過程中,首先引導學生通過語言描述瑪麗移出窗體左邊界時的位置狀態,然后引導學生描述瑪麗處于移出窗體邊界與否所要作出的動作,最后根據描述給出條件判斷語句的程序代碼。建議在編寫瑪麗懸崖墜落的程序代碼時,首先通過屬性窗口令控制直行的時鐘的Enabled屬性值處于可用狀態,令控制墜落的時鐘Enabled屬性值處于不可用狀態。待程序運行過程中判斷出瑪麗處于懸崖外側時,改變兩個時鐘Enabled的屬性值,從而實現直行動作到墜落動作的轉變。(四)教學資源(或稱補充資料)上機步驟:1.修改“左出右進”的程序,使瑪麗按“右出左進” 的方式移動。參考程序:Private Sub Timer1_Timer() If Image1.Left > Form1.Width Then '如果對象到左邊框的距離大于窗體的寬 Image1.Left = 0 '則讓對象到左邊框的距離為0 Else Image1.Left = Image1.Left + 100 '否則讓對象到左邊框的距離加100 End IfEnd Sub2.修改雷電程序,使小飛機按“上出下進”的方式移動。參考程序:Private Sub Timer1_Timer() If Image1.Top < -Image1.Height Then '如果對象到上邊框的距離小于對象高的相反數 Image1.Top = Form1.Height '則讓對象到上邊框的距離為窗體的高 Else Image1.Top = Image1.Top – 100 '否則讓對象到上邊框的距離減100 End IfEnd Sub3.修改雷電程序,使小飛機在窗體邊寬內左右移動(移到左邊框時向右邊框移動,移到右邊框時向左邊框移動)。 參考程序:Private Sub Timer1_Timer() '向左移動的時鐘控制 If Image1.Left <= 0 Then '如果對象到左邊框的距離小于等于0 Timer1.Enabled = False '則向左移動的時鐘不可用,向右移動的時鐘可用 Timer2.Enabled = True Else Image1.Left = Image1.Left - 100 '否則讓對象到左邊框的距離減100 End IfEnd SubPrivate Sub Timer2_Timer() '向右移動的時鐘控制 If Image1.Left >= 3840 Then '如果對象到左邊框的距離大于等于3840 Timer2.Enabled = False '則向右移動的時鐘不可用,向左移動的時鐘可用 Timer1.Enabled = True Else Image1.Left = Image1.Left + 100 '否則讓對象到左邊框的距離加100 End IfEnd Sub第4課 操控自如(一)本課教學目標1.學會用鍵盤控制對象的動作。2.體會具有多個時鐘控制的應用程序的編寫和調試過程。3.通過游戲程序多個動作的分解與合成提高調試程序的能力。(二)教材分析本課是在前3課的基礎上來完善游戲程序的功能的,所以前面幾課是本課學習的基礎。本課中新的知識點主要體現在用鍵盤控制游戲對象的動作上,即鍵盤控制事件的應用上。本課要完成的瑪麗越崖任務中還會用邏輯判斷,以判斷瑪麗是否落入懸崖,所以在條件語句中使用邏輯式也是本課新的學習應用。(三)教學設計與教學建議(含課前準備)本課中會用到四個時鐘和一個鍵盤事件來控制游戲動作,所以搞清楚它們之間的關系是完成整個任務的關鍵,所以對它們之間的關系流程的理解就顯得非常重要。如果用語言描述它們的關系,可表達如下:左出右進的“行走”過程中如果遇到按下空格鍵則瑪麗“跳起”到一定的高度后“落下”,如果“跳起”慢了或“落下”早了,即瑪麗置身于兩崖之間,瑪麗都會墜入懸崖,否則瑪麗會繼續以左出右進的行走方式繼續“行走”。根據以上描述可設置各時鐘不同狀態下的Enabled屬性,正確實現幾個動作之間的轉換和銜接。教材中還通過對直行過程中瑪麗行走動作的優化,讓學生學習了對象的可見性屬性Visible的設置,本單元學生實踐了一個簡單游戲程序的開發過程。對于提高學生編程、調試能力都有一定的好處,游戲帶給學生快樂,游戲的開發帶給學生成就感,會使學生進一步提高學習的興趣。(四)教學資源(或稱補充資料)上機練習參考答案:1. 修改瑪麗行走的程序,使瑪麗能“蹦跳行走”。上機練習參考答案:Dim aPrivate Sub Form_KeyPress(KeyAscii As Integer) '單擊鍵盤的事件過程 Rem 按空格鍵起跳 If KeyAscii = 32 Then '是否按下空格鍵 Timer3.Enabled = True '跳起計時器可用 Timer1.Enabled = False '行走計時器不可用 Image1.Visible = True '邁步瑪麗圖像可見 Image2.Visible = False '直立瑪麗圖像不可見 Else Image1.Left = Image2.Left '直立瑪麗和邁步瑪麗重合 Image1.Visible = True '邁步瑪麗圖像可見 Image2.Visible = False '直立瑪麗圖像不可見 Timer1.Enabled = True '行走計時器可用 End IfEnd SubRem 瑪麗行走Private Sub Timer1_Timer() '直行 a = Image1.Left '瑪麗到左邊框的距離 If a > 3960 And a < 4680 Then '瑪麗處于懸崖范圍的判斷 Timer1.Enabled = False '行走計時器不可用 Timer2.Enabled = True '墜落計時器可用 Image2.Visible = True '直立瑪麗圖像可見 Image1.Visible = False '邁步瑪麗圖像不可見 Else If Image2.Visible = True Then '可見性判斷 Image2.Visible = False '直立瑪麗圖像不可見 Image1.Visible = True '邁步瑪麗圖像可見 Else Image1.Visible = False '邁步瑪麗圖像不可見 Image2.Visible = True '直立瑪麗圖像可見 End If Image1.Left = Image1.Left – 200 '邁步瑪麗左移 Image2.Left = Image2.Left – 200 '直立瑪麗左移 End IfEnd SubRem 墜崖Private Sub Timer2_Timer() '墜落 Image2.Top = Image2.Top + 150 '直立瑪麗墜落End SubRem 瑪麗跳起Private Sub Timer3_Timer() If Image1.Top > 3200 Then Image1.Left = Image1.Left - 150 '向左移動 Image1.Top = Image1.Top - 100 '向上移動 Else Timer3.Enabled = False '跳起計時器不可用 Timer4.Enabled = True '落下計時器可用 End IfEnd SubRem 瑪麗落下Private Sub Timer4_Timer() If Image1.Top <= 3550 Then Image1.Left = Image1.Left - 150 '向左移動 Image1.Top = Image1.Top + 80 '向下移動 Else a = Image1.Left '瑪麗到左邊框的距離 Image2.Left = Image1.Left '直立瑪麗和邁步瑪麗重合 Timer4.Enabled = False '落下計時器不可用 If a > 3960 And a < 4680 Then '瑪麗處于懸崖范圍的判斷 Image2.Visible = True '直立瑪麗圖像可見 Image1.Visible = False '邁步瑪麗圖像不可見 Timer2.Enabled = True '墜落計時器可用 Else Timer1.Enabled = True '行走計時器可用 End If End IfEnd SubPrivate Sub Form_Click() '單擊窗體恢復游戲初始運行狀態 Image1.Left = 7800 '邁步瑪麗到左邊框的初始位置 Image2.Left = 7900 '直立瑪麗到左邊框的初始位置 Image1.Top = 3550 '邁步瑪麗到上邊框的初始位置 Image2.Top = 3550 '直立瑪麗到上邊框的初始位置 Timer1.Enabled = True '行走計時器可用 Timer2.Enabled = False '墜落計時器不可用 Timer3.Enabled = False '跳起計時器不可用Timer4.Enabled = False '落下計時器不可用 a = Image1.Left '瑪麗到左邊框的距離End Sub2. 編程,使分別按下小寫a、d、w、s鍵時飛機分別向左、右、上、下移動,如圖4.7所示。上機練習參考答案:Private Sub Form_KeyPress(KeyAscii As Integer) Rem 按a鍵左移 If KeyAscii = 97 Or KeyAscii = 65 Then Image2.Left = Image2.Left - Image2.Width End If Rem 按d鍵右移 If KeyAscii = 100 Or KeyAscii = 68 Then Image2.Left = Image2.Left + Image2.Width End If Rem 按w鍵上移 If KeyAscii = 119 Or KeyAscii = 87 Then Image2.Top = Image2.Top - Image2.Width End If Rem 按s鍵下移 If KeyAscii = 115 Or KeyAscii = 83 Then Image2.Top = Image2.Top + Image2.Height End IfEnd Sub上機參考資料:按下a鍵左移的部分程序Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 97 Then '按a鍵則 '左移 End IfEnd Sub 鍵盤字符ASCII碼(部分) 按鍵 大寫 小寫 方向 A 65 97 左 D 68 100 右 W 87 119 上 S 83 115 下空格 32條件判斷中的“或”判斷KeyAscii = 97 or KeyAscii = 65左移至左邊框Private Sub Form_KeyPress(KeyAscii As Integer) Rem 按a鍵左移直至左邊框 If KeyAscii = 97 And Image1.Left > 0 ThenImage1.Left = Image1.Left - 100 End IfEnd Sub條件判斷中的“與”判斷 KeyAscii = 97 And Image1.Left > 0第2單元 初露鋒芒單元概述本單元通過“圖文并茂”、“百變文字”、“喜迎國慶”、“涂鴉王國”四課內容,介紹了“命令按鈕”、“標簽框”、“單選按鈕”、“復選框”、“圖片框”等控件的屬性和使用方法,用“鼠標事件”編寫啦鼠標控制的小應用程序。在本單元中,通過對程序代碼的編寫,學習、應用并體會了程序的循環結構和分支結構,學習了循環語句(For/Next語句)、多分支語句(Select Case語句)的用法;認識了VB中的方法,并實際體驗了Circle、Line、Scale等方法的具體應用。學習目標學習命令按鈕、單選按鈕、圖片框、復選框、框架等控件的使用方法。進一步理解對象的屬性。了解用LoadPicture()函數載入圖片的方法。了解變量的含義,掌握定義布爾變量的方法,了解靜態變量的特點。了解VB程序中語句的書寫規范。掌握創建控件數組的基本方法,了解控件數組的作用。了解Select Case語句的功能和應用,掌握循環語句For/Next的功能和應用。理解程序的分支結構和循環結構。理解用Scale方法改變VB中的坐標系的方法。掌握用Line方法畫線、用Pset方法畫點。學會RGB函數的功能和使用方法。學習鼠標的抬起和落下事件,并能夠進行簡單編程。了解窗體的Form_Load事件。重點難點重點:學習標簽、命令按鈕、單選按鈕、圖片框、復選框、框架等控件的使用方法。了解變量的含義,掌握定義布爾變量的方法,了解靜態變量的特點。掌握創建控件數組的基本方法,了解控件數組的作用。了解Select Case語句的功能和應用,掌握循環語句For/Next的功能和應用。理解程序的分支結構和循環結構。掌握用Line方法畫線、用Pset方法畫點。學習鼠標的抬起和落下事件,并能夠進行簡單編程。 難點:了解用LoadPicture()函數載入圖片的方法。學會RGB函數的功能和使用方法。了解變量的含義,掌握定義布爾變量的方法,了解靜態變量的特點。掌握創建控件數組的基本方法,了解控件數組的作用。掌握循環語句For/Next的功能和應用。理解程序的分支結構和循環結構。理解用Scale方法改變VB中的坐標系的方法。了解隨機函數及其使用方法。學時安排第5課 圖文并茂 1課時第6課 百變文字 1課時第7課 喜迎國慶 1課時第8課 涂鴉王國 2課時第5課 圖文并茂本課教學目標掌握命令按鈕及其Click事件的用法。掌握標簽的常用屬性設置方法以及用法。理解對象的名稱屬性和Caption屬性的異同,掌握程序中更改Caption屬性的方法。了解用LoadPicture()函數載入圖片的方法。了解變量的含義,掌握定義布爾變量的方法,了解靜態變量的特點。了解VB程序中語句的書寫規范。教材分析通過本節課的學習讓學生在完成任務的過程中,加深對編寫VB程序過程的了解。任務中使用到了標簽、圖像框、命令按鈕和計時器控件。在學生使用這些控件的過程中,教師應幫助學生理解這些控件在VB程序中能起到什么作用,又是怎么起作用的。本課中涉及到了使用LoadPicture()函數載入圖片的內容,教師一定要叮囑學生正確書寫圖片路徑,可使用絕對路徑,也可以借助App.path使用相對路徑。例題中涉及到的變量定義一定不能忽視,對于Static定義的靜態變量特點,學生會難以理解,教師可借助教材中的DIY幫助學生理解。教學設計與教學建議(含課前準備) 建議教師在本課講兩個任務,第一是命令按鈕控制字幕滾動,第二是命令按鈕控制更換圖片。 在任務一的講解過程中,建議教師通過演示例題效果,幫助學生回憶前面所學的知識,讓學生思考并說出可通過計時器控制標簽的位置,從而完成任務。 任務二中圖片素材的準備十分重要,要強調將 “天安門.jpg”和 “世博會.jpg”圖片存放于文件夾“第2單元5 圖文并茂”中。和學生一起先分析程序的功能,當鼠標單擊“切換圖片按鈕”后,顯示“天安門”圖片,再次鼠標單擊“切換圖片按鈕”后,顯示“世博會”圖片。可通過設置靜態布爾類型變量,單擊按鈕改變變量真值,從而控制輪換顯示圖片。在設置圖像框屬性時,最好先設置Stretch,再設置Picture屬性,以免圖片過大,不便調整。在設置對象的名稱屬性和Caption屬性時,學生會發現同一對象的這兩個屬性默認值是相同的,但屬性設置表中卻給它們分別賦予了不同的值,這樣引入名稱屬性和Caption屬性的異同。告訴學生載入圖片的函數LoadPicture(),由此講解LoadPicture()函數的用法,注意圖片文件使用絕對路徑”d:第二單元5圖文并茂天安門.jpg”。編寫代碼時,教師應告訴學生養成好習慣,每行語句要縮進幾格,盡量使用注釋語句。使程序既便于自己檢查又易于別人閱讀。教學資源(或稱補充資料)創作天地編程,用8個命令按鈕分別控制標簽框、圖像框等操作對象,朝上、下、左、右、左上、左下、右上、右下八個方向移動。圖5.1 命令按鈕控制標簽位置界面控件對象:在窗體上添加1個標簽、9個命令按鈕。屬性設置表表5-1 屬性設置表對象屬性名屬性值Form1(窗體1)Caption圖文并茂Label1(標簽框)Caption控制位置ForeColor黑色Font隸書、一號字Command1(命令按鈕1)Caption上···Command9(命令按鈕9)Caption退出程序代碼 Private Sub Command1_Click() '上 Label1.Top = Label1.Top - 200End SubPrivate Sub Command2_Click() '下 Label1.Top = Label1.Top + 200End SubPrivate Sub Command3_Click() '左 Label1.Left = Label1.Left - 200End SubPrivate Sub Command4_Click() '右 Label1.Left = Label1.Left + 200End SubPrivate Sub Command5_Click() '左上 Label1.Top = Label1.Top - 200 Label1.Left = Label1.Left - 200End SubPrivate Sub Command6_Click() '左下 Label1.Top = Label1.Top + 200 Label1.Left = Label1.Left - 200End SubPrivate Sub Command7_Click() '右上 Label1.Top = Label1.Top - 200 Label1.Left = Label1.Left + 200End SubPrivate Sub Command8_Click() '右下 Label1.Top = Label1.Top + 200 Label1.Left = Label1.Left + 200End SubPrivate Sub Command9_Click() '退出 EndEnd Sub編程,通過命令按鈕瀏覽搜集到的三張喜歡的圖片。圖5.2 瀏覽圖片界面控件對象:在窗體上添加1個標簽、1個圖像框和2個命令按鈕。屬性設置表表5-2 屬性設置表對象屬性名屬性值Form1(窗體1)Caption瀏覽圖片Label1(標簽框)Caption軍訓故事ForeColor黑色Font華文行楷、二號字Image1(圖像框1)Picture1.jpgStretchTrueCommand1(命令按鈕1)Caption下一張Command2(命令按鈕2)Caption退出程序代碼Private Sub Command1_Click()Static b As Integerb = b + 1If b = 1 Then Image1.Picture = LoadPicture(App.Path & "1.jpg")If b = 2 Then Image1.Picture = LoadPicture(App.Path & "2.jpg")If b = 3 Then Image1.Picture = LoadPicture(App.Path & "3.jpg"): b = 0End SubPrivate Sub Command2_Click() EndEnd Sub編程,將“電子字幕顯示屏”與“圖片顯示屏”合為一個任務。控件對象:在窗體上添加1個圖像框、1個標簽框、3個命令按鈕和1個計時器。屬性設置表表5-3 屬性設置表對象屬性名屬性值屬性說明Form1(窗體1)Caption圖文并茂窗體的標識Image1(圖像框1)Picture天安門.jpg導入天安門圖片StretchTrue圖隨框變Label1(標簽框)Caption構建和諧社會 創造美好未來BackColor黑色ForeColor黃色Font隸書、一號字Command1(命令按鈕1)Caption切換圖片按鈕命令按鈕的標識Timer1(計時器)EnabledFalse計時器不可用Interval200計時間隔程序代碼 Private Sub Command1_Click() Static b As Boolean b = Not (b) If b Then Image1.Picture = LoadPicture(App.Path & "天安門.jpg") Print App.Path Command1.Caption = "顯示世博會圖片" Else Image1.Picture = LoadPicture(App.Path & "世博會.jpg") Command1.Caption = "顯示天安門圖片" End IfEnd SubPrivate Sub Command2_Click() ‘標語移動按鈕 Timer1.Enabled = TrueEnd SubPrivate Sub Command3_Click() ‘標語暫停移動按鈕 Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer() If Label1.Left <= -Label1.Width Then Label1.Left = Form1.Width Else Label1.Left = Label1.Left - 200 End IfEnd Sub第6課 百變文字(一)本課教學目標熟悉單選按鈕、復選框和框架控件的基本使用方法。了解調整控件格式的方法。掌握創建控件數組的基本方法,了解控件數組的作用。了解Select Case語句的功能和應用。學會RGB函數的功能和使用方法。能獨立根據樣例設計簡單用戶界面,能獨立依據屬性設置表設置對象的屬性。(二)教材分析本課中重點難點內容如下:(1)框架的功能和使用方法是本課的重點。框架的功能是為控件分組。在框架中添加多個相同的控件就不能用直接在工具箱中雙擊的辦法了,那樣創建的控件都是在窗體上,而不是在框架中。我們可以按住Ctrl鍵同時單擊控件按鈕,可以在不重新選擇控件的情況下,添加同一類型的多個控件。(2)復選框的功能和使用方法是本課的重點。一組復選框可以同時選擇多個選項,有些書中也叫“選擇框”或“檢查框”。復選框的常用屬性就是其Value屬性,單選按鈕的Value屬性在第3課中已經講過,復選框的Value屬性與單選按鈕的Value屬性稍有不同,復選框是否被選中也可以從它的Value屬性值看出,如其值為1,則其被選中,如其值為0,則沒被選中,其值為2,復選框被置于不可選狀態(變灰狀態)。所以在程序中如果實現復選框未被選中、選中或置不可選狀態(變灰狀態),就可以為該控件的Value屬性值賦值為0、1或2。(3)創建控件數組的方法是本課的重點。控件數組是由一組相同類型的控件組成的,創建控件數組可以通過修改控件的名稱屬性值來創建,也可以用復制粘貼的方式直接創建控件數組,一組控件數組的名稱屬性是相同的,創建控件數組的同時系統賦予每個元素一個索引號(Index)。(4)Select Case語句的功能及應用是本課的重點也是難點。If語句和Select Case語句選擇結構的語句,要根據程序功能要求不同選擇合適的語句編程。If語句可以有兩個分支,如果用If語句實現多分支功能就要嵌套使用;Select Case語句直接可以實現多分支選擇。(三)教學設計與教學建議(含課前準備)教師可以帶著學生一起回憶,在以往使用的計算機應用軟件中經常會遇到設置文字字體、字號、字形等問題,今天我們就用VB編寫一個設置文字字體、字號、字形的小程序,給學生觀看樣例引入本課。為了學生能很快入手,告訴學生先來制作一個只具有設置字體功能的程序,根據教材圖例讓學生說出窗體上要添加的控件分別是什么、有多少個。學生可能會認為“百變文字”中顯示文字的控件是標簽,教師向學生解釋這里的控件是文本框,這樣引入文本框的功能及使用方法。讓學生自己設計用戶界面,根據教材中的屬性設置表來設置對象屬性,經過第一單元的學習,學生應該能夠達到根據樣例獨立創建用戶界面和根據屬性設置表設置對象屬性的能力。教師提出要增加“百變文字”的字號和字形功能,需要添加控件,為了便于分類,引入框架控件的功能和用法。讓學生思考“字形”中的粗體和斜體是可以同時選中的,所以制作“粗體”和“斜體”選項不能再使用單選按鈕了,引入復選框控件的功能和用法。程序中需要判斷單選按鈕或復選按鈕是否被選中,所以需要具有分支結構的語句來實現。前面學習過If語句可以完成此題,本課再學習一個新的選擇結構語句,引入Select Case語句的功能及應用。教師可以給出不使用控件數組的程序代碼作對比,這樣讓學生體會使用控件數組會簡化程序。(四)教學資源(或稱補充資料)1. 編寫如圖6.1所示的課程表程序。圖6.1 課程表的程序界面控件對象:在窗體上添加1個標簽、包含17個單選按鈕的控件數組和包含4個復選框的控件數組。屬性設置表表6-1 屬性設置表對象屬性名屬性值Form1(窗體1)Caption課表Label1(標簽框)Caption空OptionBotton1(單選按鈕1控件數組)Index 0…3Caption星期一···Frame1(框架1)Caption字體OptionBotton1(單選按鈕1控件數組)Index 4…7Caption宋體···Frame2(框架2)Caption字號OptionBotton1(單選按鈕1控件數組)Index 8…11Caption9···Frame3(框架3)Caption顏色OptionBotton1(單選按鈕1控件數組)Index 12…15Caption紅···Frame4(框架4)Caption字形CheckBox1(復選框1控件數組)Index 0…3Caption粗體···程序代碼Private Sub Check1_Click(Index As Integer) Label1.FontBold = Check1(0).Value '粗體 Label1.FontItalic = Check1(1).Value '傾斜 Label1.FontUnderline = Check1(2).Value '下劃線 Label1.FontStrikethru = Check1(3).Value '刪除線End SubPrivate Sub Option1_Click(Index As Integer) Select Case Index Case 0: Label1.Caption = "語文 數學 體育 英語 化學 音樂" Case 1: Label1.Caption = "數學 語文 英語 物理 信息技術 班會" Case 2: Label1.Caption = "數學 英語 地理 體育 美術 物理" Case 3: Label1.Caption = "英語 語文 數學 化學 政治 歷史" Case 4: Label1.Caption = "數學 英語 語文 化學 生物 物理" Case 5: Label1.Font = "宋體" Case 6: Label1.Font = "黑體" Case 7: Label1.Font = "幼圓" Case 8: Label1.Font = "隸書" Case 9: Label1.FontSize = 9 Case 10: Label1.FontSize = 14 Case 11: Label1.FontSize = 16 Case 12: Label1.FontSize = 20 Case 13: Label1.ForeColor = RGB(255, 0, 0) '紅色 Case 14: Label1.ForeColor = RGB(0, 255, 0) '綠色 Case 15: Label1.ForeColor = RGB(0, 0, 255) '藍色 Case 16: Label1.ForeColor = RGB(0, 0, 0) '黑色End SelectEnd Sub2.編寫“百變時裝”的程序,如圖6.2所示,為男孩選擇時裝。提示:單擊上衣按鈕給男孩穿上衣,單擊褲子按鈕給男孩穿褲子。設置有7個單選按鈕的控件數組和有7件衣褲的圖像框控件數組。利用兩個控件數組的下標對應關系,使用Select Case語句控制穿衣的功能。穿衣的語句,參見:Image3.Picture = Image1(0).Picture圖6.2 百變時裝的程序界面素材準備:將衣服、褲子素材圖片復制到“第二單元6百變時裝圖片”中。控件對象:在窗體上添加2個框架、1個命令按鈕,框架中分別添加單選按鈕控件數組和圖像框控件數組,在窗體上再添加3個圖像框。屬性設置表表6-2 屬性設置表對象屬性名屬性值Form1(窗體1)Caption百變時裝Frame1(框架1)Caption請選擇衣服OptionBotton1(單選按鈕1控件數組)Index 0…3名稱Option1Caption空···Image1(圖像框1控件數組)Index 0…3名稱Image1Pictrue選擇上衣···Frame2(框架1)Caption請選擇褲子OptionBotton2(單選按鈕1控件數組)Index 0…2Caption空···Image2(圖像框1控件數組)Index 0…2名稱Image2Pictrue選擇褲子···Image5(圖像框5)Pictrue選擇圖片Image3(圖像框3)Pictrue空Image4(圖像框4)Pictrue空Command1(命令按鈕1)Caption換衣服程序代碼Private Sub Command1_Click() Image3.Picture = Image1(Index).Picture '換上衣 Image4.Picture = Image5(Index).Picture '換褲子End Sub第7課 喜迎國慶(一)本課教學目標了解圖片框的功能及用法。了解圖片框與圖像框的區別。理解用Scale方法改變VB中的坐標系的方法。掌握用Line方法畫線。理解程序的循環結構。掌握循環語句For/Next。了解隨機函數及其使用方法。(二)教材分析本課中重點難點內容如下:(1)圖片框在本課中第一次出現,學生容易與圖像框混淆。圖片框可以顯示位圖、圖標以及JPEG 或 GIF 文件的圖形。如果控件不足以顯示整幅圖像,則裁剪圖像以適應控件的大小。為了使圖片框能夠自動調整大小以顯示整幅圖形,可將它的 AutoSize 屬性設置成 True。圖片框和窗體一樣是一個容器,其中可以再放置其它控件,也可以在其中輸入文字,繪制點、直線、圖形等,也可以改變它的坐標系,這一功能是圖像框達不到的。(2)用Line方法畫直線是本課的重點。畫線的格式:Line(x1,y1)—(x2,y2)[,顏色]說明:以(x1,y1)為起點(x2,y2)為終點畫直線。用Line方法還可以畫矩形,格式:Line(x1,y1)—(x2,y2)[,顏色][,B][F]說明:如果加上參數B,表示以(x1,y1)和(x2,y2)為對頂點畫空心矩形;如果同時再加上參數F,則表明畫一個實心矩形。(3)用Scale方法改變坐標系是本課的難點,學生不容易理解。VB中的坐標系和我們在數學中用到坐標系有些不同,如果能讓這個坐標系變化一下,與數學中的坐標系一樣,那樣會使我們在作圖和看圖時都會感到很方便。在講授Scale方法時,建議教師可讓學生在窗體激活事件(Activate事件)中或其它適宜事件中,畫兩條直線和一個點,代碼如下:Private Sub Form_Activate() PicHua1.Line (-1500, 0)-(1500, 0), RGB(255, 0, 0) PicHua1.Line (0, 1500)-(0, -1500), RGB(255, 0, 0) PicHua1.DrawWidth = 10 PicHua1.PSet (0, 0), RGB(0, 255, 0)End Sub運行程序,學生們會發現兩條線的交點上有個綠點,就是坐標原點(0,0),現在在此段程序前加一句話:PicHua1.Scale (-1500, 1500)-(1500, -1500)兩條直線的位置就是新的坐標系的坐標軸,綠點就是坐標原點。在讓學生修改Scale方法中的參數,改變新的坐標軸和坐標原點的位置,體會Scale方法的使用。(4)循環語句For/Next語句的使用是本課的重點也是難點。在使用循環時一定要先明確循環體,也就是哪一組操作需要重復執行;第二要查看是否有循環變量;第三要明確循環變量的初值和終值;第四要寫好步長值,也就是循環變量每次增加或減少多少,如果不寫步長值,則默認步長值為1;最后要查看For/Next語句書寫格式有沒有錯誤,哪里需要空格,哪里需要換行都不能有錯。(5)隨機函數Rnd的使用是本課的難點。Rnd 函數根據系統時鐘隨機返回一個小于1大于0的數值。200*Rnd將隨機產生一個(0,200)之間的數,200*Rnd+100隨機產生一個(100,300)之間的數。例:要產生(A,B)之間的一個隨機數。不包括A和B,A和B是不相等的兩個整數,且B大于A。(B-A)*Rnd+A(B-A)*Rnd+A就是一個(A,B)之間的一個隨機數。在VB程序中如果沒有Randomize函數,Rnd將使用第一次調用Rnd函數時的種子值產生的隨機數。為了使系統每次都改變隨機種子值,在調用Rnd函數前需要使用Randomize函數。(三)教學設計與教學建議(含課前準備)鑒于本課新知識比較多,教師可以直接給學生設計好用戶界面和設置好對象屬性的“半成品”給學生,這樣可以為本課重點難點的學習贏得時間。圖片框上的坐標系和窗體上的坐標系是一樣的,學生比較熟悉數學中的平面直角坐標系,能不能將VB中的坐標系轉換成我們熟悉的形式呢?提出問題,引入轉換坐標系Scale方法。繪制第一條線,繪制第二條線……,如果繪制很多條線,可以向學生提問,怎樣能簡便步驟呢?學生可能會回答復制粘貼。那么復制粘貼出來的代碼還是有很多行,篇幅很長又不易讀,告訴學生重復多次相似語句或相同語句的程序代碼我們可以用循環語句來寫,引入循環結構和循環語句。一個禮花燈制作好了,根據自己的學生實際情況,可以給學生布置制作多個禮花燈,練習鞏固剛才學習過的知識。(四)教學資源(或稱補充資料)1. 編程,用命令按鈕選擇在圖片框中畫基本圖形。控件對象:在窗體上添加6個命令按鈕和1個圖片框。屬性設置表表7-1 屬性設置表對象屬性名屬性值Form1(窗體1)Caption畫基本圖形PictureBox1(圖片框1)BackColor白色Command(命令按鈕1)Caption畫圓Command2(命令按鈕2)Caption同心圓Command3(命令按鈕3)Caption直線Command4(命令按鈕4)Caption三角形Command5(命令按鈕5)Caption矩形Command6(命令按鈕6)Caption實心矩形程序代碼Private Sub Command1_Click() '畫圓 Picture1.Cls Picture1.Circle (0, 0), 5End SubPrivate Sub Command2_Click() '畫同心圓 Picture1.Cls For a = 3 To 7 Picture1.Circle (0, 0), a Next aEnd SubPrivate Sub Command3_Click() '畫直線 Picture1.Cls Picture1.Line (-8, 0)-(8, 0)End SubPrivate Sub Command4_Click() '畫三角形 Picture1.Cls Picture1.Line (0, 8)-(8, -5) Picture1.Line (8, -5)-(-8, -5) Picture1.Line (-8, -5)-(0, 8)End SubPrivate Sub Command5_Click() '畫矩形 Picture1.Cls Picture1.Line (-6, 3)-(6, -3), , BEnd SubPrivate Sub Command6_Click() '畫實心矩形 Picture1.Cls Picture1.Line (-6, 3)-(6, -3), , BFEnd SubPrivate Sub Form_Load() '修改坐標系 Picture1.Scale (-10, 10)-(10, -10)End Sub2.在圖片框中畫30個半徑為100,位置在圖片框中,顏色各異的圓。圖7.1 繪制彩色圓界面控件對象:在窗體上添加1個圖片框和2個命令按鈕。屬性設置表表7-2 屬性設置表對象屬性名屬性值Form1(窗體1)Caption繪制彩色圓Command1(命令按鈕1)Caption繪制三十個彩色圓Command2(命令按鈕2)Caption退出程序代碼Private Sub Command1_Click() Picture1.Scale (-100, 100)-(100, -100) For a = 1 To 30 r = 50 * Rnd x = (100 - r - (r - 100)) * Rnd + r - 100 y = (100 - r - (r - 100)) * Rnd + r - 100 c = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Picture1.Circle (x, y), r, c Next aEnd SubPrivate Sub Command2_Click() EndEnd Sub3.編程,用For / Next循環語,在窗體上繪制5個顏色隨機的同心圓。控件對象:在窗體上添加1個圖片框和3個命令按鈕。屬性設置表表7-3 屬性設置表對象屬性名屬性值Form1(窗體)Caption同心圓BackColor白色 &H80000009&PictureBox1(圖片框1)BackColor白色Command1(命令按鈕1)Caption同心圓Style1-GraghicalBackColor橙色 &H0080C0FF&Command2(命令按鈕2)Caption取消Style1-GraghicalBackColor綠色 &H0000C000&Command3(命令按鈕3)Caption退出Style1-GraghicalBackColor紅色 &H008080FF&程序代碼Private Sub Command1_Click() Picture1.Scale (-8, 8)-(8, -8) Picture1.DrawWidth = 2 For a = 2 To 6 c = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Picture1.Circle (0, 0), a, c Next aEnd SubPrivate Sub Command2_Click() Picture1.ClsEnd SubPrivate Sub Command3_Click() EndEnd Sub第8課 涂鴉王國(一)本課教學目標學習鼠標的抬起和落下事件,并能夠進行簡單編程。了解Button、Shift參數值的意義,掌握利用X和Y參數值編寫相應程序。掌握用Pset方法畫點。了解對象名稱屬性的命名規則。了解窗體的Form_Load事件。(二)教材分析本課重點介紹了鼠標響應事件。(1)MouseDown事件MouseDown事件是3種鼠標事件中最常使用的事件,當按下鼠標按鈕時即可觸發此事件。MouseDown事件的語法格式如下:private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) Button:返回一個整數,該整數用于標識按下的鼠標鍵是哪一個(左鍵、右鍵或中間鍵)。Shift:返回一個整數,在Button參數指定的鍵被按下或被釋放的情況下,該整數對應于Shift、Ctrl和Alt鍵的狀態。X,Y:返回一個鼠標指針的當前位置。(2)MouseUp事件MouseUp事件當用戶在窗體或控件上釋放鼠標按鍵時發生。MouseUp事件的語法格式如下:private Sub Form_MouseUp(Button As Integer.Shift As Integer,X As Single,Y As Single) (三)教學設計與教學建議(含課前準備)本課中畫點、畫線、畫矩形以及畫圓形的程序較相似,可以在教師講解其中一例的基礎上,根據學生情況,讓學生練習,同時也復習了上節課中在窗體或圖片框中畫圖的知識。例題“涂鴉王國”很有趣,但由于窗體中需添加多個命令按鈕控件數組,要提醒學生耐心加細心,認真完成題目。(四)教學資源(或稱補充資料)1. 試編寫鼠標移動的MouseMove事件過程,使操作對象(如:瑪麗、小飛機圖片)隨鼠標的移動而移動。準備:將圖片素材存儲到指定位置。控件對象:在窗體上添加1個圖像框。屬性設置表表8-1 屬性設置表對象屬性名屬性值Form1(窗體1)Caption圖隨鼠標移Image1(圖像框1)StretchTruePicture圖片程序代碼Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Image1.Left = X Image1.Top = YEnd Sub2. 編程,以鼠標落下的位置為圓心,畫半徑為50的顏色各異的“隨意位置的圓”。程序代碼Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Circle (X, Y), 50, RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)End Sub3. 試編寫“同心圓隨意畫”的程序,要求以按下鼠標鍵為圓心到抬起鼠標鍵的點的距離為最大半徑,畫同心圓。程序代碼Dim x1 As Single, x2 As Single, y1 As Single, y2 As SinglePrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) x1 = X y1 = YEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) x2 = X y2 = Y d = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2) For a = 0 To d Step 100 Circle (x1, y1), a, RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) Next aEnd Sub第3單元 再接再厲單元概述本單元通過“系統集成”的任務,學習了VB菜單的編輯使用方法。通過“美圖瀏覽”、“時光如梭”、“星期查詢”和“感動中國”等主題活動介紹了數組、變量的程序設計知識,介紹了組合框、列表框和滾動條控件的使用。根據活動的需要介紹了時間、日期函數和輸出函數的使用方法,Print的使用方法,“分離數字”、“星期早知道”算法,文件操作等知識內容。學習目標學會菜單編輯器的使用,在菜單單擊事件的程序調用窗體文件等相關操作。學會從其它窗體文件返回菜單窗體文件,明確工程文件與窗體文件存儲的路徑關系。學會文本框、滾動條、列表框、組合框等控件的屬性設置和使用方法。掌握字符串的連接方法。學會用一維數組存儲信息。學會使用VB的部分時間、日期函數,會用使用數據輸入、輸出函數。會設置窗體的大小狀態屬性,會設置控件的可用性Enabled屬性。體會分離數字的算法,學會常用字符處理函數的使用。了解在VB中對文件的相關操作方法。重點難點重點:學會菜單編輯器的使用,在菜單單擊事件的程序調用窗體文件等相關操作。學會文本框、滾動條、列表框、組合框等控件的屬性設置和使用方法。學會用一維數組存儲信息。了解在VB中對文件的相關操作方法。難點:學會從其它窗體文件返回菜單窗體文件,明確工程文件與窗體文件存儲的路徑關系。掌握字符串的連接方法。學會用一維數組存儲信息。體會分離數字的算法,學會常用字符處理函數的使用。了解在VB中對文件的相關操作方法。學時安排第9課 系統集成 1課時第10課 美圖瀏覽 2課時第11課 時光如梭 1課時第12課 星期查詢 1課時第9課 系統集成(一)本課教學目標學會菜單編輯器的使用。掌握文本框的使用方法。學會在菜單單擊事件的程序調用窗體文件。學會從其它窗體文件返回菜單窗體文件。明確工程文件與窗體文件存儲的路徑關系。體會文件管理的意義。(二)教材分析 ⑴ 本課是結合菜單設計來完成系統集成任務的,內容有:相關文件的存儲管理;菜單項單擊事件的程序設計;為工程添加相關程序的窗體文件;窗體文件的調用和卸載;圖片存儲路徑的修改;主窗體圖片的瀏覽;組合框中瀏覽內容的調用和卸載。以上涉及的內容大多數都是前面學習過的知識或相關的知識,在教學中建議引導學生回顧以往學習的內容,注意舉一反三和知識遷移的作用。⑵ 在本課的學習過程中要注意以下幾點:理解集成前菜單與以往資料的關系是工程和工程之間的關系,集成后的關系是工程與窗體的關系,所以在多個窗體文件被添加到菜單工程中時,要注意多個窗體不能重名。在以往資料中的退出按鈕或關閉按鈕的功能一般都是結束工程的執行,而集成后要退出或關閉的是本窗體,所以要將被集成的窗體程序進行修改。修改1:將End方法修改為Unload Me修改2:在代碼中添加以下事件過程 Rem “關閉”按鈕的過程代碼Private Sub Form_Unload(Cancle as Integer) Frmsys.Show '顯示主窗體End Sub 可以用工程菜單―――添加文件―――選中窗體文件將相應窗體添加到菜單工程中,注意被添加的窗體要存盤。 (3)文本框的功能和使用方法是本課的重點也是難點。文本框和標簽都可以顯示文本信息,但文本框還可以通過鍵盤接受用戶輸入的信息,而標簽則不可以;文本框的Text屬性值就是其顯示的文本內容,而標簽的Caption屬性值是它的顯示內容。文本框的FontBold(粗體字)屬性、FontItalic(斜體字)屬性、FontStrikethru(刪除線字)屬性、FontUnderline(下劃線字)屬性有兩個值,其值為True(也就是1)表示字體有該效果,其值為False(也就是0)表示字體沒有該效果。在編寫程序代碼時,如想實現文本框中字體的粗體、斜體、刪除線和下劃線效果,可以為文本框的FontBold(粗體字)屬性、FontItalic(斜體字)屬性、FontStrikethru(刪除線字)屬性、FontUnderline(下劃線字)屬性賦相應的值。文本框的Multiline屬性也是初次接觸,值為True時,可以在文本框中輸入多行文本,值為False時,用戶不能在文本框中輸入多行信息。ScrollBar屬性設置是否加上滾動條,值為0(None)時,不加滾動條;值為1(Horizontal)時,只加水平滾動條;值為2(Vertical)時,只加垂直滾動條;值為3(Both)時,既加水平滾動條又加垂直滾動條。文本框的常用事件有Change事件,當文本框的Text屬性值改變時,就會觸發文本框的Change事件。KeyPress事件,當用戶從鍵盤上敲入一個字符時,就會觸發文本框的KeyPress事件。 建議教師在平時的教學中就強調文件的管理,這樣到本課的學習時就可以起到“水到渠成”的效果。(三)教學設計與教學建議(含課前準備)建議利用本教材的學習內容制作一個“VB學習系統”,在系統設計的過程中,歸納學習的內容,綜合運用學習的內容,學習系統結構設計的方法,體會用計算機處理問題的全過程。作為系統集成本課采用菜單的方式將學習內容組織在一個工程中,在集成的過程中,要求學生體會資料獲取,管理、存儲、輸出的作用和基本方法,學習資料分類、加工的方法。體會從系統的角度,從工程設計的角度,從軟件開發者的角度看待自己的學習成果。建議本課的引入可從演示本課設計的“VB學習系統”入手,引發學生的設計需求,教師要引導學生分析系統的結構,結合系統對照以往學習內容,引導學生綜合運用所學知識,完成系統的集成。由于時間關系可以引導學生完成系統集成的部分內容,例如:完成菜單中幾課程序的集成,完成一、兩課程序界面的展示,完成一、兩課的VB自我測試。(四)教學資源(或稱補充資料) 創作天地答案參考“學習系統”程序代碼。第10課 美圖瀏覽(一)本課教學目標掌握字符串的連接方法。學會設置滾動條控件的屬性并通過滾動條瀏覽圖片。學會設置列表框控件的常用屬性。學會用Print方法在圖片框上輸出文字信息。學會用一維數組存儲信息。(二)教材分析建議在教學中注意三個活動之間的銜接,(1)學習滾動條控件的使用,建立滾動條中滾動塊位置與圖片名稱之間的關系。(2)通過學習列表框的使用,建立列表框選項與在圖片框中用Print方法輸出內容的對應關系。(3)通過學習一維數組的使用,建立數組下表變量存儲數據與列表框選項內容之間的關系,建立數組下表變量存儲數據與滾動條中滾動塊位置對應的場館圖片的關系。對于以下代碼應該引導學生注意功能和含義:滾動條中滾動塊的當前位置值: HScroll1.Value與滾動條當前值對應的奧運場館文件名:CStr(HScroll1.Value) & ".jpg"列表框List1中選中項的序號: List1.ListIndex列表框List1中選中項的內容:List1.List(List1.ListIndex)(三)教學設計與教學建議(含課前準備)通過網上搜集奧運場館信息獲取奧運場館圖片,引入編制奧運場館問答程序的需求,為了分散難點將整個程序分為通過滾動條查看場館、通過列表框選擇場館和顯示相應場館信息三個部分學習,逐步完善其功能。 (四)教學資源(或稱補充資料)1. 編程,用滾動條控制在圖片框中繪制基本圖形(如:圓、直線、橢圓等)控件對象:在窗體上添加1個圖片框和1個滾動條。屬性設置表表10-1 屬性設置表對象屬性名屬性值Form1(窗體1)Caption選擇圖形HscrollBar1(水平滾動條)Max5Min1LargeChange1程序代碼Private Sub HScroll1_Change()Picture1.Scale (-10, 10)-(10, -10)Picture1.ClsSelect Case HScroll1.Value Case 1: Picture1.Circle (0, 0), 8 Case 2: Picture1.Line (-9, 0)-(9, 0) Case 3: Picture1.Circle (0, 0), 8, RGB(0, 255, 0), , , 0.5End SelectEnd Sub2.編程,在列表框中選擇同學的姓名,在圖片框中顯示該同學各科期中考試的成績。控件對象:在窗體上添加1個圖片框和2個命令按鈕。屬性設置表表10-2 屬性設置表對象屬性名屬性值Form1(窗體1)Caption繪制彩色圓Command1(命令按鈕1)Caption繪制三十個彩色圓Command2(命令按鈕2)Caption退出程序代碼Dim a(30) As Integer, b(30) As Integer, c(30) As IntegerPrivate Sub Form_Load() a(1) = 98 b(1) = 93 c(1) = 90 a(2) = 85 b(2) = 87 c(2) = 86 a(3) = 98 b(3) = 90 c(3) = 85 a(4) = 72 b(4) = 93 c(4) = 79 a(5) = 85 b(5) = 95 c(5) = 96 a(0) = 60 b(0) = 69 c(0) = 85End SubPrivate Sub List1_Click() n = List1.ListIndex Picture1.Cls Picture1.Print Picture1.Print List1.List(n); "的期中成績:" Picture1.Print "語文"; a(n) Picture1.Print "數學"; b(n) Picture1.Print "英語"; c(n)End Sub3.編程,完成“看吉祥物猜奧運舉辦地”的圖片瀏覽程序。 答案參考“學習系統”程序代碼。4.分組完成“看圖片猜奧運場館”、“看吉祥物猜奧運舉辦地”、“看奧運金牌猜奧運是第幾屆”、“看奧運會徽猜奧運舉辦國家”的程序,然后自己試著將四個程序合成在一個“猜猜看”的工程中。 答案參考“學習系統”程序代碼。第11課 時光如梭(一)本課教學目標學會使用VB的部分時間、日期函數。會設置窗體的大小狀態屬性。會用數據輸出函數輸出簡單的數據。會設置控件的可用性Enabled屬性。體會分離數字的算法。(二)教材分析在電子時鐘的程序設計中,建議分析時鐘的顯示需求,即窗體顯示和窗體標題欄的顯示,從而引出對窗體狀態判斷的需求。在計時秒表的程序設計中,建議分析計時控制不同時刻按鈕的狀態需求和計時需求,從而引出對命令按鈕及計時器控件可用性屬性設置的需要。另外通過分析停止時間減去開始時間等于計時時間的算法,引入Timer函數的使用,也為后面的程序設計做一些知識鋪墊。在今日倒計時的程序設計中,建議利用計時秒表算法分析出用全天時間減去當前時間為今天剩余時間的算法,然后提出將剩余時間的秒數分離為小時、分和秒的數字后顯示需要。利用今日倒計時的設計引出奧運倒計時的需求和計算兩日期天數的函數,根據學生情況引導學生相對獨立地完成奧運倒計時的程序設計。(三)教學設計與教學建議(含課前準備)通過與奧運相關的計時裝置的程序設計需求引入本課的活動內容,本課由“電子時鐘”、“計時秒表”、“今日倒計時”和“奧運倒計時”4個活動循序漸進地完成學習任務的,在教學過程中要注重各活動任務之間的銜接和轉換。對每個程序的設計之前建議對算法進行分析,使學生在設計程序的時候能夠做到目的性清楚,心中有數。本課的活動都用到了計時器控件,可以讓學生更深入地感受計時器控件在動態效果控制的作用。(四)教學資源(或稱補充資料) 創作天地答案參考“學習系統”程序代碼。第12課 星期查詢(一)本課教學目標進一步體會數組在處理有序數據中的作用。學會常用字符處理函數的使用。體會程序設計中表格的輸出方法。掌握使用InputBox函數輸入數據的方法。在編寫程序的過程中體會程序的基本結構。學會用字符串函數分離數字的方法。學會組合框的常用屬性設置和使用方法。 (二)教材分析“星期早知道”程序設計的關鍵是對算法的歷屆和表達,即:t = (a(m) + d) Mod 7 '計算星期其中數組a存放的是一年的月代碼,數組中下表為m的下標變量a(m)存放的是m月的月代碼,數組Week存放的是一周每天的中文表達字符,例如Week(0)存放的是字符“日”,Week(5)存放的是字符“五”。“求2013年12個月的月代碼”的程序設計,默認已知去年最后一天是星期幾,即知道今年1月的月代碼,還知道1月到11月的天數,所以可以用星期早知道的算法求出2月的月代碼、3月的月代碼……12月的月代碼。程序中的語句a(k) = (a(m) + n) Mod 7 '計算并保存k月的月代碼其中a(k)是求出的k月的月代碼,a(m)是上個月(即k-1月)的月代碼,n是k-1月的天數。(三)教學設計與教學建議(含課前準備)建議做個游戲,教師記住本年各月的月代碼,由學生提出今年的某月某日,教師按算法口算回答這一天是星期幾,使學生引起興趣。然后教師介紹解決問題的方法,提出用此方法計算2013年某一天是星期幾的要求,從而引入本課的第一個活動任務“星期早知道”。活動的需求和算法分析。本課通過“星期早知道”、“求2013年12個月的月代碼” 、“2013月歷瀏覽”和“體育達標人數統計”幾個任務來完成本課的教學內容的。這其中除“體育達標人數統計”的程序外的三個程序的設計都具有一定的聯系,前面的程序起到為后面程序的鋪墊作用。“星期早知道”的程序設計要求,為學生提供了一個求某一年某月某天是星期幾的算法,本算法的已知前提是知道本年12個月的月代碼,這往往可以從電腦或年歷上查到。如果只知道前一年的最后一天是星期幾(即一月份的月代碼)利用此算法也可以求出本年各月的月代碼,這就引出了“求2013年12個月的月代碼”的程序設計要求。又由于輸出月歷的程序需要確定1號 的輸出位置所以就要知道1號是星期幾。這也可以通過求星期幾的算法求得,所以一年各月的月歷也就不難求出了。在教學中注意了這些聯系也就處理好了教學的難點問題。(四)教學資源(或稱補充資料)1.輸入百以內的整數,輸出這個百以內整數的漢語拼音。控件對象:在窗體上添加1個標簽、1個文本框、1個圖片框和1個命令按鈕。屬性設置表表11-1 屬性設置表對象屬性名屬性值Form1(窗體1)Caption漢語拼音讀數字Label1(標簽框)Caption空Font2號字Text1(文本框)Text空Font2號字Command1(命令按鈕1)Caption漢語拼音讀數字程序代碼Dim a(10) As StringPrivate Sub Command1_Click() x = Text1.Text n = Fix(x / 10) m = x Mod 10 If n = 0 Then Picture1.Print a(m) Else If m = 0 Then Picture1.Print a(n); " shi" Else Picture1.Print a(n); " shi "; a(m) End If End IfEnd SubPrivate Sub Form_Load() a(0) = "ling" a(1) = "yi" a(2) = "er" a(3) = "san" a(4) = "si" a(5) = "wu" a(6) = "liu" a(7) = "qi" a(8) = "ba" a(9) = "jiu"End Sub 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫