版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章Visual Basic概述1.1知識點歸納1VB的特點(1)面向?qū)ο蟮目梢暬幊?。把程序和?shù)據(jù)“封裝”起來成為一個對象;每個對象都是可視的;從VB工具箱中選用控件(即現(xiàn)成部件,如文本框、命令按鈕等),構(gòu)成應用程序的用戶界面。(2)事件驅(qū)動的編程機制。 傳統(tǒng)的程序設(shè)計語言面向過程,VB語言面向?qū)ο笸ㄟ^事件來觸發(fā)執(zhí)行相應的事件過程(“事件驅(qū)動”) ,從而執(zhí)行對象的操作,達到運算、處理的目的。(3)結(jié)構(gòu)化的設(shè)計語言。(4)友好的VB集成開發(fā)環(huán)境。2VB中對象的基本概念(1)類和對象 類:一組用來定義對象的相關(guān)屬性和數(shù)據(jù)的集合。類是創(chuàng)建對象的模型,對象則是按模型生產(chǎn)出來的成品。 例如,人可以稱
2、之為類,而每一個人,卻只能看做是對象。對象是VB系統(tǒng)中的基本運行實體,是一組程序代碼和數(shù)據(jù)的集合。(2)對象的三要素 對象的三要素包括:屬性、方法和事件。 屬性:對象的外部特征,即用來描述和反映對象特征的參數(shù)。不同的對象有不同的屬性。每一個對象都有一組特定的屬性,可以通過屬性窗口或代碼窗口對對象的屬性進行設(shè)置。方法:是對象能夠執(zhí)行的動作。它是對象本身內(nèi)含的一些特殊函數(shù)或過程,用于完成某種特定的功能,供用戶直接調(diào)用。事件:由系統(tǒng)預先設(shè)置好的、能被對象識別的動作。一個對象可以識別響應多個不同的事件。3事件、事件過程及事件驅(qū)動 事件:由系統(tǒng)預先設(shè)置好的、能被對象識別的動作。發(fā)生在用戶與應用程序交互時
3、。如單擊控件、鼠標移動、鍵盤按下等。 事件過程:指附在對象上的用戶編寫的程序代碼,是事件的處理程序。由事件控制整個程序的執(zhí)行流程,當某個事件(一般由用戶操作來觸發(fā)) 發(fā)生時,系統(tǒng)就會自動執(zhí)行此事件的事件過程。 事件驅(qū)動方式:是圖形用戶界面的本質(zhì),由用戶控制而代碼作出響應。 即事件過程要經(jīng)過事件的觸發(fā)才能被執(zhí)行,這種工作模式稱為事件驅(qū)動方式。4設(shè)計VB應用程序的步驟VB應用程序的開發(fā),大致分為兩大部分的工作:設(shè)計用戶界面和編寫程序代碼。即先要確定對象,然后針對這些對象編寫代碼?;静襟E如下: (1) 建立工程; (2) 設(shè)計用戶界面; (3) 設(shè)置對象的屬性值; (4) 編寫程序代碼,建立事件過
4、程; (5)保存應用程序; (6)運行和調(diào)試應用程序;(7)生成可執(zhí)行文件。5控件控件是建立VB應用程序的基本元素,是VB中預先定義好的、編程能直接使用的對象,可視化設(shè)計就是通過控件實現(xiàn)的。利用控件創(chuàng)建對象是VB編程的一項重要工作。VB中的控件一般可分為三大類:內(nèi)部控件、ActiveX控件和可插入的對象控件(也叫插件):(1)內(nèi)部控件(也稱標準控件):包含在VB系統(tǒng)中,默認狀態(tài)下在工具箱中以圖形的形式顯示,這些控件既不能添加,也不能刪除。如:文本框、標簽、命令按鈕等。(2)ActiveX控件:存放于擴展名為.ocx的獨立文件中,其中包括VB各種版本提供的控件和僅在專業(yè)版和企業(yè)版中提供的控件,另
5、外還有許多第三方提供的ActiveX控件。(3)可插入的對象控件:是指能夠添加到工具箱中的對象,添加的方法是選擇“工程|部件”菜單選項打開部件窗口,在“可插入對象”選項卡選擇相應文件,添加到工具箱中。每個控件都有自己的屬性、方法和能夠識別響應的事件。6VB的工作模式VB是一個集成編輯、編譯與運行于一起的集成開發(fā)系統(tǒng)。在程序設(shè)計過程中其工作狀態(tài)可分為3中模式:設(shè)計模式、運行模式和中斷模式。為了調(diào)試程序,用戶必須知道系統(tǒng)當前所處的工作模式及其能實施的相關(guān)操作。 (1)設(shè)計模式:用于用戶基本界面的設(shè)計、相關(guān)控件的屬性設(shè)置和程序代碼編制。 (2)運行模式:用于在編輯代碼過程中編譯執(zhí)行應用程序,以觀察運
6、行效果或進行代碼調(diào)試。在該模式下,不能對程序界面及代碼進行編輯。 (3)中斷模式:用于程序運行過程中的暫時中斷,這時可以編輯程序代碼,并可在“立即窗口”中顯示變量值、中間結(jié)果或運行其他命令,但不可編輯界面。該模式主要用作程序代碼的調(diào)試和中間結(jié)果的檢查。在此模式下,選擇“運行”菜單下的“繼續(xù)”選項可以繼續(xù)運行程序,選擇“結(jié)束”選項可以中止程序的運行。7VB 常見的錯誤類型(1)編輯錯誤:在編輯代碼時,VB會對鍵入的代碼直接進行語法檢查。當發(fā)現(xiàn)代碼存在打字錯誤,遺漏關(guān)鍵字或標點符等語法錯誤,VB在Form窗口中彈出一個子窗口,提示出錯信息,出錯的那一行變成紅色。這時,用戶必須單擊“確定”按鈕,關(guān)閉
7、出錯提示窗,然后對出錯行進行修改。(2)編譯錯誤:指按了“啟動”按鈕,VB開始運行程序前,先編譯執(zhí)行的程序段時,產(chǎn)生的錯誤。此類錯誤由于用戶未定義變量、遺漏關(guān)鍵字等原因產(chǎn)生。這時,Visual Basic也彈出一個子窗口,提示出錯信息,出錯的那一行被高亮度顯示。(3) 運行錯誤:指VB在編譯通過后,運行代碼時發(fā)生的錯誤。這類錯誤往往是指令代碼執(zhí)行了一非法操作引起的。例如類型不匹配、試圖打開一個不存在的文件等。(4) 邏輯錯誤:程序運行后,得不到所期望的結(jié)果,這說明程序存在邏輯錯誤。這類錯誤往往是程序存在邏輯上的缺陷所引起。例如,運算符使用不正確、語句的次序不對、循環(huán)語句的起始、終值不正確等。通
8、常,邏輯錯誤不會產(chǎn)生錯誤提示信息,故錯誤較難排除,需要程序員仔細地閱讀分析程序以及設(shè)置斷點進行調(diào)試。8VB 程序的調(diào)試測試、調(diào)試程序的過程是查找、排除和修改程序中錯誤的過程。VB中可通過如下方式調(diào)試程序:(1)進入中斷模式通常系統(tǒng)在中斷模式下,用戶可查看各變量及屬性的當前值,觀察界面狀況,從而了解程序執(zhí)行是否正常,并且可以修改程序代碼、修改變量及屬性值等。在程序調(diào)試時,使系統(tǒng)進入中斷模式的方法有以下幾種:程序運行時發(fā)生錯誤,被系統(tǒng)檢測到而中斷。程序運行中,按組合鍵“Ctrl+Break”,也可以單擊調(diào)試工具欄中“中斷”按鈕,或選擇“運行/中斷”菜單項,就會產(chǎn)生中斷。在程序代碼中設(shè)置斷點,當程序
9、運行到斷點處就會產(chǎn)生中斷。采用逐語句或逐過程運行,每執(zhí)行一行語句或一個過程就會產(chǎn)生中斷。在程序代碼中使用Stop語句,每執(zhí)行到Stop語句時,也會產(chǎn)生中斷。在中斷模式下,最便捷的查看程序中變量或?qū)傩缘姆椒ㄊ菍⑹髽酥羔樛A粼谝榭吹淖兞可?,系統(tǒng)就會在隨后彈出的一個小方框中顯示指針所指的變量或?qū)傩缘漠斍爸?。當在中斷模式下調(diào)試完畢后,退出中斷模式的方法有:如果要退出并繼續(xù)運行程序,則可選擇“運行/繼續(xù)”菜單項,或單擊調(diào)試工具欄中“繼續(xù)”按鈕。如要結(jié)束運行,則可選擇“運行/結(jié)束”菜單項,或單擊調(diào)試工具欄中的“結(jié)束”按鈕。(2)控制程序的運行。逐語句運行。即單擊運行,每次只執(zhí)行一條語句,之后運行中斷,按
10、F8快捷鍵或選擇“調(diào)試/逐語句”菜單項執(zhí)行下一條語句。這樣可逐個語句地檢查每條語句的執(zhí)行情況。逐過程運行。當程序運行到調(diào)用過程時,逐過程運行可將整個被調(diào)用過程作為整體來執(zhí)行。按Shift+F8快捷鍵或選擇“調(diào)試/逐過程”菜單項均可實現(xiàn)逐過程運行。(3)設(shè)置斷點調(diào)試。找出程序代碼中能反映程序執(zhí)行狀況的關(guān)鍵代碼行,單擊其左邊的邊框位置,設(shè)置斷點。程序運行到斷點設(shè)置的代碼行自動停止執(zhí)行,并進入中斷模式,觀察運行情況。(4)立即窗口。立即窗口用于顯示在程序運行過程中與當前過程有關(guān)的信息,可以顯示某個變量或?qū)傩灾?,或?zhí)行單個過程或表達式。在立即窗口中可以實現(xiàn)以下功能: 用Debug.Print方法輸出信
11、息。調(diào)試程序時可在程序代碼中添加Debug.Print n等語句,將變量或表達式的值輸出到立即窗口中。程序調(diào)試完成后,應將Debug.Print語句刪除。 在設(shè)計時用來測試表達式。在設(shè)計模式下,可以在立即窗口中使用Print方法或?直接輸出一些表達式的結(jié)果。例如:在立即窗口中輸入:?Int(Rnd*5) ,按Enter鍵立即顯示一個隨機產(chǎn)生的整數(shù)。 直接從立即窗口打印。在中斷模式下,通過使用Print方法或?可在立即窗口中檢查變量或表達式的值。例如:在立即窗口中輸入:?i,j,i*j 從“立即”窗口編輯變量或?qū)傩灾?。在中斷模式下,可在立即窗口中設(shè)置變量或?qū)傩缘闹怠@纾寒敵绦蛑袛鄷r,在立即窗口
12、中給屬性重新賦值:Text1.ForeColor=vbRed,當程序繼續(xù)運行時,文本框中字體的顏色就可變成紅色。 從立即窗口中測試過程。從立即窗口可以通過指定參數(shù)值來調(diào)用過程,以測試程序程序的正確性。例如:使用新參數(shù)來計算調(diào)用函數(shù)fac()的結(jié)果:n=5:?fac(n)9VB應用程序的結(jié)構(gòu)在VB中,一個VB應用程序就是一個工程,以*.vbp工程文件的形式保存,一個工程通常包含多種類型的文件模塊,其中最常見的有: 窗體模塊(*.frm):是創(chuàng)建應用程序的基礎(chǔ)。在窗體模塊中包含窗體及其控件的屬性設(shè)置值,同時還包含在該窗體的代碼窗口中編寫的對常量、變量、類型和外部過程的聲明以及sub和functio
13、n過程。 標準模塊(*.bas):存放與窗口或控件無關(guān)的代碼,通常是其他模塊共同使用的聲明和過程代碼。 類模塊文件(*.cls):用來定義類,并可用它創(chuàng)建能被應用程序中的過程所調(diào)用的對象。 *.frx二進制文件:系統(tǒng)自動產(chǎn)生,包含屬性窗口裝入的圖片等信息。 資源文件(.res):是指將在程序運行時用到的資源集中在一起的一個文件。一個資源文件可以包括文字(TEXT)、位圖(BITMAP)、圖標(ICON)等。并且在程序中調(diào)用時不用指明路徑,這就簡化了程序的編寫并減少了發(fā)生錯誤的可能。1.2 常見錯誤和難點分析1. 對象名稱(Name)屬性輸入錯誤在窗體上創(chuàng)建的每個控件對象都有一個唯一標識它的默認
14、名稱。用戶也可以在屬性列表窗口中修改對象名。在編寫代碼時引用該對象的屬性或方法時需要指明對象名。當程序中的對象名錯誤時,系統(tǒng)會顯示“要求對象”的信息。2對象的屬性名、方法名輸入錯誤當對象的屬性名或方法名輸入出錯,編譯時系統(tǒng)會顯示“方法或數(shù)據(jù)成員未找到”的提示信息。編寫代碼時盡量使用自動列出成員功能。即當用戶在輸入控件對象名和句點后,系統(tǒng)自動列出該控件對象在運行模式下允許使用的屬性和方法,用戶可通過按空格鍵或雙擊鼠標左鍵選擇,以防止此類錯誤的出現(xiàn)。正確的系統(tǒng)按規(guī)定的大小寫表示。3混淆控件的Name屬性和Caption屬性Name屬性的值用于在程序中唯一的標識該控件對象,在窗體上不可見;而Capt
15、ion屬性的值是在窗體上顯示的內(nèi)容。4. 混淆使用文本框的text屬性和標簽的Caption屬性文本框的Text屬性和Caption屬性都可以用于表示控件在窗體上顯示的內(nèi)容的,但兩個屬性屬于不同的控件,文本框除了用于顯示信息以外,還可以用于輸入信息。5在編譯程序時出現(xiàn)“無效字符”錯誤提示,對應行以紅色字顯示。在VB中要注意英文環(huán)境下的半角符號和中文環(huán)境下全角符號的使用。VB只允許使用英文環(huán)境下的半角符號。最常見的如:逗號 , 與 ,雙引號 “ ”與“” 句號 . 與 。的區(qū)別。6. 字母和數(shù)字形狀相似輸入代碼時注意小寫字母“l(fā)”和數(shù)字“1”形式相同、小寫字母“o”與數(shù)字“0”。7. 添加多個相
16、同類型的控件時,無意形成控件數(shù)組在添加多個相同類型的控件時,可在窗體上先添加一個控件,然后“復制”“粘貼”,此時會出現(xiàn)對話框詢問是否創(chuàng)建控件數(shù)組,單擊“否”按鈕,在窗體上添加同類型不同名稱的控件。如果單擊“是”則形成控件數(shù)組。8語句書寫位置錯誤。在VB中,除了在“通用聲明”段使用Dim等變量聲明、Option語句外,任何其他語句都應放在事件過程中,否則程序運行時會顯示“無效外部過程”的提示信息。9. 打開工程時找不到對應的文件一個最簡單的VB應用程序至少也應包括一個工程文件.vbp和一個窗體文件.frm組成。工程文件記錄該工程內(nèi)所有文件包括窗體文件.frm、標準模塊文件.bas、類模塊文件.c
17、ls等的名稱和存放路徑。若用戶在上機結(jié)束后,把文件保存到磁盤上,而又遺漏了某個文件,下次打開工程時就會顯示“文件未找到”的提示信息?;蛘咴诖疟P上對某個文件進行重命名,這樣也會造成打開工程時顯示“文件未找到”的提示信息。建議用戶在編保存一個工程時,將該工程包含的所有文件保存在同一個文件夾中,通常將該工程作為一個整體復制或移動。10誤用“文件”菜單中的“添加工程”選項,形成工程組。用戶誤選“文件|添加工程”菜單選項,無意形成一個工程組。“文件”菜單中的“工程另存為”選項,現(xiàn)在變成“工程組另存為”選項。解決的辦法:在工程資源管理器窗口,選中不需要的工程,單擊鼠標右鍵打開快捷菜單,選“移除工程”選項,
18、刪除工程文件夾下的工程組文件*.vbg,再重新打開工程就可以了。1.3 習題一、選擇題1VB是一種面向?qū)ο蟮某绦蛟O(shè)計語言,構(gòu)成對象的三要素是_。(A)屬性、控件和方法 (B)屬性、事件和方法(C)窗體、控件和過程 (D) 控件、過程和模塊2窗體編輯器的主要功能是_。(A)設(shè)計窗體的外觀 (B)編寫源程序代碼(C)建立用戶界面 (D) 設(shè)置對象屬性3在代碼窗口中,當從對象列表框中選定了某一對象后,在_中會列出適用該對象的事件。(A)過程框 (B)屬性窗口 (C)事件列表框 (D工具欄4要設(shè)置窗體上個控件的屬性,可在_中進行。(A)窗體布局窗口 (B)工程資源管理器窗口(C)屬性窗口 (D) 窗體
19、窗口5某一窗體的name屬性為myForm,它的Load事件過程名稱為_。(A)MyForm_Load (B)Me_Load (C)Form_Load (D) Form1_load6要在窗體Form1內(nèi)顯示字符串”MyForm”,可以使用的語句是_。(A)Form.Caption=”MyForm” (B)Form1. Caption=”MyForm”(C)Form1.Print ”MyForm” (D) Form.Print ”MyForm”7以下不能在"工程資源管理器"窗口中列出的文件類型是 _。(A).bas (B).res (C).frm ( D).ocx8設(shè)窗體上有
20、一個文本框,名稱為text1,程序運行后,要求該文本框只能顯示信息,不能接受輸入的信息,以下能實現(xiàn)該操作的語句是_。(A) Text1.MaxLength=0 (B) Text1.Enabled=Flase (C) Text1.Visible=Flase (D) Text1.Width=0 9以下能在窗體Form1的標題欄中顯示“VisualBasic窗體"的語句是 _。(A) Form1.Name="VisualBasic窗體" (B) Form1.Title="VisualBasic窗體" (C) Form1.Caption="V
21、isualBasic窗體" (D) Form1.Text="VisualBasic窗體”10添加一個命令按鈕“開始”。若要為命令按鈕設(shè)置快捷鍵鍵,即按下Alt及字母S時,能夠執(zhí)行"開始"命令按鈕的事件過程,方法是:_。(A) 把Caption屬性設(shè)置為&Start (B) 把Caption屬性設(shè)置為S& Start(C) 把Name屬性設(shè)置為&Start (D) 把Name屬性設(shè)置為S& tart11以下敘述中錯誤的是 _。(A) 事件過程是響應特定事件的一段程序 (B) 不同的對象可以具有相同名稱的方法 (C) 對象的方
22、法是執(zhí)行指定操作的過程 (D) 對象事件的名稱可以由編程者指定 12下列關(guān)于Visual Basic 6.0的控件的敘述中,正確的是_。 (A) Visual Basic 6.0的控件分為3類:內(nèi)部控件、標準控件和ActivateX控件 (B) 標準控件可以添加,但不能刪除 (C) 啟動Visual Basic 6.0后,ActivateX控件就出現(xiàn)在工具箱 (D) ActivateX控件是擴展名為.ocx的獨立文件13下列說法錯誤的是_。(A) 窗體文件的擴展名為.frm (B) 一個窗體對應一個窗體文件 (C) Visual Basic中一個工程只包含一個窗體文件 (D) Visual B
23、asic中的一個工程最多可包含255個窗體 14以下關(guān)于Visual Basic特點的敘述中,錯誤的是( )(A) Visual Basic是采用事件驅(qū)動編程機制的語言 (B) Visual Basic程序既可以編譯運行,也可以解釋運行 (C) 構(gòu)成Visual Basic程序的多個過程沒有固定的執(zhí)行順序 (D) Visual Basic程序不是結(jié)構(gòu)化程序,不具備結(jié)構(gòu)化程序的三種基本結(jié)構(gòu) 15VB6.0集成開發(fā)環(huán)境中不能完成的功能是_。(A) 編輯源程序 (B)編譯生成可執(zhí)行文件(C) 調(diào)試運行程序 (D) 自動查找并改正程序中的語法錯誤 16 確定一個控件在窗體上的位置的屬性是_。 (A)
24、Width和 Height (B)Width或Height (C)Top和Left (D)Top或Left17若要使標簽空間顯示時不覆蓋其背景內(nèi)容,要進行設(shè)置的屬性是_。 (A) BackColor (B) BackStyle (C) ForeColor (D) BordStyle18若要使某一文本框控件在程序運行過程中能用鼠標單擊獲得輸入焦點,但不能用按下Tab鍵的方式獲得輸入焦點,則應_。(A)將其Enabled屬性設(shè)置為False,且其TabStop屬性設(shè)置為False(B)將其Enabled屬性設(shè)置為True,且其TabStop屬性設(shè)置為False(C)將其Enabled屬性設(shè)置為Fa
25、lse,且其TabStop屬性設(shè)置為True(D) 將其Enabled屬性設(shè)置為True,且其TabStop屬性設(shè)置為True19以下可以產(chǎn)生工程組文件(.vbg)的情況是_。(A)當一個程序中包含了兩個以上的窗體時(B)當一個程序中包含了兩個以上的標準模塊時(C) 當一個程序中包含了兩個以上的工程時(D) 當一個程序中包含了兩個以上的類模塊時。20當窗體上的文字或圖形被覆蓋或窗體最小化后能恢復原貌,需要將窗體的_屬性設(shè)置為True。 (A)Visible (B)AutoRedraw (C)Paint (D) Resize二、填空題 1與傳統(tǒng)的程序設(shè)計語言相比,VB最突出的特點是采用_編程機制
26、。 2VB提供兩種控制程序運行的方式,一種是_方式,另一種是_方式。3Visual Basic 6.0有3中工作模式,即_,_和_。4如果要在單擊命令按鈕Command1時執(zhí)行一段程序代碼,則應將這段代碼寫在_事件過程中。5在窗體上已經(jīng)建立了多個控件如label1、Label2、Text1和Command1,要使程序一運行時焦點就定位在Command1控件上,應對Command1控件設(shè)置_屬性的值為_。6要清除一個文本框Text1中的文字,則在程序代碼中應書寫的語句是_。三、編程題1編寫一個簡單的程序,在窗體上有兩個命令按鈕(“顯示”與“隱藏”)和一個標簽(標題為“歡迎使用”),單擊“顯示”按
27、鈕時,將標簽顯示出來,單擊“隱藏”按鈕時,將標簽隱藏起來。2窗體上含有兩個標簽、兩個文本框和兩個命令按鈕, 兩個標簽分別用于顯示文字“邊長”和“面積”,兩個文本框用于輸入數(shù)據(jù)和顯示計算結(jié)果。運行時,用戶在“邊長”文本框中輸入某一個正整數(shù),當單擊“計算”按鈕時,則在“面積”文本框中顯示該數(shù)的平方數(shù)。單擊“結(jié)束”按鈕,則結(jié)束程序的運行。1.4參考答案一、選擇題12345678910BCACCCDBCA11121314151617181920DDCDDCBBCB二、填空題1事件驅(qū)動 2逐語句 , 逐過程3設(shè)計模式 , 運行模式 , 中斷模式4Command1_Click5TabIndex ,06Te
28、xt1.Text=”三、編程題1 Private Sub Command1_Click() Label1.Visible = TrueEnd SubPrivate Sub Command2_Click() Label1.Visible = FalseEnd Sub2 Private Sub Command1_Click() Dim x As Single x = Val(Text1.Text) Text2.Text = x * xEnd SubPrivate Sub Command2_Click() EndEnd Sub第二章順序結(jié)構(gòu)的程序設(shè)計2.1 知識點歸納1VB提供的數(shù)據(jù)類型數(shù)據(jù)是程序處
29、理的對象。為了更好地處理各種各樣的數(shù)據(jù),VB定義了多種數(shù)據(jù)類型,不同類型的數(shù)據(jù),所占的存儲空間不一樣。VB提供的數(shù)據(jù)類型主要分為:標準數(shù)據(jù)類型:整型(Integer)、長整型(Long)、字節(jié)型(Byte)、單精度型(Single)、雙精度型(Double)、貨幣型(Currency)、字符串型(String)、邏輯型(Boolean)、日期型(Date)和變體型(Variant)。用戶自定義類型:可以用TypeEnd Typy語句創(chuàng)建用戶定義的類型。枚舉類型:可以用EnumEnd Enum語句來定義相關(guān)的命名常數(shù)集合。2變量和常量(1) 變量的定義和作用域 用類型說明符來標識,常用類型說明符
30、有:單精度浮點數(shù)!、雙精度浮點數(shù)、整型數(shù)據(jù)、長整型數(shù)據(jù)&、貨幣型數(shù)據(jù)、字符串型數(shù)據(jù)$。 在定義變量時指定類型,其格式如下:PublicPrivateStatic Dim 變量名 As 數(shù)據(jù)類型 變量的作用域指的是變量的有效范圍。根據(jù)定義位置和使用的變量定義語句的不同,分為3種: 局部變量:是在過程(事件過程或通用過程)內(nèi)定義的變量,其作用域是其所在的過程。局部變量在過程內(nèi)用Dim或Static聲明。 模塊變量:包括窗體變量和標準模塊變量,其作用于窗體內(nèi)的所有過程。模塊變量用Private或Dim聲明。 全局變量:作用域最大,在工程中的每一模塊和窗體都能訪問的變量。全局變量用Public
31、或Global聲明。當局部變量和全部變量同名時,在局部變量所在過程中該變量為局部變量,離開此過程為全局變量。變量名必須以字母或漢字開頭,由字母、數(shù)字或下劃線組成,長度小于等于255個字符;不能使用VB中的關(guān)鍵字、過程名、符號常量名和函數(shù)名;在為變量命名時應見名知義,盡可能簡單明了,盡量采用Visual Basic建議的變量名前綴或后綴的約定來命名,以便區(qū)分變量的類型,在同一個范圍內(nèi)變量名必須是唯一的。(2)在VB中,常量分三類,分別為:一般常量:在程序代碼中直接給出的數(shù)據(jù)。包括字符串常量(用雙引號括起來的一系列字符)、數(shù)值常量(包括整型常量、長整型常量、單精度常量、雙精度常量)、布爾常量(只有
32、True和False兩個值)、日期常量(用一對# #括起來)。 用戶自定義常量聲明常量的語法為:PublicPrivate Const 常量名 As 數(shù)據(jù)類型=<表達式>通常,為區(qū)分明顯,用戶定義的常量名用大寫字母;常量名在程序中智能引用,不能重新賦值。 VB提供的系統(tǒng)常量系統(tǒng)定義好的常量位于對象庫中,在“對象瀏覽器”中的Visual Basic(VB)、Visual Basic for Applications(VBA)等對象庫中列舉了VB的系統(tǒng)常量。如:VbOkonly、VbYesno3運算符與表達式算術(shù)運算符:(乘方)、*、/(除法)、(整除)、mod(求余)、, 優(yōu)先級從左
33、到右依次降低。字符串運算符有兩個:&和+,區(qū)別是“ + ”兩邊必須是字符串,“& ”不一定。關(guān)系運算符:=、>、>=、<、<=、<>,運算結(jié)果為邏輯值。邏輯運算符:Not、And、Or、Xor、Eqv(相等)和Imp(蘊含),其運算結(jié)果為邏輯值。日期運算符:、。注意:兩個日期可以相減,但不能相加。日期運算的結(jié)果可能是日期,也可能是相隔的天數(shù)。優(yōu)先級:當一個表達式中存在多種運算符是時,按如下優(yōu)先級的先后順序進行運算:函數(shù)>算術(shù)運算(乘方>取負>乘法/除法>整除>求余>加/減)>字符串運算符>關(guān)系運
34、算符>邏輯運算符(Not>And>Or),同級從左到右,有括號時括號內(nèi)優(yōu)先。4 常用內(nèi)部函數(shù)VB提供了大量的內(nèi)部函數(shù)供用戶在編程時調(diào)用。內(nèi)部函數(shù)按其功能可分為:數(shù)學函數(shù)、轉(zhuǎn)換函數(shù)、字符串函數(shù)、日期函數(shù)和格式輸出函數(shù)等。函數(shù)的一般調(diào)用格式:<函數(shù)名>(<參數(shù)表>)說明:參數(shù)表可以是一個參數(shù)或用逗號分隔開的多個參數(shù);參數(shù)可以是變量、常量、表達式,也可以是函數(shù)。5賦值語句格式: Let <變量>=<表達式> 或: Let 對象名.<屬性名>=<表達式>功能:將等號右邊表達式的值,賦值給等號左邊的變量或?qū)傩浴Uf明
35、:(1)關(guān)鍵字Let可以省略。(2)向?qū)ο筚x值時,應指明對象名和屬性名,系統(tǒng)默認的對象是當前窗口。(3)等號在這里稱為賦值號。(4)變量和對象一旦被賦值,新值將代替舊值。(5)賦值語句具有計算和賦值的雙重功能。(6)等號右邊的變量(對象)必須和等號右邊的數(shù)據(jù)類型一致。 注意:在代碼中區(qū)分賦值語句“”與關(guān)系運算符“”。6程序的基本構(gòu)成。程序通常由若干條語句共同協(xié)作完成一個完整的功能,一般情況下,一個完整的程序應該包含4個部分:說明部分:說明程序中使用的變量的類型、初始值、特性等。輸入部分:輸入程序中需要處理的原始數(shù)據(jù)。加工部分:對程序中的數(shù)據(jù)按需要進行加工和處理。輸出部分:將結(jié)果以某種形式進行輸
36、出。7VB程序的書寫規(guī)則在編寫程序代碼時,要遵守一定的規(guī)則。不能超越其規(guī)定來自由發(fā)揮。 (1) 一行可寫多條語句,語句間用冒號 “:” 分隔,一行最多可有255個字符。 (2) 一條語句可分成多行書寫。在VB中一般是一行寫一條語句,但若單行語句太長,也可以分若干行書寫,但在行末須加入續(xù)行符(一個空格緊跟一個下劃線 “_”)。 (3) VB代碼中不區(qū)分大小寫字母,自動將關(guān)鍵字的首字母轉(zhuǎn)換成大寫。(4) 各關(guān)鍵字之間,關(guān)鍵字和變量名、常量名、過程名之間一定要有空格分隔。 (5)使用縮進格式。為了便于閱讀,編寫程序代碼時,可以使用縮進來反映代碼的邏輯結(jié)構(gòu)和嵌套關(guān)系。(6)嚴格按照VB規(guī)定的格式和符號
37、編寫程序。與其他高級語言一樣,在VB中使用的分號、引號、括號等符號都是英文狀態(tài)下的半角符號,而不能使用中文狀態(tài)下的全角符號。(7)程序中可使用注釋,注釋以Rem開頭或用撇號“”引導注釋內(nèi)容,用撇號“”引導的注釋內(nèi)容,可直接出現(xiàn)在語句的后面。8數(shù)據(jù)的輸入輸出 一個完整的VB應用程序,應包括數(shù)據(jù)輸入、數(shù)據(jù)處理和數(shù)據(jù)輸出3個部分。通過數(shù)據(jù)輸入和數(shù)據(jù)輸出實現(xiàn)應用程序與用戶交互的功能。 數(shù)據(jù)輸入除了利用賦值語句“”為變量和對象屬性設(shè)置新值(在程序運行前的編碼階段輸入數(shù)據(jù)),或利用文本框控件供用戶在程序運行過程中輸入數(shù)據(jù)外,還可以使用InputBox()函數(shù)在程序運行過程中從鍵盤輸入數(shù)據(jù)。<變量名&
38、gt;=InputBox(<提示信息>,標題,默認內(nèi)容)說明:運行InputBox()函數(shù)可以屏幕上產(chǎn)生一個對話框供用戶輸入數(shù)據(jù),并將其輸入的內(nèi)容作為函數(shù)返回值向變量賦值。 數(shù)據(jù)輸出除了可以在窗體、標簽等標準控件上顯示信息以外,還可以使用MsgBox過程或MsgBox()函數(shù)彈出對話框顯示信息。MsgBox <提示信息>,按鈕圖標,標題說明:彈出一個MsgBox對話框,顯示提示信息,只有一個按鈕,無返回值?;?<變量名>=MsgBox (<提示信息>,按鈕圖標,標題) 說明:彈出MsgBox對話框,提示用戶選擇按鈕,將用戶選擇按鈕的結(jié)果返回,控制
39、程序的流向。9Print方法 Print方法可以在窗體上或其它圖形對象上以及打印機上輸出信息,而信息輸出的位置非常關(guān)鍵。(1)Print方法的格式 對象名. Print 表達式列表,| ;表達式表可以是一個或多個表達式,可以是數(shù)值表達式,也可以是字符串。對于數(shù)值表達式,打印表達式的值(即:Print語句具有計算和輸出雙重功能,先計算后打印);而字符串則原樣輸出。當輸出多個表達式或字符串時,各表達式之間要用分隔符隔開(,或 ;):若用 ,分隔,則按標準格式顯示數(shù)據(jù)項(以14個字符為一區(qū)段);若用 ;分隔,則按緊湊格式輸出數(shù)據(jù)項(字符之間無空格);若表達式結(jié)尾無標點符號,則執(zhí)行完該語句后,自動換行
40、;若Print語句中無表達式列表,則輸出空行。(2)用Tab()和Spc()函數(shù)定位 Tab()函數(shù)格式:Tab(<n>)功能:使用在Print語句中,把光標移動到由參數(shù)n指定的位置,并從該位置開始輸出數(shù)據(jù)。說明:要輸出的內(nèi)容放在Tab函數(shù)后,并用 ;號隔開。在一個Print方法中有多個Tab函數(shù)時,每一個Tab函數(shù)對應一個輸出項,之間用 ;號分隔。參數(shù)n可以是數(shù)值表達式,但其值是一整數(shù)。Spc()函數(shù)格式:Spc(<n>)功能:在Print輸出中,用Spc()函數(shù)可以跳過n個空格。說明:Spc函數(shù)和輸出項之間用 ;號分隔,其作用和Tab函數(shù)類似,可以相互替代。但Tab
41、函數(shù)是從對象的左端開始記數(shù),而Spc()函數(shù)只是表示兩輸出項之間的間隔。2.2常見錯誤和難點分析1. 變量名使用系統(tǒng)關(guān)鍵字、系統(tǒng)常量、函數(shù)名等。 如:Dim date As Integer 這里Date是日期函數(shù)名。2無意聲明了變體型的變量。如:Dim a,b,c As Integer 這里聲明的a和b為變體型變量,正確的應該是:Dim a As Integer,b As Integer , c As Integer3賦值號“”兩邊的表達式數(shù)據(jù)類型不匹配如:a為整型變量,文本框Text1中輸入的內(nèi)容是welcome,代碼a=Text1.Text運行過程中提示“類型不匹配”。4同時給多個變量賦值
42、,造成邏輯錯誤。要給多個變量a、b、c賦值,有的用戶寫成a=b=c=5,這條語句在C語言中是正確的,但在VB中由于賦值號與邏輯等號書寫相同,所以此語句中b和c之間、c和5之間的“=”系統(tǒng)會認為是邏輯等號,所以不會出現(xiàn)語法錯誤,而形成邏輯錯誤。5漏掉乘法運算符*在VB中書寫S=ab數(shù)學表達式時,習慣性的省略了乘法運算符,系統(tǒng)會認為是ab是一個變量,不會認為是求a乘以b ,導致邏輯錯誤。6算術(shù)運算符 / 和 的使用混淆。在VB中,/ 是除法運算符, 是整除運算符,有的用戶混淆了這兩個運算符,在求3除以2的結(jié)果時,寫成s=32,結(jié)果只有商的整數(shù)部分。7字符串連接運算出錯。字符串的連接運算賦有&
43、;和+兩種,在編寫代碼過程中,有的用戶會寫出這樣的代碼:Dim s as String , n as Integer s=”計算的結(jié)果為:”+ n系統(tǒng)提示錯誤信息“類型不匹配”。在進行字符串連接運算時,如果使用+進行連接運算,連接符兩邊應全為字符型,在使用&連接運算符進行運算時,可以不全是字符型,系統(tǒng)會自動轉(zhuǎn)換。所以這里換用&運算符或用str(n)進行數(shù)據(jù)類型轉(zhuǎn)換。8. 邏輯表達式書寫錯誤,編譯時沒有造成語法錯而形成邏輯錯。要在VB中表示數(shù)學表達式0<=x<1,有的用戶寫成:0<=x<1,編譯時沒有造成語法錯誤而形成邏輯錯。因為這里x的值不管是多少,這個
44、邏輯表達式的結(jié)果都是True。在VB中,當兩個不同類型的變量或常量參加運算時,有自動向精度高的類型轉(zhuǎn)換的功能。如邏輯常量True轉(zhuǎn)換為數(shù)值型的值為1,F(xiàn)alse為0;反之數(shù)值非0轉(zhuǎn)換為邏輯型的值為True,0為False。表達式0<=x<1的計算過程為:先計算0<=x,結(jié)果為true(-1)或False(0);不管是哪個結(jié)果,始終是<1的,表達式結(jié)果永遠都是True。正確的書寫應該是:x>=0 And x<1 。9數(shù)據(jù)溢出錯誤。有的用戶在編寫代碼求解s=10!時,定義一個整型變量s(Dim s As Integer)來表示10!的結(jié)果,編譯提示錯誤信息“溢出
45、”。在VB定義了多種數(shù)據(jù)類型,不同類型的數(shù)據(jù),所占的存儲空間不一樣。整型變量2個字節(jié)的存儲空間無法滿足10!結(jié)果的需要,發(fā)生溢出。解決的辦法是:Dim s as Long,長整型數(shù)據(jù)有4個字節(jié)的存儲空間。另外對于浮點型數(shù)據(jù)也要根據(jù)實際的數(shù)據(jù)值來決定聲明為單精度型(Single)還是雙精度型(Double)。10標準函數(shù)名輸入錯誤VB提供了很多事先定義好具有特定功能的內(nèi)部函數(shù),供用戶使用。當函數(shù)名寫錯時,運行程序,系統(tǒng)顯示錯誤提示信息“子程序或函數(shù)未定義”,單擊“確定”按鈕,在指示位置檢查函數(shù)名是否輸入正確。 11聲明局部變量和窗體級變量的問題。在VB程序中,需要用變量用來暫時存放一些中間結(jié)果,
46、這些變量在使用前需要聲明。變量一般在過程內(nèi)部聲明使用,稱為局部變量。但當多個過程需要用到同一個變量的值時,該變量必須放在所有代碼的最前面即“通用聲明”段聲明,稱為窗體級變量。12在Form_Load事件過程中print 和set_focus方法不起作用 Form_Load過程即系統(tǒng)在窗體裝入內(nèi)存時無法同步地用Print、SetFocus方法顯示或定位控件的焦點。解決方法:Print顯示信息:方法一、在屬性窗口將窗體AutoRedraw屬性設(shè)置為True。方法二、在Form_Load事件過程第一行添加Show語句SetFocus方法定位焦點:在屬性窗口中對要定位焦點的控件的TabIndex屬性值
47、設(shè)置為0。13在使用計時器控件實現(xiàn)簡單的動畫時,計時器不工作。一個計時器兩個屬性(Enabled和Interval)一個事件(Timer):只有在保證給計時器的Enabled屬性賦值True,Interval屬性值非0,timer事件過程編寫正確的情況下,計時器正常工作。2.3 習題一、選擇題1在一個語句行內(nèi)寫多條語句,語句之間應該用_來分隔。(A)逗號 (B) 分號 (C) 頓號 (D) 冒號2以下可以作為Visual Basic變量名的是_。(A)F1.1 (B)Int (C)F2A (D)2FA3當標簽的標題內(nèi)容太長,需要根據(jù)題目自動調(diào)整標簽的大小時,應設(shè)置標簽的_屬性為True。(A)
48、AutoSize (B)WordWrap (C) Enabled (D) Visible4在窗體上已經(jīng)建立了多個控件,如Text1,Label1,Command1。若要程序開始運行時焦點定位在Text1上,應將Text1的TabIndex屬性設(shè)置為_。(A)0 (B)1 (C) 2 (D) 35在程序中將變量i,t,s,d分別定義為Integer類型,Boolean類型,String類型和Date類型,下來賦值語句正確的是_。(A)s=5+”abc” (B)t=#True# (C) i=”354”+”613” (D) d=#10/05/04#6下列語句中錯誤的是 _。(A)A$=”abc” (
49、B)x=5+6 (C)print “abc” (D) print x=a+b7Visual Basic認為下面_組變量是同一個變量。 (A) A1和a1 (B) Sum和Summary(C).Aver和Average (D) A1和A_18表達式 5 Mod 3+35*2的值是 _。(A) 0 (B) 2 (C) 4 (D) 6 9 設(shè)x=4,y=8,z=7,以下表達式x>z Or z<y的值是 _。(A) 1 (B) -1 (C) True (D) False10、/、Mod、*、四個算術(shù)運算符中,優(yōu)先級最低的是_。(A) (B)/ (C)Mod (D)*11設(shè) A、B、C 表示
50、三角形的三條邊,表示條件“任意兩邊之和大于第三邊”的布爾表達式正確的是_。(A)A+B>=C OR A+C>=B OR B+C>=A(B)Not(A+B<=C AND A+C<=B AND B+C<=A)(C)A+B<C OR A+C<B OR B+C<A(D)A+B>C AND A+C>B AND B+C>A12表達式(73+1)*(185-1)的值是 _。(A)8.67 (B)7.8 (C) 6 (D)6.6713代數(shù)式x - +ln10+sin(x+2)/cos(57°) 對應的Visual Basic表達
51、式是_。(A) X1 Abs(A) +Log(10)+Sin(X2+2*3.14)/Cos(57*3.14/180)(B) X1 Abs(A) +Log(10)+Sin(X2+2*)/Cos(57*3.14/180)(C) X1 Abs(A) +Log(10)+Sin(X2+2*3.14)/Cos(57)(D) X1 Abs(A) +Log(10)+Sin(X2+2*)/Cos(57)14求一個三位正整數(shù)N的十位數(shù)的正確方法是 _。(A) Int(N/10)-Int(N/100)*10(B) Int(N/10)-Int(N/100)(C) N-Int(N/100)*100(D) Int(N-I
52、nt(N/100)*100)15 表達式Left(“asdf”,2)+UCase(“as”)的值為 _。(A) asas (B) ASAS (C) dfas (D) asAS16下列日期型常量表達正確的是 _。(A)”2/1/02” (B)2/1/02 (C)#2/1/02# (D)2/1/0217設(shè)A=”12345678”,則表達式Val(Left(A,4)+Mid(A,4,2)的值為_。(A)123456 (B)123445 (C)8 (D)618代數(shù)式 對應的 Visual Basic 表達式是 _。(A)a/b+c/d (B)a/(b+c)/d (C) (a/b+c)/d (D)a/(b+c/d)19函數(shù)Len(Str(Val(“123.4”)的值為 _。(A)11 (B)5 (C)6 (D)820下列表達式計算的結(jié)果不是”1234”的是_。(A)”12”+”34” (B)”12”&”34” (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國金屬蓋市場調(diào)查研究報告
- 2025版藝術(shù)品貨物質(zhì)押拍賣協(xié)議3篇
- 2024年股權(quán)轉(zhuǎn)讓長期協(xié)議3篇
- 2025年學校食堂蔬菜追溯與質(zhì)量保證采購協(xié)議3篇
- 2025版健身俱樂部會員卡退卡服務合同3篇
- 2024年中國蟹粉純黃市場調(diào)查研究報告
- 2024年中國蜂窩紙板精藝木門市場調(diào)查研究報告
- 專業(yè)實習報告教育機構(gòu)
- 2025年度消防設(shè)施維修改造補充協(xié)議范本(公共安全)3篇
- 2024年花卉展覽館租賃經(jīng)營合同
- 功率因數(shù)調(diào)整電費辦法
- 美發(fā)基礎(chǔ)(課堂PPT)
- WordA4信紙(A4橫條直接打印版)
- 藥品庫存清單(2015年)
- (完整版)會計準則(全文)
- 百家姓全文拼音版A4打印
- 專家論證挖孔樁專項施工方案
- IPC標準解析學習課程
- 麻花鉆鉆孔中常見問題的原因和解決辦法
- 部分常用巖土經(jīng)驗值
- 外墻真石漆購銷合同
評論
0/150
提交評論