VisualBasic程序設(shè)計(jì)基礎(chǔ)中職PPT完整全套教學(xué)課件_第1頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ)中職PPT完整全套教學(xué)課件_第2頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ)中職PPT完整全套教學(xué)課件_第3頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ)中職PPT完整全套教學(xué)課件_第4頁(yè)
VisualBasic程序設(shè)計(jì)基礎(chǔ)中職PPT完整全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩591頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

模塊1初識(shí)VisualBasic6.0模塊1初識(shí)VisualBasic6.0.pptx模塊2VisualBasic6.0語(yǔ)法基礎(chǔ).pptx模塊3程序控制結(jié)構(gòu).pptx模塊4數(shù)組與構(gòu)造數(shù)據(jù)類型.pptx模塊5過(guò)程.pptx模塊6鼠標(biāo)和鍵盤事件.pptx模塊7界面設(shè)計(jì).pptx模塊8圖形與圖像設(shè)計(jì).pptx模塊9文件操作.pptx模塊10數(shù)據(jù)庫(kù)創(chuàng)建與管理.pptx全套可編輯PPT課件目錄1.1VisualBasic的基礎(chǔ)知識(shí)1.2VisualBasic6.0集成開發(fā)環(huán)境1.3可視化編程的基本概念

1.4VisualBasic的基本結(jié)構(gòu)知識(shí)目標(biāo)了解

Visual

Basic常用的版本。了解

Visual

Basic語(yǔ)言的特點(diǎn)。熟悉

Visual

Basic

6.0集成開發(fā)環(huán)境。技能目標(biāo)能夠創(chuàng)建一個(gè)工程,并能根據(jù)需求設(shè)計(jì)簡(jiǎn)單的程序界面。1.1VisualBasic的基礎(chǔ)知識(shí)1.1VisualBasic的基礎(chǔ)知識(shí)Visual指的是開發(fā)圖形用戶界面,即可視化。在圖形用戶界面下,不需要編寫大量代碼來(lái)描述界面元素的外觀和位置,只需要把預(yù)先建立好的對(duì)象添加到界面的合適位置并進(jìn)行適當(dāng)設(shè)計(jì)即可。Basic指的是Basic語(yǔ)言,Visual

Basic語(yǔ)言是在原有的Basic語(yǔ)言基礎(chǔ)上發(fā)展起來(lái)的。?1.1.1VisualBasic語(yǔ)言簡(jiǎn)介Basic語(yǔ)言是早期初學(xué)者學(xué)習(xí)編程技術(shù)的入門語(yǔ)言,具有簡(jiǎn)單易學(xué)的特點(diǎn),對(duì)程序設(shè)計(jì)語(yǔ)言的發(fā)展和推廣起到了重要的作用。隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,操作系統(tǒng)向多任務(wù)、圖形化用戶界面等方面轉(zhuǎn)變,對(duì)程序設(shè)計(jì)技術(shù)也有了新的要求,促使程序設(shè)計(jì)方法朝可視化方向發(fā)展。各軟件公司順應(yīng)這種趨勢(shì),推出了多種開發(fā)Windows環(huán)境下應(yīng)用程序的軟件開發(fā)工具,輔助用戶進(jìn)行有效的編程工作。用戶只需要設(shè)計(jì)界面的外觀效果以及進(jìn)行系統(tǒng)功能代碼的編制即可,把外觀界面的代碼生成工作交給可視化軟件開發(fā)工具自動(dòng)完成。這樣大大簡(jiǎn)化了用戶的編程量,同時(shí)使編制出來(lái)的程序具有界面友好、互動(dòng)性強(qiáng)的特點(diǎn),符合計(jì)算機(jī)技術(shù)發(fā)展的潮流。由此,Visual

Basic應(yīng)運(yùn)而生,Visual的含義是可視的,Visual

Basic簡(jiǎn)稱VB,是在Basic語(yǔ)言的基礎(chǔ)上發(fā)展而來(lái)的,是可視化編程技術(shù)與Basic語(yǔ)言結(jié)合的產(chǎn)物。Visual

Basic沿用了Basic語(yǔ)言中的一些語(yǔ)法,但是具有可視化、面向?qū)ο?、事件?qū)動(dòng)編程機(jī)制等特點(diǎn),是當(dāng)今世界上應(yīng)用最廣泛的可視化編程語(yǔ)言之一,被公認(rèn)為是編程效率最高的一種編程工具,無(wú)論是開發(fā)功能強(qiáng)大、性能可靠的軟件,還是編寫用于處理實(shí)際問(wèn)題的實(shí)用小程序,Visual

Basic都顯示出其快速和簡(jiǎn)便的特點(diǎn),對(duì)于初學(xué)者學(xué)習(xí)一般應(yīng)用程序的開發(fā)尤為合適。?1.1.1VisualBasic語(yǔ)言簡(jiǎn)介?1.1.2VisualBasic的發(fā)展及特點(diǎn)1.VB的發(fā)展歷史微軟(Microsoft)公司于1991年推出了Visual

Basic

1.0版本,隨后的幾年中相繼推出了2.0、3.0、4.0和5.0版本,從5.0版本開始出現(xiàn)了中文版。1998年,Microsoft公司推出了Visual

Basic

6.0版本,功能更加強(qiáng)大,Visual

Basic

6.0包括學(xué)習(xí)版、專業(yè)版和企業(yè)版3種。2002年,引入.NET

Framework后推出了Visual

Basic.NET

2002,后又相繼推出了VisualBasic.NET2003、Visual

Basic

2005、Visual

Basic

2008、Visual

Studio

2010和VisualStudio

2012。1)學(xué)習(xí)版學(xué)習(xí)版是Visual

Basic

6.0的基礎(chǔ)版本,可使程序員輕松地開發(fā)Windows系統(tǒng)下的應(yīng)用程序,該版本包括Visual

Basic

6.0提供的所有內(nèi)部控件以及Grid控件、Tab對(duì)象和DataBound控件,適合初學(xué)者學(xué)習(xí)和使用。2)專業(yè)版專業(yè)版是為專業(yè)編程人員提供的、功能十分完備的開發(fā)工具,包括學(xué)習(xí)版的所有功能,還加入了ActiveX控件、Internet信息服務(wù)應(yīng)用程序的設(shè)計(jì)、完整的數(shù)據(jù)訪問(wèn)工具和數(shù)據(jù)環(huán)境、Active數(shù)據(jù)項(xiàng)目以及HTML活動(dòng)頁(yè)面設(shè)計(jì)等功能。3)企業(yè)版企業(yè)版能夠幫助專業(yè)人員開發(fā)功能更加強(qiáng)大的組內(nèi)分布式應(yīng)用程序,包括專業(yè)版的全部功能,還加入了Back

Office的工具,如SQL服務(wù)、Microsoft處理服務(wù)、Internet信息服務(wù)、Visual

SourceSafe、系統(tǒng)網(wǎng)絡(luò)架構(gòu)服務(wù)等。2.VisualBasic的特點(diǎn)1)可視化的開發(fā)環(huán)境Visual

Basic提供了可視化的開發(fā)工具,使設(shè)計(jì)人員只需按設(shè)計(jì)要求進(jìn)行屏幕布局、運(yùn)行環(huán)節(jié)設(shè)置以及編寫功能代碼,由系統(tǒng)自動(dòng)生成界面設(shè)計(jì)代碼,從而提高了程序設(shè)計(jì)的效率。與傳統(tǒng)編程方式相比,由用戶自己編程設(shè)計(jì)界面,具有簡(jiǎn)便快捷、所見(jiàn)即所得和編程效率高的特點(diǎn)。2)面向?qū)ο蟮某绦蛟O(shè)計(jì)Visual

Basic應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,把程序和數(shù)據(jù)封裝起來(lái)作為一個(gè)對(duì)象,并賦予每個(gè)對(duì)象各方面的屬性,每個(gè)對(duì)象以圖形的方式出現(xiàn)在界面上,形象直觀且減少了程序員編寫界面代碼的工作量,程序員只需要考慮用戶針對(duì)對(duì)象進(jìn)行什么樣的操作及操作發(fā)生后運(yùn)行何種功能的代碼進(jìn)行定義和編寫程序。3)結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言Visual

Basic提供的編程語(yǔ)言具有高級(jí)程序設(shè)計(jì)語(yǔ)言的優(yōu)點(diǎn),接近于人們的自然邏輯思維方式,語(yǔ)句簡(jiǎn)單,容易掌握,具有多種結(jié)構(gòu)控制語(yǔ)句,同時(shí)具有很強(qiáng)的糾錯(cuò)能力,擁有功能強(qiáng)大的調(diào)試器和編譯器。在編制程序的過(guò)程中可以隨時(shí)運(yùn)行,最后可以生成可執(zhí)行文件,并在Windows環(huán)境下直接運(yùn)行。4)事件驅(qū)動(dòng)編程機(jī)制Visual

Basic通過(guò)事件來(lái)執(zhí)行對(duì)象的操作,一個(gè)對(duì)象可能產(chǎn)生多個(gè)事件,每個(gè)事件都通過(guò)執(zhí)行一段事件過(guò)程代碼來(lái)響應(yīng)。因此在設(shè)計(jì)大型系統(tǒng)時(shí),是在界面設(shè)計(jì)和功能設(shè)計(jì)的基礎(chǔ)上不斷化整為零,通過(guò)編寫若干個(gè)面向不同對(duì)象和不同事件的小程序,相互配合完成任務(wù),從而簡(jiǎn)化程序員的工作難度和強(qiáng)度。5)強(qiáng)大的第三方支持目前,很多應(yīng)用程序都提供了與Visual

Basic的接口,Visual

Basic可以直接調(diào)用第三方應(yīng)用程序,如Microsoft的Word、Excel,Autodesk的AutoCAD等。6)開發(fā)數(shù)據(jù)庫(kù)程序隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)技術(shù)也得到了飛速發(fā)展。Visual

Basic可以通過(guò)開放數(shù)據(jù)庫(kù)連接(open

database

connectivity,ODBC)訪問(wèn)各種各樣的數(shù)據(jù)庫(kù),包括Microsoft

Access、DBase、FoxBASE、Paradox以及SQL

Server、Oracle等大型數(shù)據(jù)庫(kù)。Visual

Basic提供了大量支持?jǐn)?shù)據(jù)庫(kù)的控件,利用這些控件可以開發(fā)出功能強(qiáng)大的數(shù)據(jù)庫(kù)應(yīng)用程序。7)良好的中文支持Visual

Basic不但全面支持漢字的輸入和顯示,還支持中文變量和雙字節(jié)。在這一點(diǎn)上,相對(duì)于其他計(jì)算機(jī)語(yǔ)言來(lái)講,Visual

Basic的兼容性是非常好的。1.2VisualBasic6.0集成開發(fā)環(huán)境1.2VisualBasic6.0集成開發(fā)環(huán)境啟動(dòng)Visual

Basic

