官术网_书友最值得收藏!

第一篇 基礎知識篇

第1章 VB語言基礎

閱讀本書的前提是讀者有一定的VB基礎,因此對于VB的集成開發環境和VB的編程基礎,尤其是創建一個VB應用程序的步驟不再介紹。本書從VB的語言基礎開始,通過小實例講解VB中的相關知識。本章主要介紹VB的語言基礎,即VB編程過程中最簡單的知識,同時也是最重要的知識,更是編程過程中最容易被編程者忽略和出錯的知識點。因此讀者應該重視這部分的介紹。

1.1 標識符

標識符,顧名思義,是標識某個對象的符號,這個對象可以是變量、常量、過程和函數等。在VB中,標識符的定義有一定的規則,并且有一些標識符是VB中保留下來作為關鍵字使用的,因此在定義標識符時,要避免使用這些保留字。下面通過一系列小實例來說明標識符的定義規則和保留字的運用。

技術要點

在本實例中主要用到了 Form_ Load()事件,標識符定義整型變量。保留字,文本框TextBox控件數組和For循環語句,主要功能和用法如下:

● Form_ Load()事件,加載窗體時會觸發這個事件。雙擊對象窗口中的窗體時,如果該事件已經在代碼窗口中創建,光標就會停留在該事件代碼段的開始位置;否則會創建該事件。

●運用標識符定義整型變量,即遵守標識符的命名規則,定義一個變量來表示某種含義。在本實例中,定義的變量i用來表示循環參數。

●保留字,也稱作關鍵字,是VB中保留下來的標識符,用來表示固定的含義。在本實例中用到的保留字有Private、As、For、To、Next等。

●文本框控件TextBox,主要用來顯示文本信息。顯示文本信息主要通過控件的Text屬性進行。

控件數組和For循環語句的功能和用法在后面的學習中詳細介紹。

實現代碼

        Private Sub Form_Load()
            Dim i As Integer                        '定義整型變量,作為循環變量
            For i = 0 To 7                          'For循環語句
                TxtWelcome(i).Visible = True     '使得TxtWelcome控件數組可見
            Next i
            TxtWelcome(0).Text = "歡"          '給TxtWelcome控件數組賦值為"歡"
            TxtWelcome(1).Text = "迎"          '給TxtWelcome控件數組賦值為"迎"
            TxtWelcome(2).Text = "進"          '給TxtWelcome控件數組賦值為"進"
            TxtWelcome(3).Text = "入"          '給TxtWelcome控件數組賦值為"入"
            TxtWelcome(4).Text = "VB"          '給TxtWelcome控件數組賦值為" VB "
            TxtWelcome(5).Text = "世"          '給TxtWelcome控件數組賦值為"世"
            TxtWelcome(6).Text = "界"          '給TxtWelcome控件數組賦值為"界"
            TxtWelcome(7).Text = "!"          '給TxtWelcome控件數組賦值為"!"
        End Sub

單擊工具欄中的保存按鈕,保存工程,然后,單擊工具欄中的啟動按鈕,運行工程,程序運行結果如圖1.1所示。

圖1.1 程序運行界面圖

單擊工具欄中的結束按鈕,或者單擊運行窗口的關閉按鈕,結束程序的運行。

源程序解讀

(1)在代碼中只有Form_ Load()事件,在該事件中,首先定義整型變量i,用來控制For循環語句的執行。這里循環變量的定義要遵循標識符的命名規則:必須以字母開頭的字母、數字或下畫線的組合,長度不能超過255 個字符,并且不能和 VB 中的保留字重名。

(2)如果違反了以上規定,那么在代碼窗口會出現提示窗口。例如,當把i的命名變為_ i時,就會出現如圖1.2所示的提示窗口。如果把i的命名變為2i,就會出現如圖1.3所示的提示窗口。如果把i的命名變為As,就會出現如圖1.4所示的提示窗口。如果把i的命名改為其他的保留字,如For或Private,也會出現如圖1.3所示的提示窗口。定義變量i時用到了保留字As,VB中除了本實例中運用的保留字外,還有其他很多保留字,這里不再一一列舉。

