VisualBasic簡介教學課件匯總整本書電子教案全套教學教程完整版電子教案(最新)_第1頁
VisualBasic簡介教學課件匯總整本書電子教案全套教學教程完整版電子教案(最新)_第2頁
VisualBasic簡介教學課件匯總整本書電子教案全套教學教程完整版電子教案(最新)_第3頁
VisualBasic簡介教學課件匯總整本書電子教案全套教學教程完整版電子教案(最新)_第4頁
VisualBasic簡介教學課件匯總整本書電子教案全套教學教程完整版電子教案(最新)_第5頁
已閱讀5頁,還剩468頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 緒論 Visual Basic6.0簡介 Visual Basic6.0的集成開發(fā)環(huán)境 Visual Basic工程的管理 Visual Basic應用程序創(chuàng)建的基本過程本章內容:1. 1 VB程序設計引例運行窗口代碼窗口【案例1.1】一個簡單的打字游戲。1. 2 概 述1.2.1 Visual Basic簡介1 Visual Basic的發(fā)展2. Visual Basic的特點 (1)集成性 (2)高效性 (3)易操作性 (4)可擴充性3 Visual Basic的主要功能 (1)向導功能 (2)數(shù)據庫訪問功能 (3)對象鏈接與嵌入功能 (4)網絡功能 (5)聯(lián)機幫助功能4 Visu

2、al Basic的版本 (1)學習版 (2)專業(yè)版 (3)企業(yè)版 1.2.2 集成開發(fā)環(huán)境1.菜單欄及工具欄2.工具箱3.窗口 (1)窗體設計窗口 (2)代碼窗口 (3)屬性窗口 (4)其他窗口1. 3 工程管理1.3.1 工程的結構 Visual Basic應用程序的所有文件都是通過工程來管理 的,工程就是應用程序所有文件的集合。 工程資源管理器窗口是用于管理工程的界面。 注意工程名、窗體名與工程文件名、窗體文件名的區(qū)別。1.3.2 工程的新建、打開和保存新建工程 新建工程步驟: “文件” - “新建工程” - 選擇工程類型 - “確定”2. 打開工程 打開已有工程步驟: “文件” - “打

3、開工程” - 選擇“現(xiàn)存”選項卡 選定工程 “打開”3. 保存工程 工程和窗體經保存才可生成文件,保存工程及窗體的步驟: “文件” - “保存工程” 鍵入窗體或模塊文件名 “保存” 繼續(xù)保存其他文件,直至將工程文件保存完為止 還可通過“添加文件”菜單將現(xiàn)有文件加入當前工程,并通過“工程”-“移除”菜單將工程中不需要的文件移出工程。1. 4 創(chuàng)建VB程序實例分析(1)半徑值應在程序運行時由用戶動態(tài)輸入,一旦輸入一個非法數(shù)值(如負數(shù)),程序應具有報錯功能。(2)輸入半徑值后程序可計算出相應的面積?!景咐?.2】根據用戶輸入的半徑值,求圓面積并顯示圓。2. 設計設計階段一般包括界面設計與算法設計兩步

4、。(1)界面設計 窗體中加入兩個標簽、兩個文本框和一個圖形框控件。(2)算法設計 判斷輸入是否是數(shù)字。 判斷數(shù)字范圍是否合法。 計算圓面積并顯示。 畫圓。3. 實現(xiàn)第一步 啟動環(huán)境 啟動Visual Basic,進入集成開發(fā)環(huán)境。在打開的“新建工程”對話框中,選擇“新建”選項卡,單擊“打開”按鈕,即新建一個工程,同時系統(tǒng)自動創(chuàng)建了一個名為Form1的空白窗體。第二步 添加控件和屬性設置 在Form1的適當位置分別添加一個圖形框控件Picture1,兩個標簽控件Label1、Label2,兩個文本框控件Text1和Text2,一個命令按鈕Command1等控件,并設置相應屬性。第三步 事件編程

5、在打開代碼窗口中寫入代碼。注意代碼格式要嚴格規(guī)范。第四步 保存 執(zhí)行“文件”“保存工程”菜單命令或者單擊工具欄中“保存”按鈕,將工程文件、窗體文件保存在指定路徑。第五步 調試并運行 執(zhí)行“運行”“啟動”或“調試”“逐語句”菜單命令,或單擊工具欄的“啟動”按鈕,程序進入運行模式。用戶在第一個文本框中輸入半徑值,單擊“計算”按鈕后顯示運行結果。第二章 VB可視化程序設計 面向對象編程思想 窗體的應用 標簽控件的應用 文本框控件的應用 命令按鈕控件的應用本章內容:2. 1 可視化程序設計引例【案例2.1】設計一個登錄界面,當用戶輸入的用戶名及密碼都正確時,轉入下一窗口,否則提示用戶重新輸入。 程序需

6、要添加兩個窗體,由登陸窗體正確登陸后進入另一窗體。登陸窗體中用到兩個文本框、兩個標簽控件和一個命令按鈕控件。界面實現(xiàn)如下:代碼:Private Sub Command1_Click() Dim a As Integer, s As String If Text1.Text=jlj And Text2.Text=123 Then Form1.Hide 用戶名密碼正確 Form2.Show Else s=Text1.Text a=MsgBox(用戶名或密碼有誤,“確定”重新輸入,“取消”退出, vbOKCancel+vbExclamation) If a=1 Then 重新輸入 Text1.Tex

7、t= Text2.Text= Text1.SetFocus Else End End If End IfEnd Sub代碼(續(xù)):Private Sub Command2_Click() EndEnd Sub 保存后運行,當用戶名輸入jlj,密碼輸入123時,登陸正確,進入下一窗體,否則提示錯誤。2. 2 對象的屬性、事件和方法2.2.1 屬 性 屬性值用于描述或設置對象的某些性質,用戶可在運行模式和設計模式下修稿屬性值,必要時也可讀取某一屬性值作為程序的已知量。 對象是面向對象編程的主體,如引例中添加到窗體上的具體控件以及窗體本身都屬于對象。每一個對象都具有各自的屬性、事件和方法。屬 性說

