




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第1 1章章 Visual BasicVisual Basic概述概述Visual BasicVisual Basic概述概述 Visual Basic是1991年美國微軟公司推出的可視化Basic語言.。它是在原來的Basic語言基礎(chǔ)上發(fā)展而成的。Visual Basic中無需編寫大量代碼來編輯界面元素,只需要采用搭積木構(gòu)建程序方式來編寫程序,是現(xiàn)在開發(fā)人數(shù)最多的最通用的編程工具之一。本章內(nèi)容包括:l Visual Basic特點(diǎn)l Visual Basic安裝l Visual Basic集成開發(fā)環(huán)境1.1 Visual Basic1.1 Visual Basic簡介簡介 Visual B
2、asic是一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動機(jī)制的結(jié)構(gòu)化高級程序設(shè)計(jì)語言。它可用于開發(fā)Windows環(huán)境下的各類應(yīng)用程序。它具有簡單易學(xué)、效率高、功能強(qiáng)大的特點(diǎn),可以與Windows專業(yè)開發(fā)工具SDK相媲美。 在Visual Basic環(huán)境下,開發(fā)人員利用事件驅(qū)動的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù)、動態(tài)鏈接庫(DLL)、對象的鏈接與嵌入(OLE)、開放式數(shù)據(jù)連接(ODBC)等技術(shù),可以高效、快速地開發(fā)Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。1.1.1 1.1.1 版本區(qū)分版本區(qū)分 Visual Basic有學(xué)習(xí)版、專業(yè)版
3、和企業(yè)版三種版本,以滿足不同層次的開發(fā)需要。不同版本編寫的應(yīng)用程序大多數(shù)可以在三種版本中通用。 學(xué)習(xí)版為Visual Basic的基本版本,適用于初期學(xué)習(xí)者及使用Visual Basic開發(fā)一般應(yīng)用程序的開發(fā)人員。 專業(yè)版為專業(yè)開發(fā)人員提供了功能完備的軟件開發(fā)工具。 企業(yè)版為專業(yè)編程人員開發(fā)程序提供了功能強(qiáng)大的組內(nèi)分布式應(yīng)用程序。1.1.2 Visual Basic1.1.2 Visual Basic的特點(diǎn)的特點(diǎn) 1可視化編程 2面向?qū)ο蟮某绦蛟O(shè)計(jì) 3事件驅(qū)動機(jī)制 4強(qiáng)大開放的特點(diǎn)1.1.3 1.1.3 集成開發(fā)環(huán)境集成開發(fā)環(huán)境1.1.3 1.1.3 集成開發(fā)環(huán)境集成開發(fā)環(huán)境1.1.4 1.1
4、.4 面向?qū)ο蠊δ苊嫦驅(qū)ο蠊δ?從Visual Basic 4開始,用戶可以通過類模型方式創(chuàng)建和使用對象。對象可以被當(dāng)作一個數(shù)據(jù)和單元的組合,如窗體、數(shù)據(jù)庫等。Visual Basic對象可以封裝屬性、方法和事件,創(chuàng)建時可以重新定義其封裝屬性、方法和事件。 Visual Basic對象可以極大簡化重復(fù)代碼的編寫,使開發(fā)人員精力集中在程序內(nèi)容而不是數(shù)量龐大的代碼上。Visual Basic后續(xù)版本增強(qiáng)了該功能,并添加了許多新的面向?qū)ο蟮木幊坦δ堋?.1.5 1.1.5 數(shù)據(jù)訪問數(shù)據(jù)訪問 在現(xiàn)代信息技術(shù)高度發(fā)達(dá)的今天,數(shù)據(jù)信息已經(jīng)成為最重要資源之一。Visual Basic為開發(fā)人員提供了強(qiáng)大的數(shù)
5、據(jù)訪問技術(shù),能夠更快捷、更迅速、更高效地存儲和讀取數(shù)據(jù)信息。Visual Basic提供了更為強(qiáng)大功能來支持大中型數(shù)據(jù)庫,如Oracle、SQL Server、Sybase等。1.1.6 Internet1.1.6 Internet功能功能 互聯(lián)網(wǎng)(Internet)在現(xiàn)在通訊日益發(fā)達(dá)的信息世界占據(jù)了重要的地位。Visual Basic提供了許多功能為開發(fā)具有互聯(lián)網(wǎng)功能的應(yīng)用程序提供支持和幫助。Visual Basic在開發(fā)過程中可以創(chuàng)建服務(wù)器端的動態(tài)HTML(DHTML),使用Internet Transfer控件檢索和傳輸文件,利用WebBrowser控件瀏覽網(wǎng)頁信息,采用MAPI收發(fā)電子
6、郵件等一系列激動人心的功能。1.2 Visual Basic 61.2 Visual Basic 6安裝安裝 本節(jié)將介紹如何安裝Visual Basic 6開發(fā)環(huán)境。將Visual Basic 6的安裝光盤放入計(jì)算機(jī)的光驅(qū)內(nèi),一般情況下計(jì)算機(jī)可以自動運(yùn)行其中的安裝程序。如果計(jì)算機(jī)沒有自動運(yùn)行安裝程序,雙擊光盤盤符下的Setup.exe文件,將顯示Visual Basic安裝程序界面,按照安裝程序的提示進(jìn)行相應(yīng)的操作。1.3 1.3 開始使用開始使用Visual Basic 6Visual Basic 6 Visual Basic開發(fā)程序使用圖形化界面與用戶交流。本節(jié)介紹如何使用Visual B
7、asic集成開發(fā)環(huán)境開發(fā)程序界面、設(shè)計(jì)窗體并通過實(shí)例演示如何使用Visual Basic進(jìn)行應(yīng)用程序開發(fā)。1.3.1 1.3.1 開發(fā)界面開發(fā)界面 1標(biāo)題欄 2菜單欄 3工具欄 4工具箱 5窗體設(shè)計(jì)窗口 6工程資源管理器 7“屬性”面板 8“布局”面板1.3.2 1.3.2 窗體使用窗體使用 應(yīng)用程序界面是直接面對用戶的窗體及其他控件。一個優(yōu)秀的應(yīng)用程序應(yīng)該窗體界面簡潔、漂亮,控件布局科學(xué)、合理,用戶使用舒適、方便。本小節(jié)重點(diǎn)介紹窗體的使用技巧。窗體布局調(diào)整可以在“格式”菜單中調(diào)整,也可以在“窗體編輯器”工具欄中進(jìn)行編輯。1.3.3 1.3.3 第一個程序第一個程序HelloHello,Wor
8、ldWorld 本節(jié)將創(chuàng)建第一個程序Hello-World。創(chuàng)建一個應(yīng)用程序之前,必須明確以下幾個重要步驟: (1)制定計(jì)劃。 (2)創(chuàng)建界面。 (3)編寫代碼。 (4)測試和調(diào)試程序。 (5)生成可執(zhí)行文件。 (6)打包文件。1.3.3 1.3.3 第一個程序第一個程序HelloHello,WorldWorld1.3.3 1.3.3 第一個程序第一個程序HelloHello,WorldWorld1.3.4 1.3.4 文件類型文件類型 1工程組和工程文件 2窗體文件 3程序模塊文件 4類模塊文件 5資源文件1.3.5 1.3.5 編譯可執(zhí)行文件編譯可執(zhí)行文件 應(yīng)用程序創(chuàng)建后,必須生成可執(zhí)行文
9、件才能發(fā)布給最終用戶。Visual Basic中生成可執(zhí)行文件操作非常簡單。選擇“文件”|“生成xxx.exe”命令(xxx為工程名稱),彈出“生成工程”對話框 .1.4 1.4 常見問題及解答常見問題及解答 1將Visual Basic程序安裝光盤放入光驅(qū)內(nèi),為何不自動安裝Visual Basic? 2Visual Basic程序安裝后,如何在系統(tǒng)中運(yùn)行Visual Basic程序?1.5 1.5 小結(jié)小結(jié) 本章簡單介紹了Visual Basic基本知識、安裝步驟、集成開發(fā)環(huán)境。本章重點(diǎn)和難點(diǎn)是如何安裝Visual Basic和使用Visual Basic開發(fā)應(yīng)用程序界面。讀者需要重點(diǎn)練習(xí)使
10、用Visual Basic集成開發(fā)環(huán)境。下一章將介紹數(shù)據(jù)類型、變量和常量。第第2 2章章 數(shù)據(jù)類型、變量和常量數(shù)據(jù)類型、變量和常量 數(shù)據(jù)是用來存儲程序需要調(diào)用的文字、數(shù)值、對象、圖像等,包括多種類型。變量是程序用來臨時存儲數(shù)據(jù)。常量是以字符串形式用來代替固定數(shù)值。本章內(nèi)容包括:l 數(shù)據(jù)類型l 變量l 常量2.1 2.1 數(shù)據(jù)類型數(shù)據(jù)類型 在應(yīng)用程序中Visual Basic將以更高效率來處理已定義數(shù)據(jù)類型。Visual Basic包含七種數(shù)據(jù)類型,分別為數(shù)值型(Numeric)、字符型(String)、字節(jié)型(Byte)、布爾型(Boolean)、日期型(Date)、對象型(Object)、變
11、體型(Variant)等。本節(jié)將詳細(xì)介紹七種數(shù)據(jù)類型的定義和特點(diǎn)。2.1.1 2.1.1 數(shù)值型數(shù)值型 NumericNumeric 1整數(shù) 整型:整型取值范圍為-3267832677,以2個字節(jié)(16位)存儲,用二進(jìn)制碼表示和參加運(yùn)算。 長整型:長整型取值范圍為-21474836482147483647,以4個字節(jié)(32位)存儲。 2浮點(diǎn)型 (1)單精度型 (2)雙精度型 (3)貨幣型 2.1.2 2.1.2 字節(jié)型字節(jié)型ByteByte 字節(jié)型(Byte)專為存儲二進(jìn)制數(shù)值類型,以1個字節(jié)來存儲。如果變量聲明包含二進(jìn)制數(shù),則聲明為Byte數(shù)據(jù)類型的數(shù)組。取值范圍為:0255。除了減法外,所
12、有對整數(shù)進(jìn)行處理的運(yùn)算符均可處理該類型。2.1.3 2.1.3 字符型字符型StringString 字符型(String)為最通用的數(shù)據(jù)類型之一,用來儲存文本信息。每個字符對應(yīng)1個字節(jié),由ASCII字符序列組成,包括標(biāo)準(zhǔn)的ASCII字符和擴(kuò)展ASCII字符及漢字等。字符型為包含在雙引號內(nèi)的若干個字符。 【示例2-3】顯示不同類型字符串?!啊北砻鏖L度為零的字符串為空字符串;“Visual Basic”表明為字母字符串,賦予變量為“Visual Basic”;“Hello,World 2008。”表明為混合字符串。 固定字符串最大取值范圍為65535字節(jié);變長字符串最大取值范圍為0231。 2.
13、1.4 2.1.4 布爾型布爾型BooleanBoolean 布爾型(Boolean)為邏輯型,以2個字節(jié)來存儲。它包含True或False、Yes或No。在程序中一般用于判斷語句,或者聲明該數(shù)值為兩種狀態(tài),如“開”或“關(guān)”。2.1.5 2.1.5 日期型日期型DateDate 日期型(Date)為浮點(diǎn)數(shù)值形式保存,以8個字節(jié)存儲。默認(rèn)日期范圍為1/1/1001/1/9999。Windows操作系統(tǒng)下日期范圍為1/1/198012/31/2099;時間范圍為0:00:0023:59:59。日期型數(shù)據(jù)用來表示日期類型,格式為:mm-dd-YYYY或者mm/dd/YYYY。在Visual Basi
14、c開發(fā)應(yīng)用程序中可以定制日期模式:YYYY-mm-dd。(Y或y為年,m為月,d為日)。2.1.6 2.1.6 對象型對象型ObjectObject 對象型(Object)為保存引用應(yīng)用程序中的對象,以4個字節(jié)(32位)來存儲。它可以用來引用圖形圖像、Word文件、Excel文件等。如果在運(yùn)行應(yīng)用程序之前,Visual Basic定義該特定類型對象的屬性和方法,應(yīng)用程序在運(yùn)行時速度會更快。2.1.7 2.1.7 變體型變體型VariantVariant 變體型(Variant)能保存所有類型數(shù)據(jù),可以隨時轉(zhuǎn)換該數(shù)據(jù)為其他類型。變體型可以在程序中直接聲明定義,用戶不必過多關(guān)注Variant變量中
15、的類型。Visual Basic可以在應(yīng)用程序運(yùn)行時自動進(jìn)行必要的轉(zhuǎn)換。2.1.8 2.1.8 數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換程序開發(fā)過程中,需要將不同數(shù)據(jù)類型進(jìn)行必要的轉(zhuǎn)換。Visual Basic提供了各種類型轉(zhuǎn)換相關(guān)的函數(shù),可以在程序中直接調(diào)用。如果想把某種數(shù)據(jù)類型轉(zhuǎn)換為另外一種類型,必須保證該類型數(shù)值處于待轉(zhuǎn)換數(shù)值有效范圍內(nèi)。轉(zhuǎn)換函數(shù)轉(zhuǎn)換類型中文名稱Cbool()Boolean布爾型Cbyte()Byte二進(jìn)制型Ccur()Currency貨幣型Cdate()Date日期型Cdbl()Double雙精度型Cint()Integer整數(shù)型Clng()Long長整數(shù)型Csng()Single單精
16、度型Cstr()String字符型Cvar()Variant變體型2.2 2.2 變量簡介變量簡介 變量在程序執(zhí)行過程中用以保存臨時數(shù)據(jù)信息,包含在程序執(zhí)行階段修改的數(shù)據(jù)。變量都有變量名稱,在其作用范圍內(nèi)作為惟一標(biāo)識存在。2.2.1 2.2.1 變量作用域變量作用域聲明變量可以使用Dim、Private、Public、Static作為關(guān)鍵字。以上關(guān)鍵字分別作用于不同的作用域。變量語句聲明位置范圍過程變量Dim或Static存在于過程,子過程或函數(shù)過程中聲明段聲明變量的過程、子過程或函數(shù)模塊變量Private存在于窗體或代碼模塊聲明段窗體或代碼模塊中過程全局變量PublicMain模塊中聲明段全
17、部應(yīng)用程序2.2.2 2.2.2 變量命名變量命名 變量必須要命名后才能賦值。在過程內(nèi)部聲明的變量,在該過程執(zhí)行時才存在。當(dāng)運(yùn)行過程結(jié)束時,該變量的值自動清除。變量命名必須符合以下規(guī)定:l 變量名必須以字母開頭,不能以數(shù)字或下劃線開始。l 變量不能包含嵌入的句號、空格或者其他停頓符號。l 變量長度不得超過255個字符。l 變量名不能是Visual Basic的保留字,如Name、For等。2.2.2 2.2.2 變量命名變量命名變量類型簡化前綴標(biāo)準(zhǔn)化前綴整數(shù)(Integer)NInt長整型(Long)LLng單精度型(Single)FSng雙精度型(Double)DDbl貨幣型(Currenc
18、y)CCur字符串型(String)SStr布爾型(Boolean)BBln對象型(Object)OObj變體型(Variant)VVar2.2.3 2.2.3 變量類型變量類型 變量類型包含2.1小節(jié)中所有的數(shù)據(jù)類型。除此之外,根據(jù)應(yīng)用程序需要還可以創(chuàng)建用戶自定義的類型。自定義類型聲明使用Type語句。2.2.4 2.2.4 靜態(tài)變量靜態(tài)變量 程序運(yùn)行時變量保存臨時數(shù)據(jù)。一旦程序終止,變量將自動被Visual Basic刪除。下一次程序運(yùn)行時該變量將重新被初始化。但是,應(yīng)用程序在運(yùn)行時也有可能需要保留變量數(shù)據(jù)。Visual Basic可以通過聲明靜態(tài)變量來保存記憶變量數(shù)值。Static va
19、rName as type2.3 2.3 變量聲明變量聲明 Visual Basic中聲明是事先將變量定義為保存數(shù)據(jù)內(nèi)容。在變量使用之前,進(jìn)行聲明是一個重要的編程技巧。變量聲明后可以在程序中更高效的使用變量。聲明包括顯式聲明和隱式聲明。本節(jié)將分別介紹如何顯式聲明、隱式聲明和使用定長字符串。2.3.1 2.3.1 顯式聲明顯式聲明 顯式聲明要求在程序中使用變量前,強(qiáng)制聲明該變量。如果不聲明該變量,將出現(xiàn)錯誤提示。顯式聲明使用Option Explicit語句。選擇“工具”|“選項(xiàng)”命令,彈出“選項(xiàng)”對話框。選擇“編輯器”選項(xiàng)卡,復(fù)選“要求變量聲明”選項(xiàng)。該復(fù)選框自動在新模塊中自動插入以下語句。O
20、ption Explicit2.3.1 2.3.1 顯式聲明顯式聲明Dim varName As vartype , varName2 As vartype2 Private varName As vartype , varName2 As vartype2Public varName As vartype , varName2 As vartype2Static varName As vartype , varName2 As vartype22.3.2 2.3.2 隱式聲明隱式聲明編號變量類型顯示字符1整數(shù)(Integer)%2長整型(Long)&3單精度型(Single)!4雙精
21、度型(Double)#5貨幣型(Currency)6字符串型(String)$7字節(jié)型(Byte)無8布爾型(Boolean)無9日期型(Date)無10對象型(Object)無11變體型(Variant)無2.3.2 2.3.2 隱式聲明隱式聲明nNumber%=0 將nNumber尾部添加%表示為整數(shù)sString$=”Visual Basic” 將sString尾部添加$表示為整數(shù)vVar=62.3.3 2.3.3 定長字符串定長字符串 Visual Basic中也可以聲明定義定長字符串,最長為216個字符。該字符串大小長度是固定不變的。如果該變量被賦予短于該長度的表達(dá)式,變量的剩余長度
22、將以空格填充。如果長于該長度,自動截取等于該長度的字符,其余部分將被截取。Dim varName as string * strlength2.4 2.4 常量簡介常量簡介 常量與變量區(qū)別在于運(yùn)行過程中常量表示不變的數(shù)值或字符串。常量用以代替繁復(fù)難以記憶或輸入的數(shù)值或字符。變量可以在程序中根據(jù)需要修改數(shù)據(jù),常量在定義之后無法進(jìn)行修改。常量的使用有助于改進(jìn)代碼的可讀性和可維護(hù)性。2.4.1 2.4.1 標(biāo)準(zhǔn)常量標(biāo)準(zhǔn)常量 Visual Basic為應(yīng)用程序開發(fā)提供了許多標(biāo)準(zhǔn)常量。例如,顏色定義常量、關(guān)鍵代碼常量等可以在開發(fā)過程直接引用。例如,vbBlack在Visual Basic定義為黑色,vb
23、White為白色、vbBlue為藍(lán)色。用戶可以在程序開發(fā)中直接使用該常量。Form1.backcolor=vbBlack窗體背景顏色賦予黑色Form1.Forecolor=vbWhite窗體前景色賦予白色2.4.1 2.4.1 標(biāo)準(zhǔn)常量標(biāo)準(zhǔn)常量2.4.2 2.4.2 自定義常量自定義常量 雖然Visual Basic中為開發(fā)人員提供了大量標(biāo)準(zhǔn)常量,根據(jù)應(yīng)用程序開發(fā)需要使用自定義常量。自定義常量使用Const語句進(jìn)行定義,賦予常量名稱和數(shù)值。Public|Private const varName as consttype=value2.5 2.5 本章實(shí)例本章實(shí)例 本章實(shí)例實(shí)現(xiàn)顯式聲明、隱式聲
24、明變量、聲明靜態(tài)變量、聲明常量?!緦?shí)例2-1】將使用Visual Basic程序創(chuàng)建一個新工程,添加一個新窗體,在代碼編輯窗口中輸入代碼要求強(qiáng)制顯式聲明變量,并在代碼中賦予顯式聲明變量、隱式聲明變量和自定義常量內(nèi)容。2.6 2.6 常見問題及解答常見問題及解答 1既然變體型變量可以包含所有類型數(shù)值,是否可以將變量直接聲明為變體型? 2數(shù)值型變量包含多種不同類型。聲明何種類型將更高效率在程序中使用數(shù)值型變量? 3字符型變量中的數(shù)字是否可以進(jìn)行數(shù)學(xué)運(yùn)算?2.7 2.7 小結(jié)小結(jié) 本章介紹了Visual Basic中數(shù)據(jù)類型的定義、如何顯示或隱式聲明變量和常量、變量和常量的定義及適用范圍。本章重點(diǎn)和
25、難點(diǎn)包括如何定義和使用各種數(shù)據(jù)類型的變量、常量。變量包括多種數(shù)據(jù)類型, Visual Basic中自定義常量數(shù)量龐大不易于記憶和開發(fā)使用。讀者需要在開發(fā)過程中結(jié)合實(shí)例聲明變量和常量。下一章將介紹程序設(shè)計(jì)基礎(chǔ)。第第3 3章章 程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ) 程序設(shè)計(jì)基礎(chǔ)為程序設(shè)計(jì)所必需的基礎(chǔ)知識。這部分內(nèi)容主要包括賦值語句、數(shù)學(xué)運(yùn)算語句、代碼編寫、流程控制等。創(chuàng)建用戶界面形成應(yīng)用程序的外表和框架,還需要為應(yīng)用程序添加代碼。本章內(nèi)容包括:l 賦值語句l 數(shù)學(xué)運(yùn)算語句l 代碼模塊l 編寫事件3.1 3.1 賦值語句賦值語句 賦值,顧名思義是將字符、數(shù)值等賦予變量。在程序開發(fā)過程中,創(chuàng)建一個變量后,必須通過
26、設(shè)置一個等號賦予變量數(shù)值。Let varName = Expression3.2 3.2 數(shù)學(xué)運(yùn)算語句數(shù)學(xué)運(yùn)算語句數(shù)學(xué)運(yùn)算運(yùn)算符號加法+減法-乘法*除法/整除求模運(yùn)算Mod指數(shù)運(yùn)算(TxtTax+100)*1.089/693.2.1 3.2.1 加法和減法加法和減法 1加法運(yùn)算 Result = Expression1+ Expression2 2減法運(yùn)算 Result = Number1 - Number2 3.2.2 3.2.2 乘法和除法乘法和除法 1乘法運(yùn)算 Result = Number1*Number2 2除法運(yùn)算 Result = Number1/Number2 Result =
27、 Number1Number2 Result = Number1 Mod Number23.2.3 指數(shù)運(yùn)算指數(shù)運(yùn)算 Visual Basic中指數(shù)運(yùn)算符是符號“”,用來求一個數(shù)字的次方。Result = NumberExponent3.2.4 3.2.4 比較運(yùn)算符比較運(yùn)算符比較運(yùn)算符用來比較兩個操作數(shù)的大小。比較運(yùn)算符運(yùn)算結(jié)果是一個邏輯值True或False。運(yùn)算符比較表達(dá)式=相等X=Y不相等XY小于X大于XY=小于等于X=大于等于X=Y3.2.5 3.2.5 邏輯運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算又被稱為布爾運(yùn)算。邏輯運(yùn)算符要求兩個操作數(shù)都為邏輯值。邏輯中文說明表達(dá)式Not非“取反”運(yùn)算。True
28、取反值為False,F(xiàn)alse取反為True。Not XAnd與當(dāng)左右操作數(shù)都為True時,結(jié)果為True,否則為False。X and YOr或左右操作數(shù)只要一個為True,結(jié)果為True。只有兩個操作數(shù)的值都為False時,運(yùn)算結(jié)果為False。X or YXor異或左右操作數(shù)相等都為True或False,結(jié)果為False;否則為True。X Xor YEqv等價左右操作數(shù)相等都為True或False,結(jié)果為True;否則為False。X eqv YImp蘊(yùn)含左操作數(shù)為True,右操作數(shù)為False,結(jié)果為False。其余三種為True。X imp Y3.2.6 3.2.6 運(yùn)算順序運(yùn)算順
29、序算術(shù)比較邏輯指數(shù)運(yùn)算()相等(=)Not負(fù)數(shù)()不等()And乘法和除法(*、 /)小于()Xor求模運(yùn)算(Mod)小于或相等(=)Imp字符串連接(&) 3.3 3.3 代碼模塊代碼模塊 Visual Basic的程序代碼存儲在代碼模塊中。代碼模塊包括三種類型:窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。以上三種模塊都可以包含作用域不同的聲明段和過程。本小節(jié)分別介紹窗體模塊、標(biāo)準(zhǔn)模塊和類模塊。3.3.1 3.3.1 窗體模塊窗體模塊 在Visual Basic開發(fā)程序過程中,最簡單的應(yīng)用程序只包含一個窗體,應(yīng)用程序的所有代碼都保存在窗體模塊中。窗體模塊(后綴frm)是大多數(shù)Visual Basic
30、應(yīng)用程序的基礎(chǔ)。窗體模塊可以包含處理事件的過程、通用過程以及變量、常數(shù)、類型和外部過程的窗體級聲明。3.3.2 3.3.2 標(biāo)準(zhǔn)模塊標(biāo)準(zhǔn)模塊 標(biāo)準(zhǔn)模塊(后綴bas)在應(yīng)用程序中保存其他模塊訪問的全局過程、函數(shù)、聲明。當(dāng)開發(fā)的應(yīng)用程序相對龐大復(fù)雜時,在不同窗體中包含相同的可執(zhí)行的公共代碼??稍跇?biāo)準(zhǔn)模塊中編寫該公共代碼并允許被其他窗體或模塊調(diào)用。3.3.3 3.3.3 類模塊類模塊 Visual Basic中類模塊(后綴cls)是面向?qū)ο缶幊痰幕A(chǔ)。開發(fā)時可以在類模塊中編寫代碼建立新對象。該新對象可以包含自定義的屬性和方法。實(shí)際上窗體正是這樣一種類模塊,可顯示為內(nèi)置其他控件的窗體。3.4 3.4
31、事件簡介事件簡介 事件是一種響應(yīng)指定時間被特定對象(窗體或控件等)識別并執(zhí)行的操作。開發(fā)人員可以在事件過程中編寫特定程序代碼,事件一旦發(fā)生就會被執(zhí)行。每個對象都包括一組事件集合。本節(jié)將介紹如何編寫和調(diào)用事件過程。3.4.1 3.4.1 編寫事件過程編寫事件過程事件說明Change用戶更改文本信息時引發(fā)Click用戶單擊鼠標(biāo)時引發(fā)(一般為鼠標(biāo)左鍵)Dblclick用戶雙擊鼠標(biāo)時引發(fā)Gotfocus對象獲得焦點(diǎn)時引發(fā)Lostfocus對象失去焦點(diǎn)時引發(fā)Keypress焦點(diǎn)對象按鍵并松開引發(fā)KeyDown焦點(diǎn)對象按鍵引發(fā)Keyup焦點(diǎn)對象松開引發(fā)MouseDown鼠標(biāo)在對象上按下鼠標(biāo)按鈕引發(fā)Mous
32、eup鼠標(biāo)在對象上松開鼠標(biāo)按鈕引發(fā)Mousemove鼠標(biāo)在對象上移動時引發(fā)3.4.2 3.4.2 調(diào)用事件過程調(diào)用事件過程 應(yīng)用程序開發(fā)時需要編寫和調(diào)用許多過程。事件過程是由Visual Basic調(diào)用自身的特殊過程。與普通過程調(diào)用相同,需要在不同時段中運(yùn)行相同事件過程。只要調(diào)用事件過程名稱正確,就可以在多處運(yùn)行該事件過程。Private Sub Command1_Click() MsgBox 當(dāng)前日期為: & DateEnd SubPrivate Sub Form_Load() Call Command1_ClickEnd Sub3.5 3.5 編輯代碼編輯代碼 本節(jié)介紹如何編寫代碼
33、,包括合并多個代碼行、添加注釋以及Visual Basic命名約定。3.5.1 3.5.1 單行語句分成多行單行語句分成多行 復(fù)雜應(yīng)用程序代碼編寫過程中會遇到非常長的字符串。為了更好的編寫代碼,可以使用續(xù)行符(一個空格和一個下劃線)將一段長語句分成多行。使用續(xù)行符使代碼易于閱讀和編寫。Data1.recordsource= &_“Select * from title_company” &_ “where titleName=salary” &_ ”and company=skyrising”3.5.2 3.5.2 多行語句合并一行多行語句合并一行 一般情況下,Visu
34、al Basic一行只有一條語句。但是可以將兩條或多條短語句合并到一行,中間需要用冒號(:)將其分開。nRed=38:ngreen=36:nblue=128:nmycolor= nRed + ngreen + nblue 3.5.3 3.5.3 添加注釋添加注釋 優(yōu)秀的程序員都具有在關(guān)鍵步驟下添加注釋的好習(xí)慣。添加注釋需要在Visual Basic一條語句的最后添加注釋符()或關(guān)鍵字Rem。注釋符在程序運(yùn)行時會通知Visual Basic自動忽略注釋符之后的語句。這樣便于日后檢查修改程序。這是第一條注釋內(nèi)容,以后將會有大量注釋添加Rem 這是用rem添加注釋內(nèi)容Msgbox “添加注釋是一個良
35、好的習(xí)慣”3.5.4 3.5.4 命名約定命名約定 在編寫Visual Basic代碼時,分別要給變量、常量、函數(shù)、過程命名。在聲明變量、常量、函數(shù)、過程時必須遵守以下命名規(guī)定:l 命名必須以字母開頭。l 命名不可以超過255個字符。l 命名不可以包含特殊符號。l 命名不可以和默認(rèn)關(guān)鍵字同名。3.6 3.6 本章實(shí)例本章實(shí)例 本節(jié)主要鼠標(biāo)移動時顯示橫坐標(biāo)和縱坐標(biāo)的差值?!緦?shí)例3-1】編寫窗體Mousemove事件,顯示鼠標(biāo)橫坐標(biāo)和縱坐標(biāo)的差值。3.7 3.7 常見問題及解答常見問題及解答 1是否可以使用Name、Dim等與關(guān)鍵字同名賦予變量、函數(shù)等? 2添加注釋是否增加程序大小、影響程序運(yùn)行效
36、率? 3編寫程序代碼時,經(jīng)常出現(xiàn)提示“編譯錯誤,缺少標(biāo)識符”?3.8 3.8 小結(jié)小結(jié) 本章主要介紹了Visula Basic中賦值語句、數(shù)學(xué)運(yùn)算語句、代碼模塊、編寫事件、編輯代碼、添加注釋的使用方法。本章重點(diǎn)難點(diǎn)是比較運(yùn)算符和邏輯運(yùn)算符的使用。以上兩種運(yùn)算符邏輯復(fù)雜、不易于掌握。讀者需要結(jié)合實(shí)例源碼進(jìn)行分析學(xué)習(xí)。第第4 4章章 流程控制流程控制 流程控制是Visual Basic應(yīng)用程序開發(fā)中對特定條件進(jìn)行分析、比較、判斷,主要包括判斷語句和循環(huán)語句。判斷語句為根據(jù)不同的判斷結(jié)果進(jìn)行不同的操作。循環(huán)語句可以進(jìn)行多次數(shù)學(xué)運(yùn)算。本章內(nèi)容包括:l 判斷語句。l 循環(huán)語句。4.1 4.1 判斷語句判
37、斷語句 判斷語句在復(fù)雜應(yīng)用程序流程控制中具有重要作用。程序中如果不添加判斷語句,程序?qū)牡谝恍写a開始運(yùn)行,直至最后一行程序終止,無法響應(yīng)用戶的操作。判斷語句可根據(jù)所給的條件控制程序流程,只運(yùn)行其中特定程序代碼。判斷語句包括If語句和Select Case語句。4.1.1 If4.1.1 If語句語句 應(yīng)用程序中可能只需要運(yùn)行某個符合條件的語句。If語句根據(jù)表達(dá)式的結(jié)果選擇執(zhí)行一段代碼。標(biāo)準(zhǔn)語法有單行語句和多行語句兩種形式。If condition Then statementsElse ElsestatementsIf condition Then statementsElse Elsest
38、atementsEnd If4.1.2 4.1.2 多重多重If If語句語句 Visual Basic還支持多重If語句,對多個條件進(jìn)行判斷執(zhí)行指定代碼。If condition Then statementsElseIf condition-n Then ElseIfstatementsElse ElsestatementsEnd If4.1.3 Select Case4.1.3 Select Case語句語句 判斷語句另一個重要方法是使用Select Case語句。根據(jù)運(yùn)算表達(dá)式的條件結(jié)果,允許有條件執(zhí)行多個代碼段中的指定段。對于多重If語句,使用Select Case語句相對更加富有可
39、讀性。Select Case testExpression Case Expressionlist1 statementblock-1 Case Expressionlist2 statementblock-2 . Case Else statementblock-nEnd Select4.2 4.2 循環(huán)語句循環(huán)語句 流程控制的重要方法之一是循環(huán)語句。循環(huán)語句主要在程序中重復(fù)運(yùn)行特定任務(wù)。Visual Basic開發(fā)程序中主要包括計(jì)數(shù)循環(huán)、條件循環(huán)、枚舉循環(huán)。本節(jié)主要講述For循環(huán)(計(jì)數(shù)循環(huán))、Do和While循環(huán)(條件循環(huán))、For-each循環(huán)(枚舉循環(huán))。4.2.1 For4.2.1
40、For循環(huán)循環(huán) Viusal Basic語言中使用For循環(huán)主要用來進(jìn)行計(jì)數(shù)。For循環(huán)又可以稱為For-Next循環(huán),主要采用For關(guān)鍵字和Next關(guān)鍵字。For Counter = Start To End Step step statements Exit For statementsNext counter4.2.2 Do4.2.2 Do循環(huán)循環(huán) For循環(huán)通過步長計(jì)數(shù)來運(yùn)行程序。在特定條件下運(yùn)行特定代碼,需要用到Do循環(huán)和下節(jié)的While循環(huán)。Do循環(huán)通過判斷表達(dá)式條件是True還是False來確定是否結(jié)束循環(huán)。Do While|Until condition statements
41、Exit Do statementsLoop4.2.3 While4.2.3 While循環(huán)循環(huán) 在Visual Basic應(yīng)用程序開發(fā)中,經(jīng)常可以看到類似While-WEnd這樣的循環(huán)語句。這種循環(huán)是早期版本遺留下來的,高版本的Visual Basic中依然支持此用法。但是,筆者推薦使用前兩種循環(huán)。While condition statementsWEnd4.2.4 4.2.4 枚舉循環(huán)枚舉循環(huán) 枚舉循環(huán)又被稱為For-each-next循環(huán)。與For-next循環(huán)語句略有不同,它將數(shù)組或?qū)ο蠹现械膶ο笾貜?fù)執(zhí)行一段代碼,并不是重復(fù)執(zhí)行一定次數(shù)相同代碼。For-each-next循環(huán)語句對
42、不知數(shù)目的相同對象進(jìn)行操作時具有明顯優(yōu)點(diǎn)。For Each element In group statements Exit For statementsNext element4.3 4.3 本章實(shí)例本章實(shí)例 本章實(shí)例實(shí)現(xiàn)單行If語句、多重If語句判斷工資范圍計(jì)算稅款、Select Case語句判斷不同職務(wù)人員工資和顯示學(xué)生成績、For循環(huán)顯示高斯運(yùn)算總和、Do循環(huán)顯示5行#號、枚舉循環(huán)顯示打印機(jī)設(shè)備名稱?!緦?shí)例4-1】演示單行If語句的使用。4.4 4.4 常見問題及解答常見問題及解答 1是否可以使用多重If語句代替Select Case語句? 2運(yùn)行包括循環(huán)語句的程序時系統(tǒng)沒有任何反映?
43、 3For循環(huán)與Do循環(huán)、While循環(huán)有什么區(qū)別?4.5 4.5 小結(jié)小結(jié) 本章主要介紹了判斷語句和循環(huán)語句的定義,主要包括If語句和Select Case語句、For循環(huán)、Do循環(huán)、While循環(huán)、枚舉循環(huán)的語法知識,以及如何根據(jù)應(yīng)用程序需要使用判斷和循環(huán)語句。其中,循環(huán)語句循環(huán)過程難于控制,需要結(jié)合實(shí)例多加分析和實(shí)踐。第第5 5章章 過程和函數(shù)過程和函數(shù) 過程和函數(shù)就是在程序中可以被重復(fù)使用的代碼。當(dāng)應(yīng)用程序比較復(fù)雜時,開發(fā)人員可能需要在程序多處使用相同的代碼。在Visual Basic應(yīng)用程序開發(fā)中,重要任務(wù)之一就是創(chuàng)建可重復(fù)使用的代碼。本章內(nèi)容包括:l 過程l 函數(shù)5.1 5.1 過
44、程過程 過程就是在應(yīng)用程序可以被多次重復(fù)使用的代碼段。使用過程具有以下優(yōu)點(diǎn):復(fù)雜任務(wù)分解成多個簡單代碼段;易于讀寫,具有較強(qiáng)的可讀性和可維護(hù)性。前面章節(jié)介紹的事件過程就是Visual Basci定義過程的一種。本節(jié)介紹的過程是用戶創(chuàng)建的自定義過程。5.1.1 Sub5.1.1 Sub過程概述過程概述 Sub過程是可以被重復(fù)執(zhí)行的無返回值的代碼段。Private | Public Static Sub Name (Arglist) statements Exit Sub statementsEnd Sub5.1.2 5.1.2 添加添加SubSub過程過程 添加Sub過程有第一種方法:5.1.2
45、 5.1.2 添加添加SubSub過程過程 添加Sub過程有第二種方法。Sub showmsg()End Sub5.1.3 5.1.3 調(diào)用調(diào)用SubSub過程過程 調(diào)用Sub過程主要使用Call語句或過程名+參數(shù)形式調(diào)用。Call SubName ArglistSubName Arglist5.1.4 5.1.4 使用使用Sub MainSub Main 1設(shè)置啟動窗體 2無啟動窗體時啟動5.1.5 5.1.5 確定過程作用域確定過程作用域 1公共過程 2局部過程 3靜態(tài)變量過程5.2 5.2 傳遞參數(shù)傳遞參數(shù) Visual Basic提供了非常靈活的傳遞參數(shù)方式,允許使用可選參數(shù)和可變參數(shù)
46、,使用傳值引用和傳地址引用方法。Optional ByVal | ByRef ParamArray varName( ) As type = defaultvalue5.2.1 5.2.1 可選參數(shù)和可變參數(shù)可選參數(shù)和可變參數(shù) 1可選參數(shù) 2可變參數(shù)5.2.2 5.2.2 傳值引用和傳地址引用傳值引用和傳地址引用 1傳值引用 2傳地址引用Sub prog(byval a as integer) (添加代碼)End SubSub prog(byref a as integer) (添加代碼)End Sub5.3 5.3 函數(shù)函數(shù) 函數(shù)為編輯代碼時可以被程序調(diào)用帶有返回值的代碼段。本節(jié)將介紹函數(shù)定
47、義和使用方法。5.3.1 5.3.1 定義函數(shù)定義函數(shù) Function過程又被稱為函數(shù)過程,與Visual Basic內(nèi)置函數(shù)完全相同。函數(shù)與子過程區(qū)別為,函數(shù)帶有返回值,而子過程沒有返回值。Public | Private | Static Function Name (Arglist) As type statements Name = ExpressionExit Function statementsName = ExpressionEnd Function5.3.2 5.3.2 確定函數(shù)作用域確定函數(shù)作用域 1公共函數(shù) 2局部函數(shù) 3靜態(tài)變量函數(shù)5.3.3 5.3.3 調(diào)用函數(shù)調(diào)用
48、函數(shù) 函數(shù)調(diào)用和過程調(diào)用基本相似,惟一不同之處在于函數(shù)可以有返回值。如果無返回值,用Call語句調(diào)用函數(shù)。Call funName ArglistReturn=funName Arglist5.3.4 5.3.4 傳遞參數(shù)和返回值傳遞參數(shù)和返回值 函數(shù)傳遞參數(shù)的方法與過程完全相同。不在此贅述。函數(shù)與過程最重要的區(qū)別是函數(shù)有返回值。過程的數(shù)據(jù)類型決定其返回值的數(shù)據(jù)類型??梢栽贏rglist之后使用As關(guān)鍵字來指定函數(shù)返回值的數(shù)據(jù)類型。在Arglist中,可以使用As子句來指定任何傳給該過程的參數(shù)的數(shù)據(jù)類型。不但可以指定為任何標(biāo)準(zhǔn)數(shù)據(jù)類型,還可以在Arglist中指定As Any來禁止類型檢查,從
49、而允許將任意數(shù)據(jù)類型傳遞給該過程。5.4 5.4 本章實(shí)例本章實(shí)例 本章實(shí)例創(chuàng)建過程、函數(shù)計(jì)算三個數(shù)平方之和、創(chuàng)建加密字符串?!緦?shí)例5-1】創(chuàng)建一個過程,計(jì)算三個數(shù)平方之和。 圖5.4 運(yùn)行窗體 5.5 5.5 常見問題及解答常見問題及解答 1過程或函數(shù)在窗體和模塊有什么區(qū)別? 2參數(shù)可以設(shè)計(jì)為可選參數(shù)和可變參數(shù),是否可以多設(shè)計(jì)幾個可選參數(shù)? 3如何使用傳值引用和傳地址引用?5.6 5.6 小結(jié)小結(jié) 本章主要介紹了過程和函數(shù)的定義以及如何根據(jù)應(yīng)用程序的需要調(diào)用過程和函數(shù)。本章重點(diǎn)難點(diǎn)包括:過程和函數(shù)如何傳遞參數(shù)、函數(shù)如何返回值。其中,函數(shù)傳遞參數(shù)和返回值結(jié)構(gòu)復(fù)雜難于掌握。第第6 6章章 數(shù)組數(shù)
50、組 數(shù)組是具有相同名字、不同下標(biāo)的一組變量。使用數(shù)組可以縮短和簡化程序,可以利用索引值設(shè)計(jì)循環(huán),高效處理各種程序運(yùn)行需要。數(shù)組包括固定大小的數(shù)組和動態(tài)數(shù)組。本章內(nèi)容包括:l 固定數(shù)組。l 動態(tài)數(shù)組。6.1 6.1 固定數(shù)組固定數(shù)組 固定數(shù)組顧名思義就是固定元素?cái)?shù)量的數(shù)組。固定數(shù)組包括一維數(shù)組和多維數(shù)組。固定數(shù)組中使用一個下標(biāo)就能確定數(shù)組元素在數(shù)組中的位置稱為一維數(shù)組。具有兩個或多個下標(biāo)的變量數(shù)組稱為二維或多維數(shù)組。本節(jié)將介紹固定數(shù)組的定義和使用方法。6.1.1 6.1.1 聲明數(shù)組聲明數(shù)組 數(shù)組和變量使用方法不完全相同。變量可以有隱式聲明。數(shù)組必須顯式聲明后使用。Public|Dim|priv
51、ate|static arraryname(Num1 to Num2) as type6.1.2 6.1.2 設(shè)定上下界設(shè)定上下界 Visual Basic聲明數(shù)組時,在數(shù)組名之后跟一個用括號括起來的上界。上界不得超過長整型Long數(shù)據(jù)類型的范圍(-2,147,483,648到2,147,483,647)。默認(rèn)下標(biāo)下界為0。如果希望下標(biāo)下界從1開始,可以通過Option Base語句來聲明。該語句用來指定數(shù)組下標(biāo)默認(rèn)下界。Option base 1數(shù)組下界從1開始Dim Numbers (10) As Integer數(shù)組包含10個元素Dim Sums (20) As Double數(shù)組包含20個
52、元素6.1.3 6.1.3 多維數(shù)組多維數(shù)組 多維數(shù)組與一維數(shù)組相對應(yīng)。多維數(shù)組在現(xiàn)實(shí)生活中具有很重要的意義。如屏幕坐標(biāo)、三維動畫數(shù)據(jù)的設(shè)定值等是典型的多維數(shù)組。聲明多維數(shù)組與一維數(shù)組完全相同。Dim matrix(9,9) as integerDim matrix(9,9,9) as integer6.2 6.2 動態(tài)數(shù)組動態(tài)數(shù)組 動態(tài)數(shù)組可以在程序運(yùn)行時動態(tài)改變數(shù)組大小。Visual Basic應(yīng)用程序開發(fā)中需要動態(tài)數(shù)組來保存多維數(shù)組數(shù)值。動態(tài)數(shù)組具有靈活方便管理數(shù)組的能力。本節(jié)介紹動態(tài)數(shù)組定義和使用方法。6.2.1 6.2.1 創(chuàng)建動態(tài)數(shù)組創(chuàng)建動態(tài)數(shù)組 聲明動態(tài)數(shù)組和普通數(shù)組基本相同。根
53、據(jù)不同關(guān)鍵字定義不同作用域范圍。為數(shù)組賦予一個空維數(shù)表,將該數(shù)組聲明為動態(tài)數(shù)組。Public|Private|Static|Dim arr()ReDim Preserve varname(subscripts) As type6.2.2 6.2.2 使用動態(tài)數(shù)組使用動態(tài)數(shù)組 動態(tài)數(shù)組使用ReDim關(guān)鍵字。每次使用ReDim關(guān)鍵字,以前數(shù)組內(nèi)容全部自動清空。聲明數(shù)組Dim array_m()動態(tài)聲明數(shù)組為二維數(shù)組ReDim array_m(3, 3)For i = 1 To 3For j = 1 To 3 計(jì)算表達(dá)式 array_m(i, j) = i * j Print 動態(tài)數(shù)組乘積為: &a
54、mp; array_m(i, j) Next jNext i6.3 6.3 本章實(shí)例本章實(shí)例 本章實(shí)例創(chuàng)建聲明數(shù)組、多維數(shù)組、動態(tài)數(shù)組,說明如何計(jì)算數(shù)組最大值、二維數(shù)組運(yùn)算表達(dá)式數(shù)值、動態(tài)數(shù)組運(yùn)算結(jié)果?!緦?shí)例6-1】計(jì)算數(shù)組最大值。 圖6.3 運(yùn)行窗體6.4 6.4 常見問題及解答常見問題及解答 1數(shù)組num(9)中共計(jì)9個數(shù)字是否正確? 2動態(tài)數(shù)組可以在程序運(yùn)行時改變數(shù)組大小,是否可以將數(shù)組全部聲明為動態(tài)數(shù)組? 3可以在聲明動態(tài)數(shù)組時保存以前動態(tài)數(shù)組內(nèi)容?6.5 6.5 小結(jié)小結(jié) 本章主要介紹了固定數(shù)組、動態(tài)數(shù)組的創(chuàng)建、使用方法。并結(jié)合實(shí)例演示如何創(chuàng)建固定數(shù)組和動態(tài)數(shù)組。本章重點(diǎn)難點(diǎn)包括:如
55、何正確聲明和使用動態(tài)數(shù)組。動態(tài)數(shù)組在編程開發(fā)中使用方法復(fù)雜,需要結(jié)合實(shí)例多分析和實(shí)踐。第第7 7章章 錯誤處理錯誤處理 現(xiàn)在的Windows應(yīng)用程序都非常龐大和復(fù)雜,不可避免將出現(xiàn)一些錯誤。當(dāng)事情出現(xiàn)錯誤時應(yīng)用程序如何響應(yīng)是用戶程序設(shè)計(jì)非常重要的一部分。一個功能完善的應(yīng)用程序應(yīng)該預(yù)料到錯誤可能出現(xiàn)并及時處理或提示用戶。Visual Basic不僅提供了功能強(qiáng)大的程序設(shè)計(jì)環(huán)境,也提供了一個界面友好、簡便實(shí)用的程序調(diào)試工具。本章內(nèi)容包括:l 錯誤概述。l 錯誤捕獲和處理。l 調(diào)試程序。7.1 7.1 錯誤概述錯誤概述 錯誤在應(yīng)用程序開發(fā)和運(yùn)行過程中表現(xiàn)多樣。錯誤通常包括語法錯誤、運(yùn)行錯誤、邏輯錯誤
56、三種。本節(jié)將分別介紹三種錯誤不同的表現(xiàn)形式和處理方法。7.1.1 7.1.1 語法錯誤語法錯誤 語法錯誤是初學(xué)編程者最常見的錯誤。通常是輸入不正確的代碼,包括錯誤地輸入關(guān)鍵字、遺忘了標(biāo)點(diǎn)符號或引用不正確的數(shù)據(jù)結(jié)構(gòu)。具有語法錯誤的程序不能正常運(yùn)行,也不能編譯成可執(zhí)行文件。通常Visual Basic中包含“自動語法檢測”選項(xiàng),可以發(fā)現(xiàn)大部分語法錯誤并提示改正。7.1.2 7.1.2 邏輯錯誤邏輯錯誤 如果代碼沒有語法錯誤可以運(yùn)行,但是運(yùn)行結(jié)果與設(shè)計(jì)時完全不同。這樣的代碼中必然存在邏輯錯誤,如語法錯誤(陷入死循環(huán))、符號錯誤(加法改為減法)、數(shù)值范圍錯誤(設(shè)計(jì)數(shù)值為1至100,運(yùn)行時為1至99)等
57、。程序邏輯錯誤是最不容易發(fā)現(xiàn)的嚴(yán)重錯誤。大部分邏輯錯誤可以歸結(jié)為數(shù)據(jù)錯誤、流程控制錯誤。Dim n As Integer聲明變量Dim s As IntegerN=1For n = 1 To 3for循環(huán)3次 s = s + n運(yùn)算表達(dá)式Next n7.1.3 7.1.3 運(yùn)行錯誤運(yùn)行錯誤 運(yùn)行錯誤是在程序運(yùn)行過程中發(fā)生的。有時語法沒有錯誤,但Visual Basic中卻無法運(yùn)行程序。例如,除法運(yùn)算中,除數(shù)為0;讀取文件時,該文件不存在等。當(dāng)出現(xiàn)運(yùn)行錯誤時,Visual Basic會自動終止應(yīng)用程序,并彈出錯誤信息提示。7.2 7.2 錯誤捕獲處理錯誤捕獲處理 優(yōu)秀的應(yīng)用程序應(yīng)該具備較強(qiáng)的捕獲
58、和處理運(yùn)行錯誤的能力。硬件問題或用戶錯誤操作都將引發(fā)錯誤并終止應(yīng)用程序。錯誤捕獲功能可以攔截錯誤并進(jìn)行處理,進(jìn)而可以避免硬件問題或用戶操作錯誤。本節(jié)將介紹錯誤捕獲和處理方法。7.2.1 7.2.1 錯誤捕獲錯誤捕獲 Visual Basic中使用On Error語句來進(jìn)行錯誤捕獲,當(dāng)錯誤發(fā)生,程序自動運(yùn)行到處理錯誤的相關(guān)代碼,予以解決錯誤或提示用戶可能需要的幫助。標(biāo)準(zhǔn)代碼如下:l On Error GoTo line發(fā)生錯誤時,跳轉(zhuǎn)到指定處理錯誤程序代碼。l On Error Resume Next發(fā)生錯誤時,忽略錯誤行,繼續(xù)執(zhí)行下一語句。l On Error GoTo 0發(fā)生錯誤時,不使用錯
59、誤處理程序代碼。7.2.2 7.2.2 錯誤處理錯誤處理 在理想程序中,Visual Basic過程根本不需要錯誤處理代碼。但實(shí)際上硬件問題或用戶操作都會造成運(yùn)行時錯誤。沒有錯誤捕獲和處理的程序中,只能選擇終止程序。但是優(yōu)秀的應(yīng)用程序應(yīng)該按以下方式處理錯誤: (1)錯誤發(fā)生時,提示用戶出錯并退出子過程,程序有限的功能繼續(xù)運(yùn)行。 (2)跳過錯誤語句,繼續(xù)執(zhí)行下一句。 (3)繼續(xù)嘗試糾正錯誤并重新運(yùn)行該語句。7.3 7.3 調(diào)試程序調(diào)試程序 Visual Basic集成開發(fā)環(huán)境可以分為三種模式:設(shè)計(jì)模式、執(zhí)行模式、中斷模式。設(shè)計(jì)模式下可以進(jìn)行程序的界面設(shè)計(jì)和代碼編寫。執(zhí)行模式運(yùn)行程序,可以查閱代碼
60、,不允許更改程序。中斷模式下程序處于掛起狀態(tài),可以閱讀和修改代碼并進(jìn)行調(diào)試程序。7.3.1 7.3.1 單步調(diào)試單步調(diào)試 單步調(diào)試包括三種調(diào)試方法: (1)逐語句:單步調(diào)試當(dāng)前過程和調(diào)用過程中代碼。快捷鍵為F8。 (2)逐過程:單步調(diào)試當(dāng)前過程中的代碼,不調(diào)試程序中其他代碼??旖萱I為Shift+F8。 (3)跳出:一直運(yùn)行到當(dāng)前過程的結(jié)束。快捷鍵為Ctrl+Shift+F8。7.3.2 7.3.2 立即窗體立即窗體 Visual Basic在開發(fā)中斷點(diǎn)模式還提供了“立即”窗體顯示運(yùn)行結(jié)果?!傲⒓础贝绑w允許中斷模式下輸入代碼立即執(zhí)行和顯示運(yùn)行結(jié)果。要顯示“立即”窗體,要保證在中斷模式下,單擊“視圖”|“立即窗體”命令或按鍵Ctrl+G。7.3.3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 尋常痤瘡的臨床護(hù)理
- 生涯發(fā)展指導(dǎo)課:《規(guī)劃的人生更精彩》學(xué)習(xí)心得體會模版
- 買賣房過渡合同范例
- 人防工程租賃合同范例
- 2025年餐飲服務(wù)員年度工作總結(jié)模版
- 個人月度工作總結(jié)模版
- 2024年太陽能組件生產(chǎn)裝備項(xiàng)目資金需求報告代可行性研究報告
- 2025年小學(xué)數(shù)學(xué)組教研活動總結(jié)模版
- 保險推廣合同范例
- 個人桑蠶養(yǎng)殖合同范例
- 2022年貴州貴陽市中考英語真題
- FZ/T 32001-2018亞麻紗
- 《大數(shù)據(jù)環(huán)境下的網(wǎng)絡(luò)安全問題探討(論文)8000字》
- 粵教科技版科學(xué)六年級下冊第14課《生物生存的環(huán)境》教學(xué)課件
- 高考語文作文素材:《典籍里的中國》課件33張
- 2022年道路交通安全防汛工作應(yīng)急預(yù)案
- (完整)《神經(jīng)病學(xué)》考試題庫及答案
- 邊坡支護(hù)之錨桿施工技術(shù)ppt版(共35頁)
- 思政課社會實(shí)踐報告1500字6篇
- GB∕T 25119-2021 軌道交通 機(jī)車車輛電子裝置
- 電池PCBA規(guī)格書
評論
0/150
提交評論