圖1.2 以下畫線開頭命名標識符時出現的提示窗口

圖1.3 以數字開頭命名標識符時出現的提示窗口

圖1.4 以保留字As命名標識符時出現的提示窗口

(3)運用For循環語句,設置“TextBox”文本控件數組的Visible屬性為True,使文本框可見。最后對文本框控件數組的Text屬性賦值,分別為“歡”、“迎”、“進”、“入”、“VB”、“世”、“界”、“!”。

(4)運用End Sub語句關閉當前過程。

1.2 數據類型

上一節介紹了標識符,了解了標識符的命名規則和VB中的保留字,對于保留字,希望讀者在運用的過程中自己掌握。同時在上一節中,使用標識符定義整型變量,這里的“整型”就是數據類型。定義變量時,必須有一定的數據類型與之對應。本節主要介紹數據類型,通過實例的介紹使讀者掌握各種數據類型的運用。

技術要點

本節主要運用的技術有組合框控件ComboBox及其AddItem方法和Click事件、標簽Label控件、文本框 TextBox 控件、Select Case 語句、數據類型轉換函數。主要功能和用法如下:

●組合框控件ComboBox,主要用于從多種對象中逐個地選擇其中的一種對象。通常與Select Case語句配合使用,并且 Select Case語句出現在 ComboBox_ Click()事件中。

● AddItem方法,主要向組合框控件中添加各項,即各個對象。

●組合框控件ComboBox的Click事件,單擊組合框時,觸發該事件,主要完成選中某項時要完成的某種功能。

●標簽Label控件,主要用于顯示文本。一般通過其Caption屬性顯示出來。

●文本框TextBox控件在前面已經介紹過。

● Select Case語句在后面詳細介紹。

●數據類型轉換函數,主要用來在各數據類型之間相互轉換。本實例中運用的轉換函數有:CBool、CByte、CDate、CDbl、CInt、CLng和CStr,這些運用轉換函數的轉換方式都是顯示轉換。

說明:其他幾種類型的數據也有對應的數據類型轉換函數,如 CCur轉換為貨幣型, CVar轉換為可變型,CVErr轉換為Error類型,但是這些轉換函數只適用于VB7.0以下的版本。

實現代碼

        Private Sub CmbNumType_Click()
            Dim i As Single                                             '定義單精度變量i
            i = 3.1415                                                 '給變量i賦值為3.1415
            Select Case CmbNumType.ListIndex                            'Select Case語句
                Case 0
                  TxtShow.Text = CInt(i)                             '顯示整型數據
                  LabType.Caption = "數據類型為:" & "Integer"     '顯示類型
                Case 1
                  TxtShow.Text = CLng(i)                             '顯示長整型數據
                  LabType.Caption = "數據類型為:" & "Long"        '顯示類型
                Case 2
                  TxtShow.Text = I                                     '顯示單精度浮點型數據
                  LabType.Caption = "數據類型為:" & "Single"      '顯示類型
                Case 3
                  TxtShow.Text = CDbl(i)                             '顯示雙精度浮點型數據
                  LabType.Caption = "數據類型為:" & "Double"      '顯示類型
                Case 4
                  TxtShow.Text = CByte(i)                            '顯示字節型數據
                  LabType.Caption = "數據類型為:" & "Byte"        '顯示類型
                Case 5
                  TxtShow.Text = CStr(i)                             '顯示字符型數據
                  LabType.Caption = "數據類型為:" & "String"      '顯示類型
                Case 6
                  TxtShow.Text = CBool(i)                            '顯示布爾型數據
                  LabType.Caption = "數據類型為:" & "Boolean"     '顯示類型
                Case 7
                  TxtShow.Text = CDate(i)                            '顯示日期型數據
                  LabType.Caption = "數據類型為:" & "Date"        '顯示類型
            End Select
        End Sub
        '初始化,給"CmbNumType"組合框賦值
        Private Sub Form_Load()
            CmbNumType.AddItem "整型"                 '給"CmbNumType"組合框添加"整型"項
            CmbNumType.AddItem "長整型"               '給"CmbNumType"組合框添加"長整型"項
            CmbNumType.AddItem "單精度浮點型"         '給"CmbNumType"組合框添加"單精度浮點型"項
            CmbNumType.AddItem "雙精度浮點型"         '給"CmbNumType"組合框添加"雙精度浮點型"項
            CmbNumType.AddItem "字節型"               '給"CmbNumType"組合框添加"字節型"項
            CmbNumType.AddItem "字符型"               '給"CmbNumType"組合框添加"字符型"項
            CmbNumType.AddItem "布爾型"               '給"CmbNumType"組合框添加"布爾型"項
            CmbNumType.AddItem "日期型"               '給"CmbNumType"組合框添加"日期型"項
        End Sub