8、明名稱(Name)每個對象都具有,用于識別該對象Caption設置對象在運行模式下所顯示的字符(窗體為標題)ForeColor設置對象的前景色BackColor設置背景色Width設置對象的寬度Height設置對象的高度Left設置對象左上角的橫坐標Top設置對象左上角的縱坐標Font對象上顯示文字的字體、字號等字符格式化設置Enabled設置對象在運行模式下是否可用,為布爾類型:True時可用,F(xiàn)alse時不可用Visible設置對象在運行模式下是否可見,為布爾類型:True時可見,F(xiàn)alse時隱藏(實際存在)常用屬性2.2.2 事 件 用戶將若干程序代碼置于事件過程中,當應用程序進入運行模

9、式后,系統(tǒng)并不會依次去執(zhí)行每一個事件過程代碼,而是處于等待狀態(tài),當某一事件發(fā)生時,該事件過程才被執(zhí)行,這就是事件驅動程序。 事 件觸 發(fā) 條 件Click鼠標單擊對象時觸發(fā)該事件Dbclick鼠標雙擊對象時觸發(fā)該事件GotFocus當對象獲得焦點時觸發(fā)該事件LostFocus當對象失去焦點時觸發(fā)該事件KeyDown按下鍵盤上一個鍵時觸發(fā)焦點對象的該事件KeyUp釋放鍵盤上一個鍵時觸發(fā)焦點對象的該事件常用事件KeyPress按下并釋放鍵盤上一個鍵時觸發(fā)焦點對象的該事件MouseDown按下鼠標任意鍵時觸發(fā)該事件MouseMove鼠標滑過對象時觸發(fā)該對象的事件MouseUp抬起鼠標任意鍵時觸發(fā)該事

10、件Resize對象第一次顯示或尺寸發(fā)生變化時觸發(fā)該事件2.2.3 方 法對象的方法已定義好的、嵌入對象內部的一段代碼。語法格式:對象.方法 參數(shù)列表常用的方法有:Print方法:在窗體、圖片框、打印機或調試窗口中輸出字符串。Cls方法:清除運行過程中由Print方法打印在對象上的文本或圖形。Move方法:移動、改變對象或窗體。2. 3 窗 體2.3.1 窗體的屬性 作為特殊對象,窗體也是其他對象的載體。窗體也有相應的屬性、事件和方法。 除了常用屬性外,窗體還有一些特有的主要屬性,見下表。屬 性 名說 明備 注Boderstyle設置窗體邊界樣式、是否可改變大小只在設計模式有效MaxButton

11、MinButton設置在運行模式下,窗體的最大化、最小化按鈕是否可用只在設計模式有效Icon設置控制菜單的圖標ControlBox是否顯示控制菜單圖標與狀態(tài)控制按鈕ShowInTaskbar設置窗體是否在任務欄中顯示只在設計模式有效WindowState設置窗體啟動時的狀態(tài)0:正常狀態(tài)1:最小化狀態(tài)2:最大化狀態(tài)Moveable設置窗體是否可移動只在設計模式有效Picture為窗體加載背景圖片AutoRedraw設置窗體重繪功能是否有效,即窗體被隱藏重新顯示后,是否可以還原之前的畫面默認為False窗體主要屬性2.3.2 窗體的事件窗體可響應所有鼠標事件和鍵盤事件,以及一些其他事件。常用的窗體

12、事件如下:Click、Dbclick事件:鼠標單擊、雙擊時觸發(fā)。Load、Unload事件:窗體加載、卸載時觸發(fā)。GotFocus、LostFocus事件:窗體得到焦點、失去焦點時觸發(fā)。Activate、Deactivate事件:窗體由活動變?yōu)椴换顒?、由不活動變?yōu)榛顒訝顟B(tài)時觸發(fā)。Resize事件:窗體大小改變時觸發(fā)。2.3.3 窗體的方法(1)Show方法用于顯示窗體。語法格式:Form.Show(2)Hide方法用于隱藏窗體。語法格式:Form.Hide(3)Print方法用于在窗體上顯示內容。語法格式:Form.Print 參數(shù)列表以下代碼段運行結果為: a = 我是表達式 Form1.P

13、rint Form1.Print aForm1.PrintPrint 3+4(4)Cls方法語法格式:Form.Cls用于清除在程序運行過程中由Print方法顯示在窗體上的內容。(5)Move方法語法格式:Form.Move Left,Top,Width,Height用于改變窗體的位置和大小。參數(shù)分別指示出窗體移動后的左邊距、上邊距,以及寬度、高度。 【案例2.2】 創(chuàng)建兩個可互相調用的窗體,由Form1進入Form2后,F(xiàn)orm2可選擇“最大化”或“標準”兩種顯示狀態(tài),不允許用戶手工拖動改變Form2的位置。關閉Form2時,有“確實要卸載本窗體”的文字提示。2. 4 基本控件 基本控件是V

14、isual Basic內部定義的控件,所以也叫內部控件。啟動Visual Basic集成環(huán)境后,工具箱中顯示的就是Visual Basic的內部控件。 【案例2.3】通過標簽控件的單擊事件實現(xiàn)該控件大小的改變。2.4.1 標簽控件 除了Caption、FontSize等公共屬性外,標簽控件還有一些特殊屬性。 Alignment屬性,設置標簽控件上文本的對齊方式,屬性值有三種選擇:Left Justify:左對齊。Right Justify:右對齊。Center:居中對齊。 AutoSize屬性,決定標簽控件的尺寸是否能隨著文本內容的多少自動調整大?。篢rue:可調整。False:不可調整。該屬