6.0后,屏幕上會(huì)根據(jù)不同的設(shè)計(jì)階段出現(xiàn)若干個(gè)不同的窗口,主要包括應(yīng)用程序主窗口、窗體設(shè)計(jì)器、工具箱、“屬性”窗口、代碼窗口、工程資源管理器、“窗體布局”窗口等有用的開發(fā)工具,Visual

Basic

6.0的工作界面如圖1-1所示。圖1-1Visual

Basic

6.0工作界面1.標(biāo)題欄標(biāo)題欄中顯示出窗體控制菜單圖標(biāo)、當(dāng)前激活的工程名稱、當(dāng)前工作模式,以及最小化、最大化/還原、關(guān)閉按鈕。2.菜單欄菜單欄中有“文件”“編輯”“視圖”“工程”“格式”等菜單項(xiàng),其中包含VB編程的常用命令。單擊菜單欄中的菜單名,即可彈出下拉菜單。在下拉菜單中顯示了各項(xiàng)功能子菜單,包含執(zhí)行該項(xiàng)功能的熱鍵和快捷鍵。3.工具欄菜單欄下面是工具欄,工具欄提供許多常用命令的快速訪問(wèn)按鈕。單擊某個(gè)按鈕,即可執(zhí)行對(duì)應(yīng)的操作。VB集成開發(fā)環(huán)境中的默認(rèn)工具欄是“標(biāo)準(zhǔn)”工具欄,在菜單欄或工具欄上右擊,在彈出的快捷菜單中可進(jìn)行標(biāo)準(zhǔn)、編輯、窗體編輯器和調(diào)試等工具欄的顯示/隱藏切換。工具欄可以緊貼在菜單欄之下,也可以拖放到窗體的其他地方。4.工具箱新建或打開“標(biāo)準(zhǔn)EXE”工程時(shí),VB將同時(shí)打開標(biāo)準(zhǔn)工具箱。VB標(biāo)準(zhǔn)工具箱包含建立應(yīng)用程序所需的各種控件,如圖1-2所示。另外,VB還提供很多ActiveX控件,可以添加到工具箱中。5.工程資源管理器工程是指用于創(chuàng)建一個(gè)應(yīng)用程序的所有文件的集合。工程資源管理器采用Windows資源管理器式的界面,層次分明地列出當(dāng)前工程中的所有文件,如圖1-3所示。圖1-2工具箱圖1-3工程資源管理器6.“屬性”窗口“屬性”窗口如圖1-4所示。圖1-4“屬性”窗口“屬性”窗口包含選定對(duì)象(窗體或控件)的屬性列表,在設(shè)計(jì)程序時(shí)可通過(guò)修改對(duì)象的屬性值來(lái)設(shè)計(jì)其外觀和相關(guān)數(shù)據(jù),這些屬性值是程序運(yùn)行時(shí)各對(duì)象屬性的初始值。在工程資源管理器中有“查看代碼”“查看對(duì)象”和“切換文件夾”3個(gè)按鈕。(1)“查看代碼”按鈕。單擊該按鈕可打開“代碼編輯器”查看代碼。(2)“查看對(duì)象”按鈕。單擊該按鈕可打開“窗體設(shè)計(jì)器”查看正在設(shè)計(jì)的窗體。(3)“切換文件夾”按鈕。單擊該按鈕可以隱藏或顯示包含對(duì)象文件夾中的個(gè)別項(xiàng)目列表?!皩傩浴贝翱诎ㄒ韵聝?nèi)容:(1)對(duì)象下拉列表框:標(biāo)識(shí)當(dāng)前選定對(duì)象的名稱及所屬的類。(2)選項(xiàng)卡:可按字母排序和分類排序兩種方式顯示所選對(duì)象的屬性。(3)屬性列表框:列出當(dāng)前選定窗體或控件的屬性值。(4)屬性說(shuō)明:顯示當(dāng)前屬性的簡(jiǎn)要說(shuō)明。如果當(dāng)前沒(méi)有顯示“屬性”窗口,可通過(guò)下列方法打開:(1)單擊工具欄中的“屬性窗口”按鈕。(2)執(zhí)行“視圖”→“屬性窗口”命令。7.窗體設(shè)計(jì)器窗體是應(yīng)用程序的用戶界面,用戶必須在窗體設(shè)計(jì)器中設(shè)計(jì)窗體的外觀。窗體設(shè)計(jì)器也稱為對(duì)象窗口,每一個(gè)應(yīng)用程序中的窗體都有與之對(duì)應(yīng)的窗體設(shè)計(jì)器窗口。每個(gè)窗體的名稱不能相同,默認(rèn)的窗體名依次是Form1、Form2、Form3等。在窗體的空白區(qū)域右擊,在彈出的快捷菜單中執(zhí)行相關(guān)命令,可切換到“代碼”窗口、“菜單編輯器”窗口、“屬性”窗口,還可以選擇“鎖定控件”和“粘貼”選項(xiàng)。8.“窗體布局”窗口“窗體布局”窗口中有一個(gè)表示屏幕的小圖像,用來(lái)顯示窗體在屏幕中的位置??梢酝蟿?dòng)窗體小圖標(biāo)來(lái)調(diào)整窗體在屏幕中的位置。1.3可視化編程的基本概念1.3可視化編程的基本概念VB是一種面向?qū)ο蟮目梢暬幊陶Z(yǔ)言,它將代碼和數(shù)據(jù)集成到一個(gè)獨(dú)立的對(duì)象中,運(yùn)用該對(duì)象來(lái)完成某個(gè)任務(wù)。這樣程序設(shè)計(jì)人員在編程時(shí)不再需要單純地從代碼的第一行一直編寫到最后一行,而是考慮如何創(chuàng)建對(duì)象,利用對(duì)象來(lái)簡(jiǎn)化程序設(shè)計(jì),提供代碼的可重復(fù)利用性。因此,正確理解VB中對(duì)象的有關(guān)概念,是學(xué)習(xí)設(shè)計(jì)VB應(yīng)用程序的基礎(chǔ)。?1.3.1對(duì)象對(duì)象(object)是具有某些特性的具體事物的抽象。對(duì)象是人的意識(shí)的反映,是一種以概念而存在的東西,所以對(duì)象在現(xiàn)實(shí)生活中隨處可見(jiàn),如一個(gè)人、一棵樹、一輛汽車、一臺(tái)計(jì)算機(jī)等都是對(duì)象。因此,可以把對(duì)象想象成日常生活中的各種物體。以計(jì)算機(jī)為例,計(jì)算機(jī)本身就是一個(gè)對(duì)象,而計(jì)算機(jī)又可以拆分為主板、中央處理器、內(nèi)存、外設(shè)等部件,這些部件又分別是對(duì)象,因此,計(jì)算機(jī)對(duì)象可以說(shuō)是由多個(gè)子對(duì)象構(gòu)成的,即一個(gè)容器(container)對(duì)象。與計(jì)算機(jī)的概念類似,在VB程序中,窗體(Form)、命令按鈕(CommandButton)、標(biāo)簽控件(Label)、文本框控件(TextBox)、列表框(ListBox)等都是對(duì)象。?1.3.2類VB提供的面向?qū)ο蟮某绦蛟O(shè)計(jì)的一個(gè)主要特性就是類的使用。許多具有相近屬性的對(duì)象集合在一起就構(gòu)成了類。例如,“學(xué)生”是一個(gè)類,“張三”和“李四”是學(xué)生,都是學(xué)生類的實(shí)例,或稱對(duì)象。一個(gè)類描述一類事物,描述這些事物所應(yīng)具有的屬性,如學(xué)生有姓名、性別、年齡、民族、身高、體重等屬性。一個(gè)對(duì)象是一個(gè)類的實(shí)例,它具有確定的屬性,如張三(學(xué)生的實(shí)例),男,21歲,漢族,身高180cm,體重70kg。學(xué)生類只有一個(gè),學(xué)生類的實(shí)例可以有無(wú)數(shù)個(gè)。VisualBasic6.0主界面工具箱中的所有控件都稱為類,只有當(dāng)它們被添加到窗體上時(shí),才可以得到該類的一個(gè)對(duì)象。?1.3.3屬性屬性是指對(duì)象所具有的特征,如窗體的外觀,窗體的背景顏色,窗體的寬度、高度都屬于窗體的屬性。在VisualBasic6.0中,每個(gè)對(duì)象都有自己的屬性,如窗體對(duì)象就有Caption、Name等屬性,設(shè)計(jì)者可以通過(guò)設(shè)置對(duì)象的屬性值來(lái)改變對(duì)象的外觀。修改對(duì)象屬性有以下兩種方法:(1)在對(duì)象的“屬性”窗口中找到相應(yīng)的屬性進(jìn)行設(shè)置。(2)在程序代碼中通過(guò)編程設(shè)置,設(shè)置方法為:對(duì)象名.屬性名=屬性值。例如,將一個(gè)名為cmdReturn的命令按鈕的Caption屬性賦值為“返回”,則在程序代碼中寫為:cmdReturn.Caption="返回"。?1.3.4事件事件是對(duì)象要完成的任務(wù),即對(duì)象相應(yīng)的動(dòng)作。VB中的對(duì)象都有一系列預(yù)先定義好的對(duì)象事件。例如,鼠標(biāo)指針在某對(duì)象表面移動(dòng)時(shí),就會(huì)在該對(duì)象上產(chǎn)生一個(gè)鼠標(biāo)移動(dòng)事件(MouseMove);若單擊該對(duì)象,則會(huì)在該對(duì)象上產(chǎn)生一個(gè)單擊事件(Click)等。VB中的對(duì)象與對(duì)象之間、對(duì)象與系統(tǒng)之間以及對(duì)象與程序之間的通信都是通過(guò)事件來(lái)進(jìn)行的,一個(gè)對(duì)象往往可以識(shí)別和響應(yīng)多個(gè)不同的事件。在VB中,由于系統(tǒng)事先已經(jīng)對(duì)每個(gè)對(duì)象都定義好一系列事件,設(shè)計(jì)者要做的就是判定該事件是否響應(yīng)以及如何響應(yīng),即為哪些事件編寫程序。事件過(guò)程的形式如下:PrivateSub對(duì)象名_事件名(事件響應(yīng)代碼)EndSub例如,單擊命令按鈕cmdFont,使文本框Text1中的字號(hào)改為20磅,則對(duì)應(yīng)的事件如下:PrivateSubcmdFont_Click()Text1.FontSize=20EndSub?1.3.5方法方法是VB中一些特殊的過(guò)程和函數(shù),系統(tǒng)將這些通用的過(guò)程和函數(shù)編寫好并封裝起來(lái),供用戶直接調(diào)用。方法的調(diào)用形式為:對(duì)象名.方法名。例如,F(xiàn)orm1.Print“歡迎學(xué)習(xí)VisualBasic”,該語(yǔ)句是使用Form1對(duì)象的Print方法在Form1窗體中顯示字符串“歡迎學(xué)習(xí)VisualBasic”。概括地說(shuō),編寫VB程序就是首先根據(jù)需要放置對(duì)象,設(shè)置對(duì)象的屬性,然后為對(duì)象事件編制過(guò)程,通過(guò)過(guò)程完成預(yù)期的目的。因此可以這樣說(shuō),VB程序是由整個(gè)事件驅(qū)動(dòng)的,事件驅(qū)動(dòng)是指只有在事件發(fā)生時(shí),程序才會(huì)運(yùn)行,在沒(méi)有事件時(shí),整個(gè)程序是處于停滯狀態(tài)的。在VB程序設(shè)計(jì)中,程序中流動(dòng)的不是數(shù)據(jù)而是事件。如果說(shuō)屬性決定了對(duì)象的外觀,方法決定了對(duì)象的行為,那么事件就決定了對(duì)象之間聯(lián)系的手段。?1.3.6窗體窗體是所有控件的容器,應(yīng)用程序的建立都是從窗體開始的。運(yùn)行時(shí),每個(gè)窗體對(duì)應(yīng)于一個(gè)工作界面。一個(gè)典型的窗體是由一個(gè)矩形窗口和相應(yīng)的一組控件組成的,控件在窗體上的位置和大小都是由程序控制的。窗體中可以包括圖片、文字、線條、按鈕等對(duì)象和控件。窗體和大多數(shù)控件還可以具有不同的色彩。在VisualBasic6.0中建立應(yīng)用程序,首先要新建一個(gè)新的工程文件,新的工程文件都自動(dòng)包含一個(gè)窗體。在實(shí)際應(yīng)用中,特別是對(duì)于比較復(fù)雜的應(yīng)用程序,一個(gè)窗體往往不能滿足需要,如果想添加窗體,可以從工具欄的“添加窗體”下拉列表中選擇“添加窗體”選項(xiàng)。在擁有多個(gè)窗體的工程文件中,一定要有一個(gè)開始窗體。系統(tǒng)默認(rèn)原默認(rèn)窗體名為Form1的窗體為開始窗體,如果要指定其他窗體為開始窗體,可在“工程”菜單中選擇對(duì)應(yīng)的“屬性”選項(xiàng),在彈出的工程屬性對(duì)話框中進(jìn)行設(shè)置,如圖1-5所示。圖1-5“工程1-工程屬性”對(duì)話框1.窗體的屬性窗體的屬性決定了窗體的外觀和操作,窗體的常用屬性如表1-1所示。2.窗體的方法該方法用于在窗體、圖片框上輸出數(shù)據(jù),其語(yǔ)法格式如下:1)Print方法對(duì)象名.Print表達(dá)式例如,F(xiàn)orm1.Print"這是我的第一個(gè)VB程序"。其作用是在窗體上顯示字符串“這是我的第一個(gè)VB程序”。清除運(yùn)行時(shí)在窗體和圖片框中顯示的文本或圖形,其語(yǔ)法格式如下:2)Cls方法對(duì)象名.Cls例如,F(xiàn)orm1.Cls。其作用是清除前面程序在窗體上顯示的各種文本和圖形。移動(dòng)窗體、控件的位置并改變其大小,其語(yǔ)法格式如下:3)Move方法對(duì)象名.Move(Left,Top)[,寬度[,高度]]例如,Picture1.Move