按Ctrl+S快捷鍵保存工程,然后按F5鍵運行工程。當選擇組合框中的“整型”選項時,運行結果如圖1.5所示。當選擇組合框中的“字符型”選項時,運行結果如圖1.6所示。當選擇組合框中的“布爾型”選項時,運行結果如圖1.7所示。當選擇組合框中的“日期型”選項時,運行結果如圖1.8所示。

圖1.5 數據類型為整型的運行圖

圖1.6 數據類型為字符型的運行圖

圖1.7 數據類型為布爾型的運行圖

圖1.8 數據類型為日期型的運行圖

源代碼解讀

(1)代碼在Form_ Load()事件中運用組合框的AddItem方法初始化組合框控件。添加數據類型分別為“整型”、“長整型”、“單精度浮點數”、“雙精度浮點數”、“字節型”、“字符型”、“布爾型”和“日期型”。除此之外,數據類型還有貨幣型(Currency)、可變型(Variant)和對象型(Object),這幾種類型在編程過程中不常用,所以只作為了解。

(2)當單擊“CmbNumType”組合框時,就觸發CmbNumType_ Click()事件。在該事件中完成的操作主要是根據選擇的數據類型顯示最終的數據和所選擇的數據類型。主要通過Select Case語句,根據 CmbNumType的 ListIndex屬性確定選擇的數據類型。然后運用“TxtShow”文本框顯示該數據類型下的數據,并通過“LabType”標簽顯示所選擇的數據類型。

1.3 常量和變量

上一節中介紹了數據類型的種類和各數據類型之間的轉換函數,讀者可以對數據類型有更深入的認識。數據類型的選擇通常與常量和變量緊密相連,定義一個常量,要知道該常量的數據類型;同樣,定義變量的同時,要賦予該變量數據類型。本節來介紹一下常量和變量的有關知識。

技術要點

本節使用的主要技術是常量和變量的定義,主要用法如下:

●常量的定義分為系統內部定義和用戶定義兩種。系統內部定義的常量是由VB和控件提供的,在代碼中可以直接使用;在編程過程中應該注意的是定義常量。

●變量的定義,也稱作變量的聲明,在使用一個變量之前必須提前聲明變量,變量的定義根據變量的類型進行定義,即不同的使用范圍聲明方式也不同。

用戶定義常量使用Const語句來實現,其主要語法為:

        [Public|Private]Const 常量名[As數據類型]=表達式

其中,Public和Private參數注明常量的適用范圍,Public表示常量為全局的,Private表示變量為局部的,這兩個參數都是可選的;“常量名”參數就是給常量命名,命名規則與標識符的命名規則一樣;“數據類型”表示常量的數據類型,一般可以省略,這時由后面的“表達式”參數來指明常量的數據類型。表達式可以是數值型常量、字符型常量、布爾型常量和日期型常量,也可以是由這幾種常量連同運算符組成的表達式。

變量的種類有普通局部變量、靜態局部變量、模塊變量和全局變量。這些變量的主要聲明語法分別如下:

        Dim 變量名[As數據類型名]
        Static變量名[As數據類型名]
        Private變量名[As數據類型名]
        Public變量名[As數據類型名]