15、性可與WordWrap屬性結合用。 WordWrap屬性,是否允許標簽控件換行。只有當AutoSize屬性值為True時,該屬性設置才有效。True:可換行。False:不可換行。 BackStyle屬性,設置標簽控件的背景:Transparent:透明背景。Opaque:不透明,可通過BackColor屬性設置背景顏色。 BorderStyle屬性,設置標簽控件的邊框樣式:None:不帶邊框。Fixed Single:帶單邊框。標簽控件也可響應鼠標、鍵盤等事件,但在程序設計中很少使用?!景咐?.4】設計一個具有復制功能的文本框。2.4.2 文本框屬 性說 明備 注Text文本框的內容Lock

16、ed決定文本框是否可編輯,值為True時為只讀文本True:不可編輯False:可編輯(默認)Maxlength限制文本框可接收的最長字符長度0:不限制(默認)n:限制長度不超過正整數(shù)nMultiLine決定文本框是否允許多行顯示True:允許False:不允許(默認)ScrollBars設置文本框滾動條的狀態(tài)。需加滾動條時,應先置MultiLine值為True0-None1-Horizontal2-Vertical3-BothPasswordChar設置運行模式下文本框內容的替代字符SelStart返回選定字符串的起始位置(起始位置為0)運行時有效SelLength返回選定字符串長度(整數(shù)類

17、型)SelText返回選定字符串內容1. 屬性2事件文本框控件常用的有以下事件:Change事件。當文本框Text屬性值發(fā)生改變時觸發(fā)。KeyPress事件。當用戶按下并抬起鍵盤上任意鍵時觸發(fā),同時將此次按鍵的ASCII碼(整數(shù))作為返回值保存在名為KeyAscii變量中,以識別所按下的鍵名。GotFocus、LostFocus事件。文本框得到、失去焦點時觸發(fā)的事件。MouseUp、MouseDown和MouseMove事件。這是三個鼠標事件,分別為在文本框上鼠標鍵按下、鼠標鍵抬起以及鼠標滑過時觸發(fā)的事件。3方法 SetFocus方法是文本框常用的方法,執(zhí)行結果是將光標置于文本框上。如: Te

18、xt1.SetFocus 光標置于Text1【案例2.6】設計一個識字卡應用程序。2.4.3 命令按鈕命令按鈕常用屬性如下:(1)Caption屬性設置命令按鈕的顯示文本。(2)Default屬性設置命令按鈕為缺省的活動按鈕。運行模式下,按【Enter】鍵相當于單擊該命令按鈕。(3)Cancel屬性設置為缺省的取消按鈕。按【Esc】鍵相當于單擊該按鈕。(4)Style屬性設置按鈕的外觀。0-Standard:標準Windows按鈕。1-Graphical:可在按鈕上放置圖片。(5)Picture、DownPicture、DisabledPicture屬性當Style屬性值設為1時,可通過這三個

19、屬性為按鈕添加顯示圖片,形成按鈕圖標。正常情況下,顯示的是Picture屬性加載的圖形。按鈕按下時,顯示的是DownPicture屬性加載的圖形。當按鈕不可用時,顯示的是DisabledPicture屬性加載的圖形。命令按鈕的事件:Click單擊事件MouseDown(鼠標鍵按下)MouseUp(鼠標鍵抬起)MouseMove(鼠標滑過)【案例2.7】設計一個簡易計算器,可進行加、減、乘、除四則運算。 運算器應有運算數(shù)輸入的文本框、實現(xiàn)運算過程的運算按鈕、顯示運算結果及提示信息的標簽。四則運算主要考慮輸入的運算數(shù)是否是數(shù)字,除法時除數(shù)是否為0等問題。設計界面運行界面第三章 VB結構化編程語言

20、面向對象編程思想 Visual Basic編程程步驟及算法描述 基本語句 分支程序結構 循環(huán)程序結構 結構嵌套本章內容:3. 1 VB程序設計基礎3.1.1 編程的基本步驟和算法描述編程步驟問題分析代碼實現(xiàn)算法設計調試運行歸納分析2. 算法的描述工具 算法(Algorithm)就是根據題目要求設計好的一個確定的解題步驟,或者是解題思想的描述。這樣的解題步驟的描述,必須對設計是無歧義的,應該能指明控制流程、處理功能、數(shù)據組織甚至是一些實現(xiàn)細節(jié)。 常用的算法描述工具有語言描述、程序流程圖及 N-S流程圖三種。(1)語言描述 用自然語言描述算法設計的步驟。(2)程序流程圖程序流程圖的主要元素: 圓角

21、矩形:表示開始、結束。 矩形:表示一個處理步驟。 菱形:表示一個邏輯條件。 箭頭:表示控制流向。 平行四邊形:輸入或輸出的數(shù)據。(3)N-S流程圖順序結構選擇結構(1)選擇結構(2)循環(huán)結構過程調用3.1.2 VB語言基礎【案例3.1】已知球體半徑,計算球的體積,并通過窗體打印輸出。 球體體積計算公式:v = 4/3r3??紤]到程序的實用性,半徑由用戶給出,可通過輸入語句或文本框控件,將半徑值傳給程序。代碼如下:Dim r As Single, v As Single 聲明變量Const pi=3.14 定義常量r=Val(Text1.Text) 從文本框讀取圓半徑值v=4/3*pi*r3 計

22、算圓面積Print 球半徑為:; r; 體積為:; v 在窗體上輸出計算結果N-S流程圖常量與變量 在程序運行過程中需要變化的數(shù)據定義為變量,保持不變的數(shù)據定義為常量。(1)數(shù)據類型 Visual Basic中對數(shù)據進行了分類 ,VB中的標準數(shù)據類型見下圖。數(shù)據類型關鍵字類型符號字節(jié)數(shù)范 圍 數(shù)值型字節(jié)型Byte無10255整型Integer%2-3276832767長整型Long&4-21474836482147483647單精度型Single!4-3.40282310383.4028231038雙精度型Double#8-1.7103081.710308,15位精度貨幣型Currency8-