500,1000,1000,1500。該語(yǔ)句將圖片框Picture1移動(dòng)到距窗體左邊框500磅,距窗體頂部1000磅的位置,并將圖片框?qū)挾茸優(yōu)?000磅,高度變?yōu)?500磅。該方法用于把一個(gè)窗體裝入內(nèi)存,此時(shí)設(shè)計(jì)者可以引用窗體及其中的控件,但窗體并沒(méi)有顯示出來(lái),其語(yǔ)法格式如下:4)Load方法Load

窗體名例如,LoadForm2。該語(yǔ)句將Form2窗體調(diào)入內(nèi)存,但用戶并不能看到其界面。該方法用于把一個(gè)窗體從內(nèi)存中刪除,功能與Load相反,其語(yǔ)法格式如下:5)UnLoad方法UnLoad窗體名例如,UnLoadForm2。該語(yǔ)句將Form2窗體從內(nèi)存中刪除,此時(shí)用戶不僅看不到其界面,也不能引用Form2及其上的各個(gè)控件。該方法用來(lái)顯示一個(gè)窗體,它兼有裝入和顯示窗體兩種功能,如果顯示的窗體不在內(nèi)存中,則Show方法自動(dòng)把窗體存入內(nèi)存,然后顯示出來(lái),其語(yǔ)法格式如下:6)Show方法窗體名.Show[模式]其中模式用來(lái)確定窗體的狀態(tài),有0和1兩個(gè)值。若模式為1,則表示窗體是模式型,在這種情況下,用戶無(wú)法將鼠標(biāo)指針移動(dòng)到其他窗體上,只有關(guān)閉該窗體后才能對(duì)其他窗體進(jìn)行操作。模式為0時(shí)表示窗體是非模式型,可以對(duì)其他窗體進(jìn)行操作。若省略不寫,則默認(rèn)為0。例如,F(xiàn)orm2.Show。該語(yǔ)句將窗體Form2顯示出來(lái)。該方法用于將一個(gè)窗體隱藏起來(lái),但是并沒(méi)有從內(nèi)存中把它刪除,其語(yǔ)法格式如下:7)Hide方法窗體名.Hide3.窗體的事件窗體最常用的事件有Click、DblClick、Load、UnLoad和Activate。(1)Click事件:進(jìn)行單擊操作時(shí)觸發(fā)該事件。(2)DblClick事件:進(jìn)行雙擊操作時(shí)觸發(fā)該事件。(3)Load事件:當(dāng)一個(gè)窗體被裝入工作區(qū)時(shí)觸發(fā)該事件。(4)UnLoad事件:當(dāng)一個(gè)窗體被卸載時(shí)觸發(fā)該事件。(5)Activate事件:當(dāng)一個(gè)窗體成為活動(dòng)窗口時(shí)觸發(fā)該事件。用戶單擊某個(gè)窗體或在程序代碼中用Show方法顯示窗體,或用SetFocus方法將焦點(diǎn)設(shè)置在某窗體上都使該窗體成為活動(dòng)窗口,此時(shí)觸發(fā)該事件。?1.3.7控件1.控件的概念控件是應(yīng)用程序的“積木塊”,一個(gè)VB程序由窗體及其上放置的控件構(gòu)成用戶界面。控件以圖標(biāo)的形式放在工具箱中,每種控件都有與之對(duì)應(yīng)的圖標(biāo)。2.控件的分類VB的控件分為3類,即內(nèi)部控件、ActiveX控件和可插入對(duì)象。(1)內(nèi)部控件。內(nèi)部控件是在工具箱中出現(xiàn)的控件,既不能添加,也不能刪除。(2)ActiveX控件。ActiveX控件是指VB工具箱中沒(méi)有的控件,有時(shí)需要從“工程”菜單中選擇“部件”選項(xiàng),或右擊工具箱,從彈出的快捷菜單中選擇“部件”選項(xiàng),在打開的“部件”對(duì)話框中選擇需要的控件復(fù)選框,如圖1-6所示,單擊“確定”按鈕。這類控件一般以擴(kuò)展名為.ocx的獨(dú)立文件的形式存放。(3)可插入對(duì)象??刹迦雽?duì)象也是一種ActiveX控件,只是插入的對(duì)象本身就是一個(gè)應(yīng)用程序。要打開可插入對(duì)象,可在“部件”對(duì)話框中切換至“可插入對(duì)象”選項(xiàng)卡,然后選中需要的可插入對(duì)象,單擊“確定”按鈕打開即可。由于可插入對(duì)象也是一種ActiveX控件,也可以將其加入工具箱中,并像普通控件一樣使用工具箱中的可插入對(duì)象。圖1-6ActiveX控件3.控件的畫法單擊工具箱中的某個(gè)圖標(biāo),只能在窗體上畫一個(gè)相應(yīng)的控件。若要畫多個(gè)控件,則要多次單擊工具箱中的控件圖標(biāo)。若想單擊一次控件圖標(biāo)即可在窗體上畫出多個(gè)相同類型的控件,可執(zhí)行以下操作:(1)按住Ctrl鍵,同時(shí)單擊工具箱中要畫的控件的圖標(biāo),然后釋放Ctrl鍵。(2)用前面介紹的方法在窗體上畫出控件(可畫一個(gè)或多個(gè))。(3)畫完控件后,單擊工具箱中的指針圖標(biāo)或其他圖標(biāo)即可。4.控件的基本操作1)選擇控件在VB中,經(jīng)常要對(duì)控件進(jìn)行操作,如移動(dòng)或刪除控件,改變控件的大小或位置等。對(duì)控件進(jìn)行操作,首先要選擇控件,單擊控件就選擇了控件。一個(gè)控件被選中后,其周圍有8個(gè)小方塊,如圖1-7所示。圖1-7Text1控件被選中狀態(tài)有時(shí)需要對(duì)多個(gè)控件進(jìn)行操作,則要同時(shí)選中多個(gè)控件。選中多個(gè)控件可通過(guò)以下兩種方法實(shí)現(xiàn):(1)按住Shift鍵的同時(shí)逐個(gè)單擊要選擇的控件。(2)將鼠標(biāo)指針移到窗體中適當(dāng)?shù)奈恢茫](méi)有控件的地方),然后拖曳鼠標(biāo),可畫出一個(gè)虛線矩形,在該矩形內(nèi)的控件(包括邊線所經(jīng)過(guò)的控件)即被選中。選中多個(gè)控件后,在“屬性”窗口中只顯示它們共同的屬性,若修改其屬性值,則被選中的所有控件的相應(yīng)屬性都將做相應(yīng)的改變。提示2)控件的縮放與移動(dòng)畫出控件后,其大小和位置不一定符合設(shè)計(jì)的要求,此時(shí)可對(duì)控件進(jìn)行放大、縮小和移動(dòng)操作,有以下兩種操作方法:(1)鼠標(biāo)拖動(dòng)法。其操作步驟如下:選中要調(diào)整的控件,此時(shí)控件周圍出現(xiàn)8個(gè)小方塊。用鼠標(biāo)拖動(dòng)上、下、左、右4個(gè)小方塊中的某個(gè)小方塊時(shí),可使控件在相應(yīng)的方向上放大或縮小。如果拖動(dòng)位于4個(gè)角上的某個(gè)小方塊,則可使控件等比例放大或縮小。將鼠標(biāo)指針移動(dòng)到控件內(nèi)(邊框內(nèi)的任意位置),按下鼠標(biāo)左鍵不放,移動(dòng)鼠標(biāo),就可把控件拖動(dòng)到窗體內(nèi)的任何位置。(2)通過(guò)屬性窗口改變對(duì)象的位置和大小,操作步驟為:選中需要改變的控件,在屬性窗口中修改Width、Height屬性的值可改變控件的大小。在屬性窗口中修改Top、Left屬性的值可改變控件的位置。3)控件的復(fù)制和刪除VB允許對(duì)畫好的控件進(jìn)行復(fù)制,操作步驟如下:選中需要復(fù)制的控件,執(zhí)行“編輯”→“復(fù)制”命令或右擊,在彈出的快捷菜單中選擇“復(fù)制”選項(xiàng),然后在窗體中的空白處右擊,在彈出的快捷菜單中選擇“粘貼”選項(xiàng),這時(shí)屏幕上將彈出一個(gè)對(duì)話框,顯示已經(jīng)有一個(gè)控件,是否要?jiǎng)?chuàng)建一個(gè)控件組,單擊“否”按鈕后,即可把活動(dòng)控件復(fù)制到窗體的左上角,如圖1-8所示。圖1-8復(fù)制控件要?jiǎng)h除一個(gè)控件,必須先選中該控件,然后按Delete鍵或右擊,在彈出的快捷菜單中選擇“刪除”選項(xiàng)。清除一個(gè)控件后,其他某個(gè)控件自動(dòng)變?yōu)檫x中狀態(tài)。1.4VB的工程結(jié)構(gòu)1.4VB的工程結(jié)構(gòu)在VB中,一個(gè)應(yīng)用程序稱為一個(gè)工程,所以VB的工程結(jié)構(gòu)就是應(yīng)用程序的結(jié)構(gòu)。VisualBasic應(yīng)用程序的工程結(jié)構(gòu)如圖1-9所示。應(yīng)用程序是由模塊組成的,模塊分為窗體(窗體模塊)、模塊(標(biāo)準(zhǔn)模塊)和類模塊3類。圖1-9工程結(jié)構(gòu)應(yīng)用程序是由模塊組成的,模塊分為窗體(窗體模塊)、模塊(標(biāo)準(zhǔn)模塊)和類模塊3類。Visual