說明:這四種聲明方式中,最常用的聲明方式是第一種。當變量聲明為全局變量時,要注意變量名的命名應盡量長,最好具有一定的意義,防止變量的重復聲明,造成沖突。

實現代碼

        Const t = 2                                         '定義常量t作為第一個操作數
        Private Sub Form_Load()
        Dim i As Single                                      '定義變量i,作為第二個操作數
        i = 1.56                                            '給變量賦值
        TxtOne.Text = t                                     '由文本框獲得第一個操作數
        TxtTwo.Text = I                                     '由文本框獲得第二個操作數
        TxtResult.Text = TxtOne.Text * TxtTwo.Text           '計算結果,并用文本框顯示出來
        End Sub

保存工程并運行工程。單擊啟動按鈕后,程序的運行結果如圖1.9所示。

圖1.9 程序運行結果圖

源代碼解讀

(1)首先定義常量t并賦值為2,這樣常量默認為整型。給常量賦值之后,在后面代碼中就不能再重新賦值,否則運行工程時,會出現如圖1.10所示的提示窗口。

圖1.10 重復給常量賦值出現的提示框

(2)在Form_ Load()事件中,首先定義變量i,然后給變量i賦值。這里給i賦值之后可以在后面的代碼中再次給i賦值,但是文本框獲得的是變量i的最終賦值。例如,在語句i=1.56后,再添加語句i=1.6,那么運行結果如圖1.11所示。

圖1.11 再次給變量定義時出現的界面圖

(3)由文本框獲得兩個操作數之后,就可以計算兩個操作數的乘積,最終結果由TxtResult控件顯示出來。

說明:這里的結果為單精度浮點數,出現了數據類型的隱式轉換,當一個整型量和一個單精度浮點數進行運算時,整型自動轉變為單精度浮點數參與運算,結果也是單精度浮點數。

1.4 運算符

在上一節中介紹了常量和變量的定義與應用,其中需要讀者了解的內容除了常量和變量的命名規則之外,還要注意常量和變量的適用范圍,這樣才能在定義變量和常量時做到有的放矢。另外,在上一節實例中提到了兩個操作數的乘積,這里的乘法就是一種運算符。在VB中,運算符有多種類型,本節就詳細介紹幾種運算符的運用實例,即運用多種運算符進行相應表達式的計算。

技術要點

本節使用的主要技術是運算符的使用。運算符主要運用在表達式中,代表某種運算功能的符號。使用運算符之前,首先應該清楚運算符的分類,運算符大致可以分為四種:賦值運算符、數學運算符、關系運算符和邏輯運算符。其中最常用的是賦值運算符“=”,其主要語法為:

        變量=值

其中,變量就是聲明過的常量或變量名,值就是對前面變量的賦值。

●數學運算符主要是為了進行數學運算,在本實例中用到的數學運算符有“加法運算符+”、“乘法運算符*”、“除法運算符/”、“整除運算符 \”、“求模運算符 Mod”,除此之外,數學運算符還有“減法運算符-”、“指數運算符^”、“連接字符串運算符&”。

●關系運算符主要用來確定兩個表達式之間的關系。在本實例中用到的關系運算符有“相等運算符=”、“大于運算符>”,除此之外,關系運算符還有“不等于運算符<>”、“小于運算符<”、“大于等于運算符> =”、“小于等于運算符< =”、“字符串模式匹配運算符Like”、“對象一致比較運算符Is”。

●邏輯運算符主要用于判斷表達式之間的邏輯關系,表達式可以為一個、兩個或多個。在本實例中用到的邏輯運算符是“或運算符Or”,除此之外,邏輯運算符還有“取反運算符Not”、“與運算符And”、“異或運算符Xor”、“等價運算符Eqv”、“蘊含運算符Imp”。

說明:運用這些運算符時要注意運算符之間的優先關系。