23、296-1296-1,28位精度字符型String$不定065535個字符日期時間型Date(Time)無8100-1-1 9999-12-310:00:0023:59:59布爾型Boolean無2True或False對象型Object無4任何引用的對象變體型Variant無不定以上任意類型 (2)變量的命名規(guī)則 變量名必須以字母或漢字開頭,由字母、漢字、下畫線、數(shù)字及變量類型符號組成的長度不超過255的字符串。 變量名不區(qū)分大小寫。 變量名不能與關鍵詞沖突,如single即非法變量名。 變量名在變量的有效范圍內必須是唯一的。 (3)變量的聲明 變量使用之前,一般需要通過聲明語句給變量分配一定

24、內存空間,同時把變量的相關信息通知給應用程序。變量的聲明語句語法為:Dim 變量名 As 變量類型或Static 變量名 As 變量類型 也可在聲明時用類型符號指明變量的類型。如:Dim s As Single 等價于:Dim s!(4)變量的作用域變量的作用域分為三級:局部變量、模塊級變量和全局變量。 變量作用域聲 明 方 式聲明語句所在位置能否被本模塊其他過程使用能否被其他模塊使用局部變量Dim或Static過程內否否模塊級變量Dim或Private模塊的通用代碼段能否全局變量Public模塊的通用代碼段能能【案例3.2】在下面代碼段中聲明了4個變量a、b、c、d,其中a為全局變量,b、c

25、為模塊級變量,d為局部變量。 分析單擊窗體四次后的運行結果。Option Explicit 通用代碼段Public a As IntegerPrivate b As IntegerDim c As StringPrivate Sub Form_Click() 窗體單擊事件 Dim d As Integer a=a+1 b=b+1 d=d+1 Print a, b, c, d 分別輸出a,b,c,dEnd SubPrivate Sub Form_Load() 窗體裝載事件 c=Visual BasicEnd Sub (5)常量 程序運行過程中,不變的數(shù)據即可定義成用戶自定義的常量,常量聲明語句語

26、法為:Const 常量名As 數(shù)據類型 = 常量值2. 表達式 單個的常量、變量、內部函數(shù)或者由運算符將它們連接起來的式子就是表達式。 VB運算符包括算術運算符、字符串運算符、關系運算符和邏輯運算符。運 算 符運 算 名 稱優(yōu) 先 級舉 例運 算 結 果冪115225-取反10-(-5)5*乘95*525/除95/22.5整除8522Mod取余75 Mod 21+加62+35-減62-3-1(1)算術運算符(2)字符串運算運 算 符運 算 名 稱優(yōu) 先 級舉 例運 算 結 果&字符串連接5Visual & BasicVisualBasic+2+323 符號“&”和“+”都可進行字符串連接運算,

27、但略有區(qū)別。“&”有自動轉換為字符串運算的功能,而“+”則有自動轉換成算術運算的功能。 (3)關系運算運 算 符運 算 名 稱優(yōu) 先 級舉 例運 算 結 果大于42 3F=大于等于42 + 3 = 3T小于42 3T=小于等于4abcd = abcF=等于4ABCD = abcdF不等于42 3T(4)邏輯運算運 算 符運 算 名 稱優(yōu) 先 級舉 例運 算 結 果Not非3Not TFNot FTAnd與2F And FFF And TFT And FFT And TTOr或1F Or FFF Or TTT Or FTT Or TTXor異或1F Xor F0F Xor T1T Xor F1T

28、 Xor T03.1.3 基本語句 基本語句主要有賦值語句、輸入/輸出語句、結束語句、錯誤處理語句及注釋語句等。 1. 賦值語句 賦值語句用于改變變量或對象的屬性值。語法結構為:變量名=表達式 或 對象.屬性=表達式 賦值語句執(zhí)行時,先計算賦值號“=”右端表達式的值,然后再將其值賦給左端。 2. 輸入/輸出語句 (1)輸出語句 常用的輸出方式有通過文本框或標簽顯示、調用print方法打印輸出以及調用MsgBox函數(shù)輸出。 通過文本框或標簽控件顯示Label1.Caption=歡迎來到VB編程世界! 調用print方法打印輸出 Print方法功能為在對象上打印參數(shù)列表所指內容,語法形式為:對象.

29、 Print 參數(shù)列表 其中對象可以是窗體、圖形框或打印機,默認為當前窗體。參數(shù)列表中可包括:定位函數(shù),用于決定打印內容的相對位置:Tab(n)從對象最左端起向后移動n列開始打印;Spc(n),插入n個空格。表達式,用于決定打印內容。分隔符,輸出多項內容時各項之間的分隔。分號,緊跟在上一個顯示符號之后;逗號,下一個打印區(qū)域的開始位置;不使用分隔符,則下一符號將換行打印。調用MsgBox函數(shù)輸出MsgBox有函數(shù)和過程兩種用法。函數(shù)形式:n = MsgBox(提示 ,按鈕 ,標題)過程形式:MsgBox 提示 ,按鈕 ,標題其中,參數(shù)“提示”為字符串類型的表達式,是顯示在消息框正文的提示信息內容

30、;“按鈕” 決定消息框按鈕的類型組合及圖標類型;“標題” 決定消息框窗口標題欄內容。分 組內 部 常 數(shù)按 鈕 值意 義按鈕數(shù)目vbOkOnlyvbOkCancelvbAbortRetryIgnorevbYesNoCancelvbYesNovbRetryCancel012345只顯示“確定”按鈕顯示“確定”、“取消”按鈕顯示“終止”、“重試”、“忽略”按鈕顯示“是”、“否”、“取消”按鈕顯示“是”、“否”按鈕顯示“重試”、“取消”按鈕圖標類型vbCriticalvbQuestionvbExclamationvbInformation16324864關鍵信息圖標詢問信息圖標警告信息圖標信息圖標“