Basic程序的代碼就存儲(chǔ)在這3個(gè)模塊中。在這3類模塊中可以包含聲明(如常數(shù)、變量的聲明)和過(guò)程(如Sub通用過(guò)程、Sub事件過(guò)程和Function過(guò)程)。另外,窗體模塊中除了包含代碼外,還包含了窗體界面設(shè)計(jì)的內(nèi)容。圖1-10工程資源管理器在Visual

Basic中是利用工程資源管理器來(lái)組織和管理一個(gè)工程(應(yīng)用程序)的。在工程資源管理器中,工程的所有模塊按類別分層次進(jìn)行顯示,這樣可以較好地組織工程,同時(shí)也便于程序代碼的維護(hù)。從圖1-10所示的工程資源管理器中可以看出,該工程包含了窗體模塊Form1、標(biāo)準(zhǔn)模塊Module1和類模塊Class1。設(shè)計(jì)好的工程(應(yīng)用程序)需要以文件的形式保存在磁盤上。工程結(jié)構(gòu)列表保存在工程文件(*.vbp)中,窗體模塊保存在窗體文件(*.frm)中,標(biāo)準(zhǔn)模塊保存在模塊文件(*.bas)中,類模塊保存在類文件(*.cls)中。工程文件、窗體文件、模塊文件等文件集合在一起才能構(gòu)成完整的應(yīng)用程序。一個(gè)工程所包含的不同類別的文件需要分別保存。在首次保存工程時(shí),系統(tǒng)會(huì)彈出提示保存不同類型文件的對(duì)話框,這樣就有選擇文件存放位置和為文件命名的問(wèn)題。建議在保存工程時(shí)將同一工程中所有類型的文件存放在同一個(gè)文件夾中,文件名一般不要用系統(tǒng)提供的默認(rèn)文件名,而是輸入自己指定的文件名,以便于修改和管理程序文件。模塊2VisualBasic6.0語(yǔ)法基礎(chǔ)目錄2.1基本數(shù)據(jù)類型2.2常量和變量2.3運(yùn)算符與表達(dá)式

2.4常用的內(nèi)部函數(shù)2.5基本語(yǔ)句

知識(shí)目標(biāo)掌握VB中的數(shù)據(jù)類型。理解變量和常量的概念,并能正確定義和使用變量與常量。掌握VB中運(yùn)算符及表達(dá)式的使用。技能目標(biāo)能夠使用本模塊中介紹的內(nèi)容正確編寫一些VB小程序。2.1基本數(shù)據(jù)類型2.1基本數(shù)據(jù)類型在Visual

Basic中,常用的數(shù)字、字母等都是程序的必要組成部分,也是程序處理的對(duì)象。在高級(jí)語(yǔ)言中,這些對(duì)象被分成不同的類型,統(tǒng)稱為數(shù)據(jù)類型。數(shù)據(jù)類型體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),每一種程序設(shè)計(jì)語(yǔ)言都將數(shù)據(jù)分為不同的類型。Visual

Basic不但提供了豐富的標(biāo)準(zhǔn)數(shù)據(jù)類型,而且允許用戶根據(jù)需要定義自己的數(shù)據(jù)類型。表2-1列舉了VB中的標(biāo)準(zhǔn)數(shù)據(jù)類型。1.整型數(shù)整型數(shù)是不帶小數(shù)點(diǎn)和指數(shù)符號(hào)的數(shù),整數(shù)運(yùn)算速度快、精確,但表示數(shù)的范圍小。2.1基本數(shù)據(jù)類型(1)整數(shù)(Integer):整數(shù)用兩個(gè)字節(jié)(16位)的二進(jìn)制碼表示,如123、-123。(2)長(zhǎng)整數(shù)(Long):長(zhǎng)整數(shù)用帶符號(hào)的4個(gè)字節(jié)(32位)二進(jìn)制數(shù)表示。要表示長(zhǎng)整數(shù),需要在數(shù)字后加&符號(hào),如88&、-66&。2.浮點(diǎn)數(shù)浮點(diǎn)數(shù)也稱實(shí)型數(shù)或?qū)崝?shù),是帶有小數(shù)部分的數(shù)值。浮點(diǎn)數(shù)表示數(shù)的范圍大,但有誤差。浮點(diǎn)數(shù)又分為單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)兩種。(1)單精度浮點(diǎn)數(shù)(Single)用4個(gè)字節(jié)(32位)存儲(chǔ),有以下3種表示形式:①帶有小數(shù)點(diǎn)的數(shù),如123.45。②在數(shù)字后面加“!”符號(hào),如123.45!。③科學(xué)計(jì)數(shù)法由符號(hào)、指數(shù)及尾數(shù)3部分組成,如0.12345E+3。(2)雙精度浮點(diǎn)數(shù)(Double)用8個(gè)字節(jié)(64位)存儲(chǔ),有如下兩種表示形式:①在數(shù)字后面加“#”符號(hào),如123.45#、1233#。②科學(xué)計(jì)數(shù)法由符號(hào)、指數(shù)及尾數(shù)3部分組成,如0.12345D+3。2.1基本數(shù)據(jù)類型2.1基本數(shù)據(jù)類型3.字符串字符串是一個(gè)字符序列,由ASCII字符組成,包括標(biāo)準(zhǔn)的ASCII字符和擴(kuò)展的ASCII字符。在Visual