實現代碼

        Const x = 20                                                       '定義常量x作為第一個操作數
        Const y = 3                                                        '定義常量y作為第二個操作數
        Private Sub CmbYSF_Click()
        Text1.Text = x                                                     '獲得第一個操作數
        Text2.Text = y                                                     '獲得第二個操作數
        Select Case CmbYSF.ListIndex
        Case 0                                                              '加法的情況
        TxtResult.Text = CInt(Text1.Text)+ CInt(Text2.Text)            '加法運算表達式
        Label1.Caption = " +"                                            '在表達式中顯示運算符
        LabShow.Caption = "加法運算符"                                   '顯示選中的運算符
        Case 1                                                              '乘法的情況
        TxtResult.Text = Text1.Text * Text2.Text                            '乘法運算表達式
        Label1.Caption = "*"                                             '在表達式中顯示運算符
        LabShow.Caption = "乘法運算符"                                   '顯示選中的運算符
        Case 2                                                              '除法的情況
        TxtResult.Text = Text1.Text/Text2.Text                             '除法運算表達式
        Label1.Caption = "/"                                             '在表達式中顯示運算符
        LabShow.Caption = "除法運算符"                                   '顯示選中的運算符
        Case 3                                                              '整除的情況
        TxtResult.Text = Text1.Text \ Text2.Text                           '整除運算表達式
        Label1.Caption = "\"                                             '在表達式中顯示運算符
        LabShow.Caption = "整除運算符"                                   '顯示選中的運算符
        Case 4                                                              '求模的情況
        TxtResult.Text = Text1.Text Mod Text2.Text                         '求模運算表達式
        Label1.Caption = "Mod"                                           '在表達式中顯示運算符
        LabShow.Caption = "求模運算符"                                   '顯示選中的運算符
        Case 5                                                              '相等的情況
        TxtResult.Text = CInt(Text1.Text)= CInt(Text2.Text)            '相等運算表達式
        Label1.Caption = " ="                                            '在表達式中顯示運算符
        LabShow.Caption = "相等運算符"                                   '顯示選中的運算符
        Case 6                                                              '大于的情況
        TxtResult.Text = CInt(Text1.Text)> CInt(Text2.Text)           '大于運算表達式
        Label1.Caption =" >"                                            '在表達式中顯示運算符
        LabShow.Caption = "大于運算符"                                   '顯示選中的運算符
        Case 7                                                              '或運算的情況
        TxtResult.Text = Text1.Text Or Text2.Text                          '或運算表達式
        Label1.Caption = "Or"                                          '在表達式中顯示運算符
        LabShow.Caption = "或運算符"                                   '顯示選中的運算符
        End Select
        End Sub
        '初始化給組合框中添加運算符
        Private Sub Form_Load()
            CmbYSF.AddItem " +"                                        '添加加法運算符
            CmbYSF.AddItem "*"                                         '添加乘法運算符
            CmbYSF.AddItem "/"                                         '添加除法運算符
            CmbYSF.AddItem "\"                                         '添加整除運算符
            CmbYSF.AddItem "Mod"                                       '添加求模運算符
            CmbYSF.AddItem " ="                                        '添加相等運算符
            CmbYSF.AddItem " >"                                       '添加大于運算符
            CmbYSF.AddItem "Or"                                        '添加或運算符
        End Sub

保存工程并運行工程。當選擇組合框中的“+”選項時,運行結果如圖1.12所示。當選擇組合框中的“Mod”選項時,運行結果如圖1.13所示。當選擇組合框中的“=”選項時,運行結果如圖1.14所示。

圖1.12 加法運算結果圖

圖1.13 求模運算結果圖

圖1.14 相等運算結果圖

源代碼解讀

(1)代碼首先定義兩個常量x、y,分別賦值為20、3。然后,在Form_ Load()事件中初始化“CmbYSF”組合框。運用CmbYSF的AddItem方法加載各運算符:“+”、“*”、“/”、“\”、“Mod”、“=”、“>”、“Or”。

(2)單擊“CmbYSF”組合框時,就觸發CmbYSF_ Click()事件。在該事件中,首先由“Text1”文本框和“Text2”文本框獲得兩個常量作為操作數。然后運用Select Case語句,根據CmbYSF的ListIndex屬性,選擇不同的運算符進行運算。由“TxtResult”文本框的Text屬性,顯示最終的計算結果,并由“Label1”標簽顯示選擇的運算符。