31、按鈕”參數(shù)表分 組內 部 常 數(shù)按 鈕 值意 義缺省按鈕vbDefaultButton1vbDefaultButton2vbDefaultButton30256512第一個按鈕為缺省第二個按鈕為缺省第三個按鈕為缺省模式vbApplicationModalvbSystemModal04096應用模式系統(tǒng)模式“按鈕”參數(shù)表(續(xù))內 部 常 數(shù)返 回 值被按下的銨鈕vbOk1確定vbCancel2取消vbAbout3終止vbRetry4重試vbIgnore5忽略vbYes6是vbNo7否“按鈕”返回值【案例3.3】設計一個簡單的登錄界面,單擊命令按鈕,實現(xiàn)如下功能:(1)當用戶在文本框輸入12345

32、678字符串時,彈出消息框提示“密碼正確”,同時在窗體的標簽控件中顯示“登錄成功”;(2)若用戶輸入錯誤時,彈出一個帶有“重試”、“取消”按鈕的消息框,若用戶選擇“重試”按鈕,則清空文本框并置光標準備接收新輸入,若用戶選擇“取消”按鈕則結束程序運行。pass=Text1.Text If pass=12345678 Then MsgBox 密碼正確, , 輸入密碼 Label1.Caption=歡迎進入系統(tǒng) Elsei=MsgBox(密碼錯誤, 5 + vbExclamation, 輸入密碼)If i=4 Then Text1.Text= Text1.SetFocusElseIf i=2 The

33、n End End IfEnd If(2)輸入 常用的輸入方式有:通過文本框接收用戶輸入、調用InputBox輸入框函數(shù)接收用戶輸入兩種。InputBox函數(shù)調用語法形式:InputBox(提示 ,標題 ,默認值 ,x坐標 ,y坐標)其中“提示” 是顯示在輸入框正文的提示信息內容;“標題” 決定輸入框窗口標題欄內容;“默認值”是當用戶在輸入框文本框內未輸入任何內容而單擊“確定”按鈕的函數(shù)返回值;“x坐標”、“y坐標”是整型表達式,決定輸入框在屏幕的位置。3結束語句 End結束語句用于在程序代碼中立即結束應用程序的運行。程序執(zhí)行了End語句后,其后面的所有代碼不會執(zhí)行,事件也不會被觸發(fā),對象的各

34、個引用將被釋放。 除此以外,End還可與其他保留字結合使用,如 End If:結束一個If語句塊。 End Function:結束一個Function過程。 End Sub:結束一個Sub過程。 End Type:結束記錄類型定義。 End Select:結束Select語句結構。 4錯誤處理語句On Error Resume next 出錯繼續(xù)執(zhí)行下一條On Error Goto 行號 出錯跳轉到指定行號On Error Goto 0 關閉錯誤捕獲5注釋語句 注釋就是為了增加程序可讀性程序員在代碼適當位置添加的一些說明性的、非執(zhí)行的語句,Visual Basic書寫時用關鍵字Rem或單引號“

35、”將注釋與代碼分割開。 3. 2 程序的控制結構3.2.1 分支結構 順序結構、分支結構和循環(huán)結構是程序的3種主要結構。 分支結構又可分為單分支、雙分支、多分支與分支嵌套等結構。 1單分支結構 單分支結構就是只有一組語句可供選擇的分支結構?!景咐?.4】求函數(shù)值b,其中 代碼段如下:Dim a As Single, b As Singlea=Val(Text1)If a100 Then b=a-100End IfText2=b單分支結構基本語句法為:If 條件 Then 語句組END If或If 條件 Then 語句2雙分支結構雙分支結構就是有兩組語句可供選擇的分支結構。【案例3.5】求函數(shù)值

36、b,其中 代碼段如下: Dim a As Single, b As Single a=Val(Text1) If a100 Then b=a-100 Else b=100-a End If Text2=b雙分支結構的基本語法為:If 條件 Then 語句組1Else 語句組2End If3多分支結構 多分支結構就是有多組語句可供選擇的分支結構,具體執(zhí)行過程中,程序根據條件只選擇其中一組。【案例3.6】求函數(shù)值b,其中 代碼段如下: Dim a As Single, b As Singlea=Val(Text1)If a100 Then b=a-100ElseIf a = 100 Then b=

37、100Else b=100-aEnd IfText2=ba100?Text2=bYa=Text1b=100a=100?NYN開始結束b=100-ab=a-100多分支程序的基本語法為: If 條件1 Then 語句組1ElseIf 條件2 語句組2 Else 語句組nEnd If4分支嵌套 分支嵌套就是一個分支結構中又嵌套了一個或多個完整的分支結構?!景咐?.7】求分段函數(shù)b的值,其中 代碼段如下:Dim a As Single, b As Single a=Val(Text1) c=Val(Text3)If a100 Then If c100 Then b=Sqr(a2+c2) Else b

38、=Sqr(a2-c2) End IfElse b=aEnd IfText2=b分支嵌套程序基本語法為:If 條件1 Then If 條件2 Then End IfElse End IfIf 條件1 Then Else If 條件2 Then End If End If5其他分支語句 多分支結構還可用Select Case語句實現(xiàn),用于對表達式的多種取值情況分離并處理。 語法形式為:Select Case 測試表達式 Case 表達式列表1 語句組1 Case 表達式列表2 語句組2 Case Else 語句組nEnd Select【案例3.10】根據輸入的四則運算符,對隨機產生的兩個數(shù)進行相應