Basic中,字符串是放在雙引號(hào)內(nèi)的若干個(gè)字符,其中長(zhǎng)度為0(不含任何字符)的字符串稱為空字符串。例如:"輸出一個(gè)字符""666666""""hi"字符串的雙引號(hào)必須是英文狀態(tài)下的雙引號(hào),否則運(yùn)行時(shí)會(huì)出錯(cuò)。提示2.1基本數(shù)據(jù)類型4.布爾型布爾型數(shù)據(jù)用來(lái)進(jìn)行邏輯判斷,也稱邏輯型數(shù)據(jù),用Boolean表示。它只有True和False兩個(gè)值,當(dāng)邏輯數(shù)據(jù)轉(zhuǎn)換成整型數(shù)據(jù)時(shí),True轉(zhuǎn)換為1,F(xiàn)alse轉(zhuǎn)換為0;當(dāng)將其他類型數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時(shí),非0數(shù)轉(zhuǎn)換為True,0轉(zhuǎn)換為False。例如,3>2的結(jié)果是True,3<2的結(jié)果是False。5.日期型數(shù)據(jù)日期型數(shù)據(jù)用Date表示,按8字節(jié)的浮點(diǎn)數(shù)來(lái)存儲(chǔ),表示的日期范圍為公元100年1月1日~9999年12月31日,而時(shí)間范圍為0:00:00~23:59:59。其表示法有兩種:一種是以任何字面上可被認(rèn)作日期和時(shí)間的字符,需要用號(hào)碼符(#)括起來(lái)表示;另一種是以數(shù)字序列表示。例如,#January

1、2022#、#1Jan,22#、#2/1/22#、#2022-1-1

8:30

PM#等都是合法的日期型數(shù)據(jù)。當(dāng)用數(shù)字序列表示時(shí),小數(shù)點(diǎn)左邊的數(shù)字代表日期,小數(shù)點(diǎn)右邊的數(shù)字代表時(shí)間。0為午夜,0.5為中午12點(diǎn);負(fù)數(shù)代表的是1899年12月31日之前的日期和時(shí)間。2.1基本數(shù)據(jù)類型用戶單擊窗體后,顯示了由數(shù)值轉(zhuǎn)換為日期的結(jié)果為1899-12-28

12:00:00。例如,有以下程序段:Private

Sub

Form_Click()

Dim

T

As

Date

?T被定義為日期型數(shù)據(jù)

T=-2.5

Picture.PrintTEnd

Sub2.1基本數(shù)據(jù)類型6.對(duì)象型數(shù)據(jù)對(duì)象型數(shù)據(jù)(Object)用來(lái)表示圖形、OLE對(duì)象或其他對(duì)象,用4個(gè)字節(jié)(32位)的地址形式來(lái)存儲(chǔ)。在使用時(shí),通常使用SET語(yǔ)句指定一個(gè)被聲明為對(duì)象型的變量來(lái)引用應(yīng)用程序所識(shí)別的任何實(shí)際對(duì)象。例如:Dim

a

As

Object

?定義一個(gè)對(duì)象變量aSet

a=Picture

1

?給對(duì)象變量a賦值,使用其引用窗體中的圖片框?qū)ο驪icture1a.Print"你好!"

?在圖片框中輸出"你好!"字符串2.1基本數(shù)據(jù)類型7.可變數(shù)據(jù)類型Variant是一種可變的數(shù)據(jù)類型,可以表示任何值,包括數(shù)值、字符串、日期/時(shí)間等。它為Visual

Basic的數(shù)據(jù)處理增加了智能性,是所有未定義的變量的默認(rèn)數(shù)據(jù)類型。它對(duì)數(shù)據(jù)的處理完全取決于程序上下文的需要。它還可以包含以下4個(gè)特殊的數(shù)據(jù):Empty(空):表示未指定確定的數(shù)據(jù);Null(無(wú)效):表示數(shù)據(jù)不合法;Error(出錯(cuò)):指出過(guò)程中出現(xiàn)了一個(gè)錯(cuò)誤條件;Nothing(無(wú)指向):表示數(shù)據(jù)還沒(méi)有指向一個(gè)具體對(duì)象。【例2-1】225!是什么意思?解析:它代表一個(gè)單精度數(shù),數(shù)值是225,用4個(gè)字節(jié)存儲(chǔ)。2.1基本數(shù)據(jù)類型【例2-2】2.5E+8、2.5D-3分別表示的十進(jìn)制數(shù)是多少?解析:2.5E+8表示2.5×108=250000000,2.5D-3表示2.5×10-3=0.0025。2.2常量和變量2.2常量和變量計(jì)算機(jī)在處理數(shù)據(jù)時(shí),必須將數(shù)據(jù)裝入內(nèi)存。在機(jī)器語(yǔ)言或匯編語(yǔ)言中,借助于內(nèi)存單元的編號(hào)來(lái)訪問(wèn)內(nèi)存中的數(shù)據(jù);在高級(jí)語(yǔ)言中,需要對(duì)存放數(shù)據(jù)的內(nèi)存單元進(jìn)行命名,通過(guò)內(nèi)存單元名來(lái)訪問(wèn)其中的數(shù)據(jù)。命名了的內(nèi)存單元就是變量或常量。?2.2.1常量常量是在程序運(yùn)行中不變的量。Visual

Basic中的常量分為兩種,一種是文字常量,另一種是符號(hào)常量。2.2常量和變量1.文字常量Visual

Basic中的文字常量又分為字符串常量和數(shù)值常量?jī)煞N。字符串常量由字符組成,可以是除雙引號(hào)和回車符之外的任何ASCII字符。例如,"7464546""China"。1)字符串常量2.2常量和變量數(shù)值常量共有4種表示方式,即整型數(shù)、長(zhǎng)整型數(shù)、貨幣型數(shù)和浮點(diǎn)數(shù)。其中,整型數(shù)和長(zhǎng)整型數(shù)有3種形式,即十進(jìn)制、十六進(jìn)制和八進(jìn)制;貨幣常量是貨幣型數(shù),也稱定點(diǎn)數(shù);浮點(diǎn)常量也稱實(shí)數(shù),分為單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)。2)數(shù)值常量Visual

Basic在判斷常量類型時(shí)有時(shí)存在多義性。例如,值3.8可能是單精度類型,也可能是雙精度類型或貨幣類型。為了指明常量的類型,可以在常量后面加上類型說(shuō)明符,這些說(shuō)明符見(jiàn)表2-1。(1)字節(jié)、布爾、日期、對(duì)象及變體類型沒(méi)有類型說(shuō)明符。(2)如果沒(méi)有類型說(shuō)明符,在默認(rèn)情況下,Visual

Basic選擇需要內(nèi)存容量最小的表示方法。提示2.符號(hào)常量在Visual

Basic中,可以定義符號(hào)常量,用來(lái)代替數(shù)值或字符串,其語(yǔ)法格式如下:Const常量名=表達(dá)式[,常量名=表達(dá)式]…2.2常量和變量常量名是一個(gè)名字,通過(guò)這個(gè)名字可以引用常量。為常量命名時(shí)應(yīng)遵循以下規(guī)則:(1)常量名只能由字母、漢字、數(shù)字和下劃線組成。(2)常量名的第一個(gè)字符必須是字母或漢字。(3)名字的有效字符為255個(gè)。(4)不能用Visual

Basic的保留字作為常量名,但可以把保留字嵌入常量名中;同時(shí),常量名也不能是末尾帶有類型說(shuō)明符的保留字。例如,Print和Print$是非法的常量名,而Print_Number是合法的。2.2常量和變量表達(dá)式可以是數(shù)值常數(shù)、字符串常數(shù)以及由運(yùn)算符組成的表達(dá)式。對(duì)于數(shù)值常數(shù),除了可以用十進(jìn)制表示外,還可以使用十六進(jìn)制數(shù)(數(shù)值前加&H)和八進(jìn)制數(shù)(數(shù)值前加&O)表示。例如:在Visual

Basic中,常量名不區(qū)分大小寫。但是為了便于閱讀,每個(gè)單詞開頭的字母一般用大寫。此外,習(xí)慣上,符號(hào)常量一般用大寫字母表示。Const

PI=3.14

?聲明常量PI,代表3.14Const

COUNT#=&H100

?聲明雙精度常量COUNT,代表八進(jìn)制數(shù)100提示?2.2.2變量變量是在程序運(yùn)行過(guò)程中其值可以發(fā)生變化的量。使用變量前,一般先聲明變量名和類型,以決定系統(tǒng)為它分配的存儲(chǔ)單元。每個(gè)變量都有一個(gè)名字和相應(yīng)的數(shù)據(jù)類型,通過(guò)名字來(lái)引用一個(gè)變量,而數(shù)據(jù)類型則決定了該變量的存儲(chǔ)方式。2.2常量和變量1.變量的命名規(guī)則Visual

Basic中的變量命名遵循以下幾點(diǎn)規(guī)則:(1)變量名由字母、數(shù)字、下劃線和漢字組成,且只能以字母或漢字開頭,不能超過(guò)255個(gè)字符。(2)變量名不能和關(guān)鍵字同名,如If、Loops、Abs等。(3)字母不區(qū)分大小寫。2.變量的聲明在VisualBasic中,可以不加任何聲明而直接使用一個(gè)變量,這種方法稱為隱式聲明,該方法使用簡(jiǎn)單但容易發(fā)生錯(cuò)誤,所以對(duì)于變量最好先聲明后使用。2.2常量和變量聲明變量的語(yǔ)法格式如下:Public|Static|Dim|Private

變量名[As類型](1)Public:用于在標(biāo)準(zhǔn)模塊中定義全局變量或數(shù)組,聲明的變量在整個(gè)程序內(nèi)都可用。(2)Static:用于在某個(gè)過(guò)程中定義靜態(tài)局部變量。與Dim不同,如果用Static定義了一個(gè)變量,則每次引用該變量時(shí),其值會(huì)繼續(xù)保留。而當(dāng)引用Dim定義的變量時(shí),變量值會(huì)被重新設(shè)置。通常把由Dim定義的變量稱為自動(dòng)變量,而把由Static定義的變量稱為靜態(tài)變量。2.2常量和變量(3)Dim:用于在標(biāo)準(zhǔn)模塊(Module)、窗體模塊(Form)或過(guò)程(Procedure)中定義變量或數(shù)組,聲明的變量只在聲明它的過(guò)程內(nèi)使用。當(dāng)定義的變量要用于窗體時(shí),程序代碼窗口中的“對(duì)象”應(yīng)為“通用”,“過(guò)程”應(yīng)為“聲明”,如圖2-1所示。圖2-1變量的定義2.2常量和變量(4)Private:用于聲明模塊級(jí)變量,這種類型的變量對(duì)該模塊中的所有過(guò)程都是可用的,但對(duì)其他模塊內(nèi)的過(guò)程不能使用。(5)類型名是前面講過(guò)的數(shù)據(jù)類型名稱,如Integer、String等。例如:Dim

x

As

Integer,y

As

String

?聲明整型變量x和字符y串變量Static

a

As

Integer

?聲明一個(gè)名為a的整型靜態(tài)變量Private

temp

As

Single

?聲明一個(gè)在模塊內(nèi)部使用的單精度變量Public

intY

As

Integer

?聲明一個(gè)在所有模塊內(nèi)使用的整型變量2.2常量和變量在定義變量時(shí)也可使用類型說(shuō)明符,把類型說(shuō)明符放在變量名的尾部,可以標(biāo)識(shí)不同的變量類型。和常量的類型說(shuō)明符相同,%表示整型,&表示長(zhǎng)整型,!表示單精度型,#表示雙精度型,@表示貨幣型,$表示字符串型,如Dima!表示定義了一個(gè)單精度變量a。提示2.3運(yùn)算符與表達(dá)式2.3運(yùn)算符與表達(dá)式VB中的運(yùn)算符包括算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符和字符串運(yùn)算符4種類型,掌握運(yùn)算符及其表達(dá)式是掌握編程的重點(diǎn)。?2.3.1算術(shù)運(yùn)算符及其表達(dá)式1.算術(shù)運(yùn)算符2.3運(yùn)算符與表達(dá)式在VB中,算術(shù)運(yùn)算符是最常用的運(yùn)算符,用來(lái)執(zhí)行簡(jiǎn)單的算術(shù)運(yùn)算。VB中提供了9種算術(shù)運(yùn)算符,表2-2按照優(yōu)先級(jí)別列出了這些算術(shù)運(yùn)算符。2.3運(yùn)算符與表達(dá)式在9個(gè)算術(shù)運(yùn)算符中,除取負(fù)(-)是單目運(yùn)算符外,其他均為雙目運(yùn)算符(需要兩個(gè)運(yùn)算量)。冪運(yùn)算用來(lái)計(jì)算乘方和方根,其運(yùn)算符為“^”。例如,8^3表示8的3次方。該運(yùn)算還可以計(jì)算方根,如25^0.5表示25的平方根。1)冪運(yùn)算當(dāng)指數(shù)是一個(gè)表達(dá)式時(shí),必須加上括號(hào)。提示2.3運(yùn)算符與表達(dá)式浮點(diǎn)數(shù)除法運(yùn)算符(/)執(zhí)行標(biāo)準(zhǔn)除法操作,其結(jié)果為浮點(diǎn)數(shù)。例如,表達(dá)式7/2的結(jié)果為3.5,與數(shù)學(xué)中的除法相同。2)浮點(diǎn)數(shù)除法整數(shù)除法運(yùn)算符(\)執(zhí)行整除運(yùn)算,結(jié)果為商的整數(shù)部分,因此,表達(dá)式5\2的值為2。整除的操作數(shù)一般為整型值。當(dāng)操作數(shù)帶有小數(shù)時(shí),首先將其四舍五入為整型數(shù)或長(zhǎng)整型數(shù),然后進(jìn)行整除運(yùn)算,運(yùn)算結(jié)果被截?cái)酁檎蛿?shù)或長(zhǎng)整型數(shù),不進(jìn)行四舍五入。例如,表達(dá)式34.3\3,先將34.3四舍五入為34再進(jìn)行運(yùn)算,取整結(jié)果為11。3)整數(shù)除法2.3運(yùn)算符與表達(dá)式取模運(yùn)算符Mod用來(lái)求余數(shù),其結(jié)果為第一個(gè)操作數(shù)整除第二個(gè)操作數(shù)所得的余數(shù)。例如,9

Mod

4,結(jié)果為1。再如,21.8

Mod

6.9,先對(duì)操作數(shù)進(jìn)行四舍五入,分別為22和7,再計(jì)算22

Mod

7,余數(shù)為1。4)取模運(yùn)算在9個(gè)算術(shù)運(yùn)算符中,冪運(yùn)算符(^)優(yōu)先級(jí)最高,其次是取負(fù)(-)、乘(*)、浮點(diǎn)除(/)、整除(\)、取模(Mod)、加(+)、減(-)、字符串連接(&)。其中,乘和浮點(diǎn)除是同級(jí)運(yùn)算符,加和減是同級(jí)運(yùn)算符。5)算術(shù)運(yùn)算符的優(yōu)先級(jí)2.算術(shù)表達(dá)式2.3運(yùn)算符與表達(dá)式算術(shù)表達(dá)式是使用算術(shù)運(yùn)算符將常量、變量函數(shù)表達(dá)式連接起來(lái)的式子。VB中常用的算術(shù)函數(shù)見(jiàn)表2-3。2.3運(yùn)算符與表達(dá)式在三角函數(shù)中,自變量x是一個(gè)數(shù)值表達(dá)式。其中,Sin、Cos、Tan的自變量以弧度為單位。Atn函數(shù)的自變量是數(shù)值,返回正切值為x的角度,以弧度為單位。當(dāng)自變量以角度給出時(shí),可以用下面的公式轉(zhuǎn)換為弧度:1度=π/180=3.14159/180(弧度)為了檢驗(yàn)每個(gè)函數(shù)的操作,可以在“立即”窗口中通過(guò)命令行直接顯示函數(shù)的執(zhí)行結(jié)果。“立即”窗口可以通過(guò)“視圖”菜單中的“立即窗口”命令打開?!傲⒓础贝翱谌鐖D2-2所示。圖2-2“立即”窗口?2.3.2邏輯運(yùn)算符及其表達(dá)式1.Not(非)2.3運(yùn)算符與表達(dá)式邏輯運(yùn)算也稱布爾運(yùn)算,邏輯運(yùn)算除Not是單目運(yùn)算外,其他都是雙目運(yùn)算,結(jié)果為True或False。VB中的邏輯運(yùn)算符有以下6種。由真變假或是由假變真,進(jìn)行“取反”運(yùn)算。例如,2>3,其值為False,而Not(2>3)的值為True。2.And(與)當(dāng)參加運(yùn)算的兩個(gè)表達(dá)式的值均為True時(shí),結(jié)果才為True,否則為False。例如,(3>8)And(5<6)的結(jié)果為False。3.Or(或)2.3運(yùn)算符與表達(dá)式當(dāng)參加運(yùn)算的兩個(gè)表達(dá)式中有一個(gè)表達(dá)式的值為True時(shí),結(jié)果就為True;只有當(dāng)兩個(gè)表達(dá)式的值均為False時(shí),結(jié)果才為False。例如,(3>8)Or(5<6)的結(jié)果為True。4.Xor(異或)當(dāng)兩個(gè)表達(dá)式同時(shí)為True或同時(shí)為False時(shí),結(jié)果為False,否則為True,也就是當(dāng)兩個(gè)表達(dá)式的值不同時(shí),結(jié)果為True。例如,(3>8)Xor(5<6)的結(jié)果為True。5.Eqv(等價(jià))2.3運(yùn)算符與表達(dá)式只有兩個(gè)表達(dá)式同時(shí)為True或False,結(jié)果才為True。例如,(3>8)Eqv(5<6)的結(jié)果為False。6.Imp(蘊(yùn)含)當(dāng)?shù)谝粋€(gè)表達(dá)式為True,且第二個(gè)表達(dá)式為False時(shí),結(jié)果為False。其他情況均為True。?2.3.3關(guān)系運(yùn)算符及其表達(dá)式2.3運(yùn)算符與表達(dá)式關(guān)系運(yùn)算符也稱比較運(yùn)算符,用來(lái)對(duì)兩個(gè)表達(dá)式的值進(jìn)行比較,比較的結(jié)果是一個(gè)邏輯值,即真(True)或假(False)。Visual

Basic提供了6種關(guān)系運(yùn)算符,見(jiàn)表2-4。2.3運(yùn)算符與表達(dá)式用關(guān)系運(yùn)算符連接兩個(gè)算術(shù)表達(dá)式所組成的式子稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的結(jié)果是一個(gè)Boolean類型的值,即True或False。Visual

Basic把任何非0值都認(rèn)為是“真”,但一般以1表示真,以0表示假。(1)如果兩個(gè)操作數(shù)都是數(shù)值型,則按其大小進(jìn)行比較。(2)如果兩個(gè)操作數(shù)都是字符型,則按字符的ASCII碼值從左到右依次比較,即首先比較第1個(gè)字符,其ASCII碼值大的字符串大,如果第1個(gè)字符相同,則比較第2個(gè)字符,以此類推,直到出現(xiàn)不同的字符為止。(3)關(guān)系運(yùn)算符的優(yōu)先級(jí)相同。提示?2.3.4字符串運(yùn)算符及其表達(dá)式1.字符串運(yùn)算符2.3運(yùn)算符與表達(dá)式VisualBasic提供了兩個(gè)用于字符串連接的運(yùn)算符“+”和“&”?!?”用于把兩個(gè)字符串連在一起,生成一個(gè)較長(zhǎng)的字符串。例如,A$="Mouse",B$="Trap",則執(zhí)行C$=A$+B$后,C$值為“MouseTrap”?!?”作為字符串連接符,與“+”的功能是相同的。(1)“&”。連接符“&”兩邊的操作數(shù)無(wú)論是字符型還是數(shù)值型,進(jìn)行連接操作前,系統(tǒng)先將操作數(shù)轉(zhuǎn)換成字符型,然后連接。(2)“+”。連接符“+”兩邊的數(shù)應(yīng)均為字符型。若均為數(shù)值型,則進(jìn)行算術(shù)運(yùn)算;若一個(gè)為字符型,另一個(gè)為數(shù)值型,則出錯(cuò)。提示2.字符串表達(dá)式2.3運(yùn)算符與表達(dá)式字符串表達(dá)式是使用字符串運(yùn)算符將字符串常量、字符串變量、字符串函數(shù)等連接起來(lái)的式子。Visual

Basic提供了大量的字符串函數(shù),字符串函數(shù)大都以類型說(shuō)明符“$”結(jié)尾,表明函數(shù)的返回值為字符串。在Visual

Basic

6.0中,函數(shù)尾部的“$”也可以省略。表2-5中列出了常用的字符串函數(shù)。2.3運(yùn)算符與表達(dá)式字符串匹配函數(shù)的功能是在字符串1中查找字符串2,如果找到了,則返回字符串2的第一個(gè)字符在字符串1中的位置;如果沒(méi)有找到,則返回值為0。提示?2.3.5各種運(yùn)算符的優(yōu)先級(jí)2.3運(yùn)算符與表達(dá)式一個(gè)表達(dá)式可能含有多種運(yùn)算,計(jì)算機(jī)按一定的順序?qū)Ρ磉_(dá)式求值。表達(dá)式的運(yùn)算順序見(jiàn)表2-6。2.4常用的內(nèi)部函數(shù)2.4常用的內(nèi)部函數(shù)Visual

Basic中除了前面介紹過(guò)的數(shù)學(xué)函數(shù)外,還提供了大量的其他函數(shù),如轉(zhuǎn)換函數(shù)、日期和時(shí)間函數(shù)等。表2-7中列出了Visual

Basic中常用的內(nèi)部函數(shù)。2.4常用的內(nèi)部函數(shù)2.4常用的內(nèi)部函數(shù)(1)日期和時(shí)間函數(shù)的自變量Now是一個(gè)內(nèi)部變量,返回系統(tǒng)當(dāng)前的日期時(shí)間,不需要用戶定義。(2)用Rnd函數(shù)可以產(chǎn)生隨機(jī)數(shù),當(dāng)一個(gè)應(yīng)用程序不斷地重復(fù)使用隨機(jī)數(shù)時(shí),同一序列的隨機(jī)數(shù)會(huì)反復(fù)出現(xiàn),用Randomize語(yǔ)句可以消除這種情況,其格式為Randomize(x)。這里的x是一個(gè)整型數(shù),它是隨機(jī)數(shù)發(fā)生器的“種子數(shù)”,可以省略。提示2.5基本語(yǔ)句2.5基本語(yǔ)句指令又稱語(yǔ)句,程序就是按照一定功能編寫組織而成的有機(jī)語(yǔ)句序列。語(yǔ)句中包含識(shí)別語(yǔ)句的關(guān)鍵字、常量、變量、函數(shù)、表達(dá)式、屬性等,都應(yīng)該按其各自的特點(diǎn)和原則描述,匯集到一條語(yǔ)句中,更要遵守語(yǔ)句的格式規(guī)則。VB中的語(yǔ)句一般獨(dú)成一行,以回車結(jié)束。也允許多個(gè)語(yǔ)句放在同一行中,語(yǔ)句之間用冒號(hào)(:)相隔,但一行不能超過(guò)1023個(gè)字符。相反,如果一個(gè)語(yǔ)句字符多于一行而顯示不下需要分行書寫時(shí),在行的末尾用下劃線作為續(xù)行連接符,表示這行的字符與下行的字符組成同一個(gè)命令。下劃線前至少要有一個(gè)空格,以表示與前面的命令字符分隔開。提示1.Let2.5基本語(yǔ)句【功能】將表達(dá)式的值賦給變量或?qū)傩浴!靖袷健縖Let]<變量名>=<表達(dá)式>。【說(shuō)明】Let關(guān)鍵字通常省略。表達(dá)式值的類型最好與變量聲明的數(shù)據(jù)類型一致,否則可能在編譯時(shí)出現(xiàn)錯(cuò)誤。如果把一種數(shù)值類型的表達(dá)式賦給另一種數(shù)值類型的變量,系統(tǒng)會(huì)強(qiáng)制將該表達(dá)式的值轉(zhuǎn)換為結(jié)果變量的數(shù)值類型。可以用字符串或數(shù)值表達(dá)式給變體型變量賦值,但反過(guò)來(lái)則不一定,任何除Null之外的變體型變量都可以賦值給字符串變量,但只有當(dāng)變體型變量的值可以轉(zhuǎn)換為某個(gè)數(shù)時(shí)才能賦值給數(shù)值變量。【例2-3】對(duì)變量賦值。2.5基本語(yǔ)句Private

Sub

Form_Click()Dim

a

As

VariantDim

c

As

StringDim

b

As

Singlec="efg"b=0.000314a=c

?將字符串變量賦值給變體型變量Print

a

?輸出efga=b

?將數(shù)值變量賦值給變體型變量Print

a+1

?輸出1.000314c=a

?將變體型變量賦值給字符串變量Print

c+"abc"

?輸出0.000314abca="abc"b=a

?將不能轉(zhuǎn)換成數(shù)的變體型變量賦值給數(shù)值變量,錯(cuò)誤Print

b

?顯示“類型不匹配錯(cuò)誤”End

Sub2.Rem2.5基本語(yǔ)句【功能】在程序中標(biāo)注注釋信息?!靖袷健縍em<注釋內(nèi)容>?!菊f(shuō)明】Rem及其引出的注釋信息只是起到對(duì)語(yǔ)句或程序的說(shuō)明或解釋作用,不會(huì)參與程序的編譯和執(zhí)行。在Rem與<注釋內(nèi)容>之間要加一個(gè)空格。Rem引出的注釋一般要單獨(dú)成行,如果要在其他語(yǔ)句行后緊接著使用Rem關(guān)鍵字,則必須使用冒號(hào)與語(yǔ)句隔開。常常使用一個(gè)單引號(hào)來(lái)代替Rem關(guān)鍵字,因?yàn)槭褂脝我?hào)引出的注釋可以直接跟在語(yǔ)句行后,不必使用冒號(hào)相隔。例如,以下語(yǔ)句的3種注釋方法都是正確的。Private

Sub

Form_Click()Dim

a

As

VariantRem

定義變體變量Dim

c

As

String:

Rem定義字符串變量Dim

b

As

Single

?定義單精度型變量End

Sub2.5基本語(yǔ)句3.Date2.5基本語(yǔ)句【功能】設(shè)置系統(tǒng)日期?!靖袷健緿ate=<日期型表達(dá)式>?!菊f(shuō)明】<日期型表達(dá)式>可以是日期型的常量、變量、函數(shù)及表達(dá)式。與日期相關(guān)的函數(shù)如Date(),功能是返回當(dāng)前的系統(tǒng)日期,可以省略后面的一對(duì)括號(hào),下面例子Print中的Date以及加法表達(dá)式中的Date即系統(tǒng)日期函數(shù)。【例2-4】系統(tǒng)日期的相關(guān)操作。2.5基本語(yǔ)句Private

Sub

Form_Click()Print

Date

?輸出當(dāng)前系統(tǒng)日期Dim

MyDate

As

Date

?定義日期型變量MyDateMyDate="03/13/2022"

?重新設(shè)置一個(gè)日期Print

MyDateMyDate=MyDate+2

?再次設(shè)置日期Print

MyDateEnd

Sub4.Time2.5基本語(yǔ)句【功能】設(shè)置系統(tǒng)時(shí)間?!靖袷健縏ime=<系統(tǒng)時(shí)間>。【說(shuō)明】<系統(tǒng)時(shí)間>可以是任何能夠表示時(shí)間的數(shù)值表達(dá)式、字符串表達(dá)式或它們的組合。如果<系統(tǒng)時(shí)間>是字符串表達(dá)式,系統(tǒng)會(huì)試著根據(jù)指定的時(shí)間,利用時(shí)間分隔符將其轉(zhuǎn)換成一個(gè)時(shí)間。如果無(wú)法轉(zhuǎn)換成一個(gè)有效的時(shí)間,會(huì)導(dǎo)致發(fā)生錯(cuò)誤。例如:Time=#9:49:20PM#

?表示設(shè)置當(dāng)前系統(tǒng)時(shí)間為下午9:49:20,即21:49:20Time=#9:49:20AM#

?表示設(shè)置當(dāng)前系統(tǒng)時(shí)間為上午9:49:205.Stop2.5基本語(yǔ)句【功能】暫停執(zhí)行。【格式】Stop?!菊f(shuō)明】使用Stop語(yǔ)句,就相當(dāng)于在程序代碼中設(shè)置斷點(diǎn),可以在過(guò)程中的任何地方放置Stop語(yǔ)句。Stop語(yǔ)句會(huì)暫停程序的執(zhí)行,但它不像End語(yǔ)句,因?yàn)镾top語(yǔ)句不會(huì)關(guān)閉任何文件或清除變量,除非它是以編譯后的可執(zhí)行文件(.exe)方式來(lái)執(zhí)行的。此時(shí)程序員可以在此斷點(diǎn)處觀察相關(guān)變量或結(jié)果,以便發(fā)現(xiàn)問(wèn)題,調(diào)試程序。6.End2.5基本語(yǔ)句【功能】結(jié)束一個(gè)過(guò)程或塊。【格式】End語(yǔ)句根據(jù)其所在位置,有以下幾種形式:(1)End:停止執(zhí)行,可以放在過(guò)程中的任何位置關(guān)閉代碼執(zhí)行、關(guān)閉以O(shè)pen語(yǔ)句打開的文件并清除變量。(2)End

Function:用于結(jié)束一個(gè)Function函數(shù)過(guò)程的定義。(3)End

If:用于結(jié)束一個(gè)If…Then…Else語(yǔ)句塊。(4)End

Property:用于結(jié)束一個(gè)Property

Let、Property

Get或Property

Set過(guò)程。(5)End

Select:用于結(jié)束一個(gè)SelectCase語(yǔ)句。(6)End

Sub:用于結(jié)束一個(gè)Sub過(guò)程的定義。(7)End

Type:用于結(jié)束一個(gè)用戶自定義類型的定義(Type語(yǔ)句)。(8)End

With:用于結(jié)束一個(gè)With語(yǔ)句。【說(shuō)明】執(zhí)行End語(yǔ)句后,會(huì)重置所有模塊級(jí)別變量和所有模塊的靜態(tài)局部變量。若要保留這些變量的值,可改為使用Stop語(yǔ)句,即可在保留這些變量值的基礎(chǔ)上恢復(fù)執(zhí)行。End語(yǔ)句提供了一種強(qiáng)迫終止程序的方法,VB程序正常結(jié)束應(yīng)該卸載所有的窗體。7.Exit2.5基本語(yǔ)句【功能】退出Do…Loop、For…Next、Function、Sub或Property代碼塊?!靖袷健縀xit語(yǔ)句根據(jù)其所在的位置,有以下幾種形式:(1)Exit

Do:在Do…Loop型循環(huán)中使用,表示強(qiáng)制退出Do…Loop型循環(huán)。(2)Exit

For:在For…Next型循環(huán)中使用,表示強(qiáng)制退出For型循環(huán)。(3)Exit

Function:從包含該語(yǔ)句的Function過(guò)程中退出。(4)Exit

Property:從包含該語(yǔ)句的Property過(guò)程中退出。(5)Exit

Sub:從包含該語(yǔ)句的Sub過(guò)程中退出。8.GoSub…Return2.5基本語(yǔ)句【功能】從一個(gè)過(guò)程中的某語(yǔ)句跳到另一個(gè)語(yǔ)句段中執(zhí)行,執(zhí)行后再返回?!靖袷健縂oSub<標(biāo)簽號(hào)行號(hào)>…<標(biāo)簽號(hào)行號(hào)>…Return【說(shuō)明】可以在過(guò)程中的任何地方使用GoSub…Return,但是GoSub和與之相應(yīng)的Return語(yǔ)句必須放在同一個(gè)過(guò)程中,不能使用GoSub…Return來(lái)進(jìn)入或退出Sub過(guò)程。一個(gè)子過(guò)程中可以包含一個(gè)以上的Return語(yǔ)句,但是當(dāng)碰到第一個(gè)Return語(yǔ)句時(shí),程序就會(huì)返回到緊接著剛剛執(zhí)行的GoSub語(yǔ)句之后的語(yǔ)句繼續(xù)執(zhí)行。創(chuàng)建分開的子過(guò)程,并使用GoSub…Return來(lái)調(diào)用,可以使程序更結(jié)構(gòu)化。【例2-5】使用GoSub調(diào)用子過(guò)程中的一段子程序。Return語(yǔ)句將執(zhí)行返回到GoSub的下一個(gè)語(yǔ)句。ExitSub語(yǔ)句用來(lái)避免該子程序意外情形的發(fā)生。如果在輸入框中輸入20,最后在窗體中輸出的結(jié)果是10,說(shuō)明在輸出Num的值之前,程序先跳到下面的“Num=Num/2”語(yǔ)句執(zhí)行再返回。2.5基本語(yǔ)句Private

Sub

Command_Click()Dim

NumNum=InputBox("請(qǐng)輸入一個(gè)整數(shù):")If

Num>0Then

Go

Sub

MyRoutine

?如果用戶輸入一個(gè)正整數(shù),則使用子程序Print

NumExit

Sub

?使用Exit命令來(lái)避免發(fā)生錯(cuò)誤MyRoutine:Num=Num/2

?將數(shù)除以2Return

?將控制返回GoSub之后的語(yǔ)句End

Sub模塊3VisualBasic程序控制結(jié)構(gòu)目錄3.1順序結(jié)構(gòu)3.2選擇結(jié)構(gòu)3.3循環(huán)結(jié)構(gòu)知識(shí)目標(biāo)掌握Visual

Basic的基本的程序控制結(jié)構(gòu)。掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的具體使用方法。技能目標(biāo)能夠根據(jù)需要熟練運(yùn)用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)編寫程序。3.1順序結(jié)構(gòu)3.1順序結(jié)構(gòu)順序結(jié)構(gòu)是使用最普遍的一種控制結(jié)構(gòu),這種控制結(jié)構(gòu)按照命令從前到后的自然排列順序逐條執(zhí)行,可以將其看作系統(tǒng)默認(rèn)的控制結(jié)構(gòu),不需要專門的控制語(yǔ)句。其程序流程圖如圖3-1所示,先執(zhí)行程序段A,然后繼續(xù)執(zhí)行相鄰的程序段B。程序段是由一條或多條語(yǔ)句組成的語(yǔ)句序列。圖3-1

順序結(jié)構(gòu)3.2選擇結(jié)構(gòu)3.2選擇結(jié)構(gòu)在實(shí)際應(yīng)用中,常需要對(duì)給定的條件進(jìn)行分析、比較和判斷,并根據(jù)判斷結(jié)果采取不同的操作。在VB中,這樣的問(wèn)題通過(guò)選擇結(jié)構(gòu)程序來(lái)解決,而選擇結(jié)構(gòu)通過(guò)條件語(yǔ)句來(lái)實(shí)現(xiàn)。條件語(yǔ)句也稱If語(yǔ)句,它有兩種格式,一種是單行結(jié)構(gòu),另一種是塊結(jié)構(gòu)。?3.2.1單分支選擇結(jié)構(gòu)常量是在程序運(yùn)行中不變的量。Visual

Basic中的常量分為兩種,一種是文字常量,另一種是符號(hào)常量。3.2選擇結(jié)構(gòu)1.單行結(jié)構(gòu)單行條件語(yǔ)句比較簡(jiǎn)單,其語(yǔ)法格式如下:If

條件

Then

語(yǔ)句1[Else

語(yǔ)句

2]該語(yǔ)句的功能是:如果“條件”為True,則執(zhí)行“語(yǔ)句1”,否則執(zhí)行“語(yǔ)句2”。其中各參數(shù)的說(shuō)明如下:“語(yǔ)句1”和“語(yǔ)句2”可以包含一個(gè)或多個(gè)VB語(yǔ)句,當(dāng)含有多個(gè)語(yǔ)句時(shí),各語(yǔ)句之間用冒號(hào)隔開。If語(yǔ)句中的Else部分是可選的,當(dāng)該項(xiàng)省略時(shí),If語(yǔ)句簡(jiǎn)化為If

條件

Then

語(yǔ)句

13.2選擇結(jié)構(gòu)它的功能是:若“條件”為True,則執(zhí)行“語(yǔ)句1”,否則執(zhí)行下一行程序。條件語(yǔ)句中的“語(yǔ)句1”和“語(yǔ)句2”都可以是條件語(yǔ)句,即條件語(yǔ)句可以嵌套。嵌套If語(yǔ)句既可以出現(xiàn)在Else部分,也可以出現(xiàn)在Then部分,當(dāng)嵌套層數(shù)較多時(shí),應(yīng)注意嵌套的正確性,一般原則是每一個(gè)Else部分都與它前面的且未曾被配對(duì)的If…Then配對(duì)。3.2選擇結(jié)構(gòu)【例3-1】設(shè)有如下函數(shù),要求輸入x,求出y的值并輸出。

y=1(x>0)

0(x=0)

-1(x<0)根據(jù)題目要求,編寫如下程序:Private

Sub

Form_Click()Dim

x

As

Single,y

As

Singlex=InputBox("請(qǐng)輸入x的值")If

x>0

Then

y=1

Else

If

x=0

Then

y=0

Else

y=-1Print"x=";x,"y=";yEnd

Sub運(yùn)行程序時(shí)會(huì)彈出圖3-2所示的對(duì)話框,輸入一個(gè)值,然后單擊“確定”按鈕即可得到運(yùn)行結(jié)果,運(yùn)行結(jié)果如圖3-3所示。3.2選擇結(jié)構(gòu)在上面的程序中,“If

x=0

Then

y=0

Else

y=-1”是If語(yǔ)句的Else部分,它本身也是一個(gè)If部分,即嵌套If語(yǔ)句。程序中的If語(yǔ)句可以改為If

x>=0

Then

If

x>0

Then

y=1

Else

y=0

Else

y=-1圖3-3運(yùn)行結(jié)果圖3-2運(yùn)行程序時(shí)彈出的對(duì)話框3.2選擇結(jié)構(gòu)2.塊結(jié)構(gòu)塊結(jié)構(gòu)條件語(yǔ)句的一般語(yǔ)法格式如下:If

條件1

Then[語(yǔ)句塊1]Else

If

條件2

Then[語(yǔ)句塊2]Else

If

條件3

Then[語(yǔ)句塊3]…Else[語(yǔ)句塊n]End

If3.2選擇結(jié)構(gòu)塊結(jié)構(gòu)條件語(yǔ)句的功能是如果“條件1”為True,則執(zhí)行“語(yǔ)句塊1”;如果“條件2”為True,則執(zhí)行“語(yǔ)句塊2”……否則執(zhí)行“語(yǔ)句塊n”。“語(yǔ)句塊”可以是一個(gè)語(yǔ)句,也可以是多個(gè)語(yǔ)句。當(dāng)有多個(gè)語(yǔ)句時(shí),可以分別寫在多行中;如果寫在一行中,則各語(yǔ)句之間用冒號(hào)隔開。例如:If(X>0)And(X<100)Then

Y=10:Z=20塊形式條件語(yǔ)句的執(zhí)行過(guò)程是:先測(cè)試“條件1”,如果該條件為True,則執(zhí)行Then后面的“語(yǔ)句塊”;如果“條件1”為False,則按順序測(cè)試每個(gè)ElseIf子句中的“條件”,當(dāng)發(fā)現(xiàn)某個(gè)“條件”為True時(shí),就執(zhí)行與其相關(guān)的Then后面的“語(yǔ)句塊”;如果所有ElseIf子句的“條件”都不為True,則執(zhí)行Else后面的“語(yǔ)句塊n”。在執(zhí)行了Then或Else后面的語(yǔ)句塊之后,程序退出塊結(jié)構(gòu)條件語(yǔ)句,繼續(xù)執(zhí)行EndIf后面的語(yǔ)句。3.2選擇結(jié)構(gòu)“語(yǔ)句塊”中的語(yǔ)句不能與其前面的Then在同一行上,否則Visual

Basic認(rèn)為是一個(gè)單行結(jié)構(gòu)的條件語(yǔ)句。也就是說(shuō),塊結(jié)構(gòu)與單行結(jié)構(gòu)條件語(yǔ)句的主要區(qū)別,就是看Then后面的語(yǔ)句(注釋語(yǔ)句除外)是否和Then在同一行上。如果在同一行上,則為單行結(jié)構(gòu),否則為塊結(jié)構(gòu)。對(duì)于塊結(jié)構(gòu),必須以End

If結(jié)束,單行結(jié)構(gòu)沒(méi)有End

If。在塊結(jié)構(gòu)的條件語(yǔ)句中,ElseIf子句的數(shù)量沒(méi)有限制,可以根據(jù)需要加入任意多個(gè)Else

If子句。塊結(jié)構(gòu)條件語(yǔ)句中的ElseIf子句和Else子句都是可選的。如果省略這些子句,則塊形式的條件語(yǔ)句簡(jiǎn)化為If條件Then語(yǔ)句塊End

If當(dāng)If結(jié)構(gòu)內(nèi)有多個(gè)條件為True時(shí),執(zhí)行第一個(gè)為True的條件后面的語(yǔ)句塊。3.2選擇結(jié)構(gòu)塊形式的條件語(yǔ)句可以嵌套,即把一個(gè)If…Then…Else塊放在另一個(gè)If…Then…Else塊內(nèi),但不能交叉。與單行條件語(yǔ)句相比,塊結(jié)構(gòu)條件語(yǔ)句有很多優(yōu)點(diǎn),如塊形式比單行形式提供了更好的結(jié)構(gòu)和靈活性,它允許條件分支跨越數(shù)行,同時(shí),用塊形式可以測(cè)試更復(fù)雜的條件。塊形式使程序的結(jié)構(gòu)按邏輯來(lái)引導(dǎo),而不是把多個(gè)語(yǔ)句放在一行中。此外,使用塊形式的程序一般容易閱讀、維護(hù)和調(diào)試。任何單行形式的條件語(yǔ)句都可以改寫成塊形式。Visual

Basic還提供了IIf函數(shù),可用來(lái)執(zhí)行簡(jiǎn)單的條件判斷操作,格式如下:

待添加提示當(dāng)“條件”為真時(shí),返回“值1”;當(dāng)“條件”為假時(shí),返回“值2”。例如,r=IIf(a>5,1,2)表示當(dāng)a>5時(shí),r=1,否則r=2。?3.2.2多分支選擇結(jié)構(gòu)在Visual

Basic中,多分支結(jié)構(gòu)程序通過(guò)情況語(yǔ)句來(lái)實(shí)現(xiàn)。情況語(yǔ)句也稱Select

Case語(yǔ)句或Case語(yǔ)句,它根據(jù)一個(gè)表達(dá)式的值,在一組相互獨(dú)立的可選語(yǔ)句序列中挑選要執(zhí)行的語(yǔ)句序列。它實(shí)際上是塊形式條件語(yǔ)句的一種變形。3.2選擇結(jié)構(gòu)情況語(yǔ)句的一般語(yǔ)法格式如下:Select

Case測(cè)試表達(dá)式Case

表達(dá)式列表1[語(yǔ)句塊1]Case

表達(dá)式列表2[語(yǔ)句塊2]…Case

Else[語(yǔ)句塊n]End

Select3.2選擇結(jié)構(gòu)情況語(yǔ)句以Select

Case開頭,以End

Select結(jié)束。其功能是,根據(jù)“測(cè)試表達(dá)式”的值,從多個(gè)語(yǔ)句塊中選擇符合條件的一個(gè)語(yǔ)句塊執(zhí)行。其中各參數(shù)的含義如下:(1)“測(cè)試表達(dá)式”可以是數(shù)值表達(dá)式或字符串表達(dá)式,通常為變量或常量。(2)每個(gè)語(yǔ)句塊由一行或多行合法的VisualBasic語(yǔ)句組成。(3)“表達(dá)式列表1”“表達(dá)式列表2”……稱為域值,可以是下列形式之一:①表達(dá)式[,表達(dá)式]……。例如:Case

2,4,6,8②表達(dá)式To表達(dá)式。在這種格式中,必須把較小的值寫在前面,把較大的值寫在后面,字符串常量的范圍必須按字母順序?qū)懗?。例如:Case1To5,Case"A"To"Z"3.2選擇結(jié)構(gòu)③Is關(guān)系運(yùn)算表達(dá)式,使用的運(yùn)算符包括<、<=、>、>=、<>、=。例如:Case

Is=12Case

Is<a+b

?表示當(dāng)測(cè)試表達(dá)式小于a+b時(shí),執(zhí)行相應(yīng)的語(yǔ)句塊表達(dá)式列表中的表達(dá)式必須與測(cè)試表達(dá)式的數(shù)據(jù)類型相同。當(dāng)用關(guān)鍵字Is定義條件時(shí),只能是簡(jiǎn)單的條件,不能用邏輯運(yùn)算符將兩個(gè)或多個(gè)簡(jiǎn)單條件組合在一起,如Case

Is>10

And

Is<20是不合法的。提示(4)情況語(yǔ)句的執(zhí)行過(guò)程是:先對(duì)“測(cè)試表達(dá)式”求值,然后測(cè)試該值與哪一個(gè)Case子句中的表達(dá)式列表相匹配;如果找到了,就執(zhí)行與該Case子句有關(guān)的語(yǔ)句塊,并把控制轉(zhuǎn)移到End

Select后面的語(yǔ)句;如果沒(méi)找到,就執(zhí)行與Case

Else子句有關(guān)的語(yǔ)句塊,然后把控制轉(zhuǎn)移到End

Select后面的語(yǔ)句。3.2選擇結(jié)構(gòu)(5)如果同一個(gè)域值的范圍在多個(gè)Case子句中出現(xiàn),就只執(zhí)行符合要求的第一個(gè)Case子句的語(yǔ)句塊。(6)在情況語(yǔ)句中,Case子句的順序?qū)?zhí)行結(jié)果沒(méi)有影響,但是應(yīng)注意,Case

Else子句必須放在所有的Case子句之后。如果在Select

Case結(jié)構(gòu)中的任何一個(gè)Case子句都沒(méi)有與“測(cè)試表達(dá)式”相匹配的值,而且也沒(méi)有Case

Else子句,就不執(zhí)行任何操作。3.2選擇結(jié)構(gòu)例如,有以下程序段:Sub

Form_Click()msg="請(qǐng)輸入數(shù)據(jù):"var=InputBox(msg)Select

Case

varCas

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論