1.5 表達式

在上一節中介紹了運算符的使用,通過學習,相信讀者對運算符的運用有更清晰的認識,并已理解各類運算符之間的優先關系。運算符的運用往往與表達式結合在一起,即運算符是表達式之間的某種運算功能。因此,本節就介紹表達式的有關知識,希望通過本節的介紹,讀者能夠更深入地理解表達式的含義及其應用。

技術要點

本節實例中主要用到的技術是組合框ComboBox的嵌套使用及Clear方法,表達式功能和用法如下:

●組合框的嵌套使用,即在單擊一個組合框的Click事件中觸發另外一個組合框的事件,在后面章節中詳細介紹。

●組合框控件的Clear方法,主要作用是清空組合框中加載的內容,這主要是為了進一步在組合框中加載內容。

●表達式的使用,主要是為了參與某種運算從而完成某種功能。

使用表達式應先了解表達式的種類,表達式有三種:算術表達式、關系表達式和邏輯表達式。

●算術表達式是由變量、常量或者函數與算術運算符組合而成的式子。主要運用在算術運算中。

●關系表達式是由操作數和關系運算符組合而成的式子,主要運用在If語句中。

●邏輯表達式是由操作數和邏輯運算符組合而成的式子。

注意:在運用表達式時,要注意書寫方式,否則可能出現錯誤。