39、運算并顯示結果。 由文本框輸入一個運算符號,判斷運算符號是“+”、“-”、“”、“”中的哪一個,然后根據判斷結果對隨機生成的兩個數(shù)進行相應的算術運算,結束分支結構,顯示運算結果。用Select Case語句實現(xiàn)的代碼段如下:a=Int(Rnd*100)b=Int(Rnd*100)f=Text1.TextSelect Case f Case + c=a+b Case - c=a-b Case * c=a*b Case / c=a/b Case Else MsgBox 輸入錯誤!End SelectText2=c3.2.2 循環(huán)結構【案例3.11】s=1+2+3+4+100,計算s的值。分支語句實

40、現(xiàn):s=0 初始化累加器i=0 初始化加數(shù)loop1:If i = 100 Then s=s+i 語句(1)累加 i=i+1 語句(2)更新加數(shù) GoTo loop1 語句(3)跳轉至標號End If 這是一個循環(huán)結構,VB中有專門的循環(huán)語句控制循環(huán)結構。設計循環(huán)結構程序時,需要考慮進入循環(huán)前初始化、循環(huán)條件及循環(huán)體這三要素 。(1)代碼一Private Sub Form_Click() Dim i As Integer, s As Integer s=0 i=0 For i=1 To 100 For語句 s=s+i Next i Print sEnd Sub(2)代碼二Private Sub

41、 Form_Click() Dim i As Integer, s As Integer s=0 i=0 Do While i初值時,步長應大于0才能確保循環(huán)正常運行;相反,若終值初值,步長應小于0。 2. Do語句 Do語句用于循環(huán)結構預先無法確定的情況?!景咐?.13】求ln2的近似值,誤差范圍在10-5內。已知級數(shù) ,當| | 0.00001 Print ln2= & sDo語句語法結構:(a)Do (b)Do Whlie 表達式 語句組 語句組 Loop While 表達式 Loop 其中Do,While,Loop是Visual Basic保留字,While后面的“表達式”為循環(huán)條件,

42、“語句組”是循環(huán)體。 兩種結構的區(qū)別在于前者是先執(zhí)行后判斷,后者是先判斷后執(zhí)行 。思考:上例如何修改代碼變?yōu)椋╞)結構?DoLoop語句中的While也可換成Until,語法結構為:Do 語句組Loop Until 表達式功能為“表達式”值為True時終止循環(huán)。3循環(huán)嵌套 循環(huán)嵌套就是在一個循環(huán)結構的循環(huán)體語句組中又包含了循環(huán)結構或循環(huán)嵌套結構的語句,循環(huán)嵌套中的每一重循環(huán)結構都可以用For語句或Do語句實現(xiàn)。【引例】 For i = 1 To 3 For j = 1 To 5 Print i * j; Next j Print Next i【案例3.13】求100以內所有素數(shù)。 部分代碼:F

43、or i=2 To 100 a=Sqr(i) For j=2 To a If i Mod j=0 Then GoTo e 非素數(shù)出口 End If Next j Print i, 輸出一個素數(shù) f=f+1 更新計數(shù)器 If f Mod 4=0 Then Print 換行打印e: Next i3.2.3 循環(huán)應用舉例1枚舉 枚舉法(窮舉法)是指用給定的約束條件在指定范圍內逐一試探,找出滿足條件的解集的方法。解題的基本思路是: 確定枚舉對象、枚舉范圍和判定條件; 一一枚舉可能的解,并驗證是否是問題的解?!景咐?.14】韓信點兵問題:韓信點一隊1000人以內的士兵人數(shù),三人一組余兩人,五人一組余三人

44、,七人一組余四人。這隊士兵可能是多少人? 部分代碼:For i=1 To 1000 If i Mod 3=2 And i Mod 5=3 And i Mod 7=4 Then Print i End If Next i 母雞5元一只,公雞3元一只,小雞1元三只,現(xiàn)用100元正好買100只雞,列出所有的購雞方案。代碼見p69思考:百元百雞問題2. 累加、連乘【案例3.15】求 Do b=1 乘積初始化 For i=1 To j b=b * i 連乘 Next i b=1/b n=n+b 累加 j=j+1Loop While b0.000001 一般用循環(huán)嵌套結構實現(xiàn)先連乘后累加的問題,部分代碼如

45、下。但本例也可優(yōu)化為單循環(huán)結構。思考:算法可優(yōu)化?3迭代 迭代也叫遞推,是一種不斷用變量新值代替舊值直至求出最終解的方法,其中新值一般由舊值通過某一迭代公式計算得到。用迭代算法解決問題時,首先確保數(shù)據的變化遵循一定規(guī)律,其次應注意: 確定迭代變量初始值。 建立迭代關系式。 確定迭代范圍。 【案例3.16】棋盤麥粒問題:古代一位國王獎賞他的宰相,這位宰相拿出一個8行8列的棋盤說:“陛下,請您在這張棋盤的第一個小格子內賞我一粒麥粒,第二個小格子內賞給兩粒,第三格內賞四粒,照這樣下去,每一個小格子內都比前一小格加兩倍。把這樣擺滿棋盤上的64格的麥粒都賞給您的仆人吧!”。請計算國王最終獎賞給宰相的麥粒

46、總數(shù)。迭代變量初始值:a0 = 1;迭代公式:an = 2an-1;迭代范圍,棋盤的64個格子,迭代次數(shù)已知(164)。 Private Sub Form_click() 棋盤麥粒問題 Dim i As Integer, s As Single a = 1 For i = 1 To 64 s = s + a a = a * 2 迭代公式 Next i Print sEnd Sub思考:猴子吃桃子問題 小猴某天摘了一些桃子,當天吃了一半多一個,以后每天都吃剩余桃子的一半多一個,第7天吃的時候發(fā)現(xiàn)只剩一個桃子了,問小猴當初共摘了幾個桃子?4動態(tài)數(shù)據的輸入與統(tǒng)計 動態(tài)輸入的一系列數(shù)據,往往數(shù)據個數(shù)比