實現代碼

          Const x = 30,y = 7                               '定義常量x,y
          Private Sub CmbExpr_Click()
            TxtOne.Text = x                                 '獲得第一個操作數
            TxtTwo.Text = y                                 '獲得第二個操作數
            Select Case CmbExpr.ListIndex
            Case 0                                           '算術表達式的情況
                CmbOper.Clear                               '對組合框中的內容進行清空
                CmbOper.AddItem " +"                      '在"CmbOper"組合框中添加加法運算符
                CmbOper.AddItem " -"                      '在"CmbOper"組合框中添加減法運算符
                CmbOper.AddItem "*"                       '在"CmbOper"組合框中添加乘法運算符
                CmbOper.AddItem "/"                       '在"CmbOper"組合框中添加除法運算符
                CmbOper.AddItem "\"                       '在"CmbOper"組合框中添加整除運算符
                CmbOper.AddItem "Mod"                     '在"CmbOper"組合框中添加求模運算符
                CmbOper.AddItem "&"                       '在"CmbOper"組合框中添加連接運算符
                CmbOper.AddItem "^"                      '在"CmbOper"組合框中添加指數運算符
            Case 1                                           '關系表達式的情況
                CmbOper.Clear                               '對組合框中的內容進行清空
                CmbOper.AddItem " ="                      '在"CmbOper"組合框中添加相等運算符
                CmbOper.AddItem " < >"                  '在"CmbOper"組合框中添加不等于運算符
                CmbOper.AddItem " >"                     '在"CmbOper"組合框中添加大于運算符
                CmbOper.AddItem " <"                     '在"CmbOper"組合框中添加小于運算符
                CmbOper.AddItem " > ="                   '在"CmbOper"組合框中添加大于等于運算符
                CmbOper.AddItem " < ="                   '在"CmbOper"組合框中添加小于等于運算符
                CmbOper.AddItem "Like"                    '在"CmbOper"組合框中添加模式匹配運算符
            Case 2                                           '邏輯表達式的情況
                CmbOper.Clear                               '對組合框中的內容進行清空
                CmbOper.AddItem "Not"                     '在"CmbOper"組合框中添加取反運算符
                CmbOper.AddItem "And"                    '在"CmbOper"組合框中添加與運算符
                CmbOper.AddItem "Or"                     '在"CmbOper"組合框中添加或運算符
                CmbOper.AddItem "Xor"                    '在"CmbOper"組合框中添加異或運算符
                CmbOper.AddItem "Eqv"                    '在"CmbOper"組合框中添加等價運算符
                CmbOper.AddItem "Imp"                    '在"CmbOper"組合框中添加蘊含等運算符
            End Select
          End Sub
          Private Sub CmbOper_Click()
            Select Case CmbExpr.ListIndex
            Case 0
                Select Case CmbOper.ListIndex
                    Case 0                                                                     '加法運算的情況
                        TxtResult.Text = CInt(TxtOne.Text)+ CInt(TxtTwo.Text) '加法運算
                        LabShow.Caption = "算術表達式中的加法運算"                          '運算類型
                    Case 1                                                                     '減法運算的情況
                        TxtResult.Text = CInt(TxtOne.Text)- CInt(TxtTwo.Text)             '減法運算
                        LabShow.Caption = "算術表達式中的減法運算"                          '運算類型
                    Case 2                                                                     '乘法運算的情況
                        TxtResult.Text = CInt(TxtOne.Text)* CInt(TxtTwo.Text)             '乘法運算
                        LabShow.Caption = "算術表達式中的乘法運算"                          '運算類型
                    Case 3                                                                     '除法運算的情況
                        TxtResult.Text = CInt(TxtOne.Text)/ CInt(TxtTwo.Text)             '除法運算
                        LabShow.Caption = "算術表達式中的除法運算"                          '運算類型
                    Case 4                                                                     '整除運算的情況
                        TxtResult.Text = CInt(TxtOne.Text)\ CInt(TxtTwo.Text)             '整除運算
                        LabShow.Caption = "算術表達式中的整除運算"                          '運算類型
                    Case 5                                                                     '求模運算的情況
                        TxtResult.Text = CInt(TxtOne.Text)Mod CInt(TxtTwo.Text)           '求模運算
                        LabShow.Caption = "算術表達式中的求模運算"                          '運算類型
                    Case 6                                                                     '連接運算的情況
                        TxtResult.Text = TxtOne.Text & TxtTwo.Text                            '連接運算
                        LabShow.Caption = "算術表達式中的連接運算"                          '運算類型
                    Case 7                                                                     '指數運算的情況
                        TxtResult.Text = CInt(TxtOne.Text)^ CInt(TxtTwo.Text)            '指數運算
                        LabShow.Caption = "算術表達式中的指數運算"                          '運算類型
                End Select
            Case 1
                Select Case CmbOper.ListIndex
                    Case 0                                                                 '相等比較運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)=CInt(TxtTwo.Text)            '相等比較運算
                        LabShow.Caption = "關系表達式中的相等比較運算"                  '運算類型
                    Case 1                                                                 '不等于比較運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)< >CInt(TxtTwo.Text)        '不等于比較運算
                        LabShow.Caption = "關系表達式中的不等于比較運算"                '運算類型
                    Case 2                                                                 '大于比較運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)>CInt(TxtTwo.Text)           '大于比較運算
                        LabShow.Caption = "關系表達式中的大于比較運算"                  '運算類型
                    Case 3                                                                 '小于比較運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)<CInt(TxtTwo.Text)           '小于比較運算
                        LabShow.Caption = "關系表達式中的小于比較運算"                  '運算類型
                    Case 4                                                                 '大于比較運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)> =CInt(TxtTwo.Text)         '大于等于比較運算
                        LabShow.Caption = "關系表達式中的大于等于比較運算"              '運算類型
                    Case 5                                                                  '小于比較運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)< =CInt(TxtTwo.Text)          '小于等于比較運算
                      LabShow.Caption = "關系表達式中的小于等于比較運算"                 '運算類型
                   Case 6                                                                    '模式匹配運算的情況
                      TxtResult.Text = TxtOne.Text Like TxtTwo.Text                          '模式匹配運算
                      LabShow.Caption = "關系表達式中的模式匹配運算"                     '運算類型
                End Select
            Case 2
                Select Case CmbOper.ListIndex
                   Case 0                                                                    '取反運算的情況
                      TxtResult.Text = Not CInt(TxtTwo.Text)                              '取反運算
                      LabShow.Caption = "邏輯表達式中的取反運算"                         '顯示運算類型
                   Case 1                                                                    '與運算的情況
                      TxtResult.Text=CInt(TxtOne.Text)And CInt(TxtTwo.Text)             '與運算
                        LabShow.Caption = "邏輯表達式中的與運算"                         '顯示運算類型
                    Case 2                                                                  '或運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)Or CInt(TxtTwo.Text)            '或運算
                        LabShow.Caption = "邏輯表達式中的或運算"                         '顯示運算類型
                    Case 3                                                                  '異或運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)Xor CInt(TxtTwo.Text)           '異或運算
                        LabShow.Caption = "邏輯表達式中的異或運算"                       '顯示運算類型
                    Case 4                                                                  '等價運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)Eqv CInt(TxtTwo.Text)           '等價運算
                        LabShow.Caption = "邏輯表達式中的等價運算"                       '顯示運算類型
                    Case 5                                                                  '蘊含運算的情況
                        TxtResult.Text=CInt(TxtOne.Text)Imp CInt(TxtTwo.Text)           '蘊含運算
                        LabShow.Caption = "邏輯表達式中的蘊含運算"                       '顯示運算類型
                End Select
            End Select
          End Sub
          '初始化"CmbExpr"組合框,添加表達式類型
          Private Sub Form_Load()
            CmbExpr.AddItem "算術表達式"
            CmbExpr.AddItem "關系表達式"
            CmbExpr.AddItem "邏輯表達式"
          End Sub

保存工程并運行工程。當選擇組合框中的“+”選項時,運行結果如圖1.15所示。當選擇組合框中的“-”選項時,運行結果如圖1.16所示。當選擇組合框中的“*”選項時,運行結果如圖1.17所示。

圖1.15 加法運算結果圖

圖1.16 減法運算結果圖

圖1.17 乘法運算結果圖

源代碼解讀

(1)代碼首先定義兩個常量x、y,并且分別賦值為30、7。這兩個常量分別作為表達式中的第一個和第二個操作數。

(2)在Form_ Load()事件中,主要對“CmbExpr”組合框進行初始化。運用控件的AddItem方法加載表達式類型:“算術表達式”、“關系表達式”、“邏輯表達式”。當單擊“CmbExpr”組合框時,就會觸發CmbExpr_ Click()事件。

(3)在CmbExpr_ Click()事件中,執行對“CmbOper”組合框的初始化。根據CmbExpr的ListIndex屬性,運用CmbOper的AddItem屬性,對“CmbOper”組合框加載不同的內容。

(4)當CmbExpr中的內容為算術表達式時,需要加載算術運算符:“+”、“-”、“*”、“/”、“\”、“Mod”、“&”、“^”。當CmbExpr中的內容為關系表達式時,需要加載關系運算符:“=”、“< >”、“>”、“<”、“> =”、“< =”、“Like”。當CmbExpr中的內容為邏輯表達式時,需要加載邏輯運算符:“Not”、“And”、“Or”、“Xor”、“Eqv”、“Imp”。另外,加載內容之前要運用CmbOper的Clear方法清空原來的內容。

(5)當單擊“CmbOper”組合框時,就觸發CmbOper_ Click()事件。在CmbOper_ Click()事件中,根據CmbExpr的ListIndex屬性和CmbOper的ListIndex屬性進行表達式的運算,由程序可以看出共有21種運算,這里不再一一解釋。

主站蜘蛛池模板: 固安县| 迭部县| 海林市| 甘南县| 徐闻县| 乌苏市| 云龙县| 兰考县| 罗甸县| 布拖县| 邹平县| 福清市| 泗阳县| 军事| 泸西县| 松阳县| 千阳县| 雅安市| 民权县| 德庆县| 张家口市| 龙陵县| 仪陇县| 海伦市| 五指山市| 乌什县| 涟源市| 扬中市| 达孜县| 枣强县| 淳化县| 永川市| 略阳县| 龙南县| 昌江| 新蔡县| 平谷区| 德安县| 五莲县| 安溪县| 自贡市|