47、較多,一一為其分配變量不現(xiàn)實,所以在接收數(shù)據的過程中應同步對其進行統(tǒng)計、分析等操作?!景咐?.17】接收由用戶輸入的10門課程的成績,求最高分、最低分及平均成績。10個數(shù)據可用一個變量存放,這就要求在輸入的過程中逐一判斷、分析并求和。 求和:s = s + n。 判斷最大值:每輸入一個數(shù)n,與Max比較,若nMax,則Max = n。 判斷最小值:每輸入一個數(shù)n,與Min比較,若n Max Then Max = a If a Max(nMin),則令Max=n(Min=n)。 第三部:重復第二步直至所有數(shù)據比較完為止,Max(Min)即為所求最大(?。┲?。 5二維表格(圖形)打印 二維表格或二

48、維圖形的生成一般需要雙重循環(huán)的嵌套,分別控制表格的行、列。調用對象的Print方法時,可用Tab()函數(shù)和Spc()函數(shù)控制打印內容的水平位置。例如九九乘法表的打印、二維矩陣的打印、規(guī)則平面圖形的打印等。【案例3.18】打印輸出矩陣: 這是一個44的二維矩陣,第一行元素值為1+1,1+2,1+3,1+4,第二行元素值為2+1,2+2,即第i行第j列元素值為i+j。Private Sub Form_Click() Dim i%, j%, a% For i = 1 To 4 For j = 1 To 4 a = i + j Print a; Next j Print 換行 Next iEnd Su

49、b思考:九九乘法表的打印。Private Sub Command1_Click() Cls Dim i As Integer, j As Integer For i = 1 To 9 For j = 1 To 9 Print Tab(j - 1) * 9 + 1); i & & j & = & i * j; Next j Print Next iEnd Sub第四章 數(shù) 組本章內容 數(shù)組的概念 數(shù)組的聲明及引用 數(shù)組的基本操作 控件數(shù)組的定義和使用 自定義數(shù)據類型4. 1 數(shù)組應用實例【案例4.1】已知某初一(2)班共有5名學生,計算全班學生數(shù)學成績的平均值,然后求出數(shù)學成績的最高分、最低分和

50、高于平均分的人數(shù)。 根據前面所學,需設置一個變量mark來存放學生的成績,通過循環(huán)、累加求和,最后求出平均分;然后再通過循環(huán)進行比較,得出最高分、最低分,并統(tǒng)計出高于平均分的人數(shù)。 問題:輸入完成后后一數(shù)據覆蓋掉前一數(shù)據,若重新訪問需再次一一輸入。數(shù)組可解決此問題。1. 數(shù)組是一組相同類型的數(shù)據元素的集合。2. 數(shù)組中的各個元素有先后順序,它們在內存中按排列順序連續(xù)存儲。3. 所有的數(shù)組元素用一個統(tǒng)一的名字(數(shù)組名)代表邏輯上相關的一批數(shù)據,每個元素用下標變量來區(qū)分,下標代表元素在數(shù)組中的位置。4. 使用數(shù)組時,必須先“聲明”后“使用”?!奥暶鳌本褪菍?shù)組名、數(shù)組元素的數(shù)據類型、數(shù)組的維數(shù)和大

51、小進行定義。5. 數(shù)組可分為靜態(tài)數(shù)組和動態(tài)數(shù)組兩種。4.2.1 數(shù)組的概念4. 2 數(shù)組概念、聲明及應用4.2.2 靜態(tài)數(shù)組的聲明及引用 在聲明數(shù)組時,如果已經確定了數(shù)組的維數(shù)及每一維的大小,稱為靜態(tài)數(shù)組。1一維數(shù)組 (1)一維數(shù)組的聲明 聲明形式:Dim PublicPrivateStatic數(shù)組名(to)As或:Dim PublicPrivateStatic 數(shù)組名(to)例:Dim a(1 to 10) As Integer 聲明了a數(shù)組中有10個整型的數(shù)據元素與上面聲明語句等價形式是:Dim a%(1 to 10) 說明: 數(shù)組名的命名規(guī)則與變量的命名規(guī)則相同。 缺省時,下界為0,若希

52、望下界從1開始,可在模塊的通用部分使用Option Base語句將下界設為1。其使用格式是:Option Base 1 數(shù)組元素的總個數(shù)是(上界-下界+1),而數(shù)組的全部元素個數(shù),是每一維元素個數(shù)與維數(shù)的乘積。 聲明語句中的和不能使用變量,必須是常量,常量可以是直接常量、符號常量,一般是整型常量。 如果省略As子句,則數(shù)組的類型為變體類型。 數(shù)組的維數(shù)由下標的個數(shù)決定,下標的個數(shù)最多可以為60個。 數(shù)組中的各個元素在內存中占據一片連續(xù)的存儲空間,一維數(shù)組在內存中存放的順序是按照下標從小到大的順序。 Public用于建立全局數(shù)組,在模塊的通用段聲明;Private和Dim都可以用來建立模塊級數(shù)組

53、或者局部數(shù)組;Static用來建立靜態(tài)局部數(shù)組,只能用在事件過程中定義。(2)一維數(shù)組的引用引用形式:數(shù)組名(下標) 其中,下標可以是整型變量、常量或表達式。例如:定義A(10)As Integer, B(10) As Integer兩個數(shù)組,則下面的語句都是正確的。A(1)=A(2)+B(1)+5 取數(shù)組元素運算 A(i)=B(i) 下標使用變量B(i+1)=A(i+2) 下標使用表達式注意: 數(shù)組必須先“聲明”后“引用”,引用時下標不能越界,即下標不能比下界還小,比上界還大。2多維數(shù)組 多維數(shù)組主要以二維數(shù)組為例。(1)二維數(shù)組的聲明聲明形式:Dim 數(shù)組名( to , to ) As 參

54、數(shù)定義與一維數(shù)組完全相同。 例如:Dim a(2,3) As Single 說明:二維數(shù)組在內存中的存放順序是“先行后列”。例如,數(shù)組a(2,3)的各元素在內存中的存放順序是:a(0,0)a(0,1)a(0,2)a(0,3)a(1,0)a(1,1)a(1,2)a(1,3)a(2,0)a(2,1)a(2,2)a(2,3)(2)二維數(shù)組的引用 引用形式:數(shù)組名(下標1,下標2)例如:a(1,2)=10 a(i+2,j)=a(2,3)*2 在程序中常常通過二重循環(huán)來控制二維數(shù)組的各個元素。 例如:For i=1 to 10 For j=1 to 10 A(i, j)=InputBox(請輸入數(shù)據)

55、Next j Next i3多維數(shù)組的聲明和引用聲明形式:Dim 數(shù)組名( to , to ,) As 例如:Dim a(5,5,5) As Integer 聲明a是三維數(shù)組 Dim b(2,6,10,5) As Integer 聲明b是四維數(shù)組 引用形式:數(shù)組名(下標1,下標2,下標n)4靜態(tài)數(shù)組應用實例【案例4.2】求數(shù)組a(1 to 10)的各元素之和。4.2.3 動態(tài)數(shù)組的聲明及其引用 動態(tài)數(shù)組指的是在聲明時未給出數(shù)組的維數(shù)及其大小。動態(tài)數(shù)組和靜態(tài)數(shù)組的區(qū)別是:靜態(tài)數(shù)組是在程序編譯時分配存儲空間,而動態(tài)數(shù)組是在程序執(zhí)行時分配存儲空間。1動態(tài)數(shù)組的聲明建立動態(tài)數(shù)組包括聲明和大小說明兩步:

56、 在使用Dim、Private或Public語句聲明時括號內為空。格式:Dim | Private| PublicStatic 數(shù)組名()As 數(shù)據類型例:Dim a() As Integer 在事件過程中用ReDim語句指明該數(shù)組的大小。格式:ReDim Preserve 數(shù)組名(下標1,下標2)Preserve參數(shù)是可選項,用來保留數(shù)組中原來的數(shù)據。例:ReDim A(10) ReDim Preserve A(20)說明: ReDim語句是一個可執(zhí)行語句,只能出現(xiàn)在事件過程中,并且可以多次使用,來改變數(shù)組的維數(shù)和大小。 定長數(shù)組聲明時其下標只能是常量,而動態(tài)數(shù)組ReDim語句中的下標可以是

57、常量,也可以是有了確定值的變量。例如:Private Sub Form_Click() Dim N As Integer N=Val(InputBox (輸入N=) Dim a(N) As Integer 錯誤定義 End Sub 在過程中可以多次使用ReDim來改變數(shù)組的大小,也可改變數(shù)組的維數(shù)。例如:ReDim x(10) ReDim x(20) x(20)=30 Print x(20) ReDim x(20, 5) x(20,5)=10 Print x(20,5) 每次使用ReDim語句都會使原來數(shù)組中值丟失,可以在ReDim后加Preserve參數(shù)來保留數(shù)組中的數(shù)據。但此時只能改變數(shù)組

58、最后一維的大小。2動態(tài)數(shù)組的引用 當在事件過程中使用ReDim語句確定了數(shù)組的維數(shù)和大小之后,動態(tài)數(shù)組的引用方法與一維數(shù)組相同。3動態(tài)數(shù)組應用實例【案例4.3】輸入一串整型數(shù)據,對輸入的數(shù)據做奇偶判斷,并在窗體上分奇偶兩類輸出;當輸入-1時,結束判斷。4.3 數(shù)組的基本操作4.3.1 數(shù)組相關函數(shù)1Aarry函數(shù)函數(shù)格式:Array()函數(shù)功能:使用Aarry函數(shù)可以方便地對一維數(shù)組整體賦值,但它只能給聲明為Variant的變量或僅由括號括起來的動態(tài)數(shù)組賦值。賦值后的數(shù)組大小由被賦值的元素個數(shù)決定。聲明數(shù)組時數(shù)組名可以直接給出,也可以帶上括號。例如:要將1,2,3,4,5,6,7這些值賦值給數(shù)

59、組a,可使用下面的方法賦值。Dim A() A=Array(1,2,3,4,5,6,7)Dim AA=Array(1,2,3,4,5,6,7)2數(shù)組上界函數(shù)Ubound( )、下界函數(shù)Lbound( ) 函數(shù)格式:UBound (, )LBound (, )函數(shù)功能:Ubound( )函數(shù)和Lbound( )函數(shù)分別用來確定數(shù)組某一維的上界和下界值。說明:必需有的,數(shù)組變量的名稱,遵循標準變量命名約定。:可選的,一般是整型常量或變量,指定返回哪一維的上界。1表示第一維,2表示第二維,以此類推。如果省略,默認是1。例如:Dim a(),i%A= Array(1,2,3,4,5,6,7) For

60、i=Lbound(a) to Ubound(a) Print a(i) Next i3Split函數(shù)使用格式:Split( ,)函數(shù)功能:使用Split函數(shù)可從一個字符串中,以某個指定符號為分隔符,分離若干個子字符串,建立一個下標從零開始的一維數(shù)組。例如:S=Split(ni,56,abc,)執(zhí)行結果:S(0)= niS(1)= 56S(2)= abc 4Join函數(shù)使用格式:Join (,)函數(shù)功能:將一維數(shù)組中的各個元素按照分隔符合并成一個字符串。例如:A=Array(ni,56,abc)S=Join(A, )執(zhí)行結果:S=ni56abc4.3.2 數(shù)組元素賦初值1通過循環(huán)結構給數(shù)組賦初值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論