VB程序設(shè)計教程_第1頁
VB程序設(shè)計教程_第2頁
VB程序設(shè)計教程_第3頁
VB程序設(shè)計教程_第4頁
VB程序設(shè)計教程_第5頁
已閱讀5頁,還剩411頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VisualBasic

程序設(shè)計教程

基于Windows的應(yīng)用程序是如何開發(fā)的?目錄第一章VisualBasic概述第二章基本控件第三章VB語言基礎(chǔ)第四章程序結(jié)構(gòu)第五章數(shù)組第六章過程第七章常用控件第八章界面設(shè)計第九章數(shù)據(jù)庫應(yīng)用第一章VisualBasic概述

第一節(jié)VisualBasic簡介BASIC是20世紀(jì)60年代由美國達(dá)特茅斯大學(xué)的兩位教授共同設(shè)計的計算機程序設(shè)計語言,是國際上廣泛使用的一種計算機高級語言。Basic語言簡單易學(xué)、人機交互容易、程序調(diào)試簡便,目前仍是計算機程序設(shè)計初學(xué)者入門學(xué)習(xí)的主要語言之一。一、VisualBasic的發(fā)展發(fā)展過程1964、BASIC20世紀(jì)90年代、VISUALBASIC1.0(圖形界面程序設(shè)計語言)VISUALBASIC3.0、強大的數(shù)據(jù)庫管理功能VISUALBASIC6.0、,VisualBasic6.0在面向?qū)ο缶幊痰牡燃夹g(shù)上做了許多擴展,VisualBasic已經(jīng)成為一種真正專業(yè)化的開發(fā)語言,用戶可以編寫企業(yè)水平的客戶/服務(wù)器程序和強大的數(shù)據(jù)庫應(yīng)用程序。二、VISUALBASIC的特點1.具有面向?qū)ο?.具有可視化編程特點3.強大的數(shù)據(jù)庫處理功能4.可使用其他應(yīng)用程序提供的功能5.支持internet程序開發(fā)功能6..exe應(yīng)用程序三、VISUALBASIC6.0的新增功能1、新增功能

2、改進(jìn)的功能第二節(jié)VISUALBASIC的安裝與運行VisualBasic6.0中文版包括3種版本VisualBasic學(xué)習(xí)版(Learning)VisualBasic專業(yè)版(Professional)VisualBasic企業(yè)版(Enterprise)一、VisualBasic的安裝二、VisualBasic的運行第三節(jié)VisualBasic的集成開發(fā)環(huán)境1.主窗口應(yīng)用程序窗口,由標(biāo)題欄、菜單欄和工具欄組成2.窗體(form)窗口設(shè)計vb程序的界面3.代碼(code)窗口編輯窗體、標(biāo)準(zhǔn)模塊中的代碼4.屬性(properties)窗口所有窗體或控件的屬性設(shè)置5.工程資源管理器(projectexpror)窗口保存一個應(yīng)用程序所有的文件6.工具箱(toolbox)窗口顯示各種控件的制作工具,供用戶在窗體上設(shè)計7.窗體布局窗口8.對象瀏覽器9.立即窗口、本地窗口和監(jiān)視窗口第四節(jié)面向?qū)ο蟪绦蛟O(shè)計

程序設(shè)計方法的發(fā)展1.初期的程序設(shè)計高運行效率、少占用內(nèi)存為目標(biāo)2.結(jié)構(gòu)化程序設(shè)計 程序的可讀性、可維護性為目標(biāo)程序=算法+數(shù)據(jù)結(jié)構(gòu)的面向過程的程序設(shè)計3.面向?qū)ο蟮某绦蛟O(shè)計降低程序的復(fù)雜性、提高軟件的開法效率和改善工作界面為目標(biāo)程序=對象+消息的面向?qū)ο蟮某绦蛟O(shè)計一、對象和類1.類類是創(chuàng)建對象實例的模板,包含了創(chuàng)建對象的屬性描述和行為特征的定義.2.對象是類的一個實例,繼承了類的屬性、方法。

Vb中常用的對象有:窗體、控件等。3.對象的建立和命名4.對象的三要素(1)屬性

對象的性質(zhì),即用來描述和反映對象特征的參數(shù)。(2)方法

對象的行為,即將一些通用的過程編寫好并封裝起來,作為方法供用戶直接調(diào)用。

(3)事件響應(yīng)對象的動作稱為事件,它發(fā)生在用戶與應(yīng)用程序交互時。如單擊控件、鼠標(biāo)移動、鍵盤按下等。事件過程指附在該對象上的用戶編寫的程序代碼,是事件的處理程序。事件驅(qū)動過程是圖形用戶界面的本質(zhì),由用戶控制而代碼作出響應(yīng)。5.VB程序的執(zhí)行步驟如下:1)啟動應(yīng)用程序,裝載和顯示窗體2)窗體(或窗體上的控件)等待事件的發(fā)生;3)事件發(fā)生時,執(zhí)行對應(yīng)的事件過程;4)重復(fù)執(zhí)行步驟(2)和(3);5)直到遇到“END”結(jié)束語句結(jié)束程序的運行或按“結(jié)束”強行停止程序的運行。二、創(chuàng)建應(yīng)用程序的步驟以例1.1為例1.建立用戶界面的對象2.對象屬性的設(shè)置3.對象事件過程及編程4.程序運行和調(diào)試5.保存文件三、VisualBasic程序開發(fā)中的兩個重要特性1.事件驅(qū)動模型2.交互式開發(fā)第二章基本控件2.1控件概述2.1.1控件分類在VisualBasic中,控件可分成三類:

控件內(nèi)部控件(標(biāo)準(zhǔn)控件)

:即控件工具欄中的控件,共20個。如CommandButton

控件、Text控件、Label控件等。ActiveX控件:是擴展名為.ocx的獨立文件,其中包括VB提供的控件(如DataList

控件)和第三方提供的ActiveX控件。可插入的對象:MicrosoftExcel工作表對象MicrosoftProject日歷對象2.1控件概述2.1.2使用標(biāo)準(zhǔn)ActiveX控件

VB包含部分ActiveX控件,即標(biāo)準(zhǔn)ActiveX控件),通過這些控件可以應(yīng)用程序中引入高級功能。2.1.3添加和刪除ActiveX控件1、在工具箱中添加ActiveX控件:1)在“工程”菜單中選擇“部件”。2)選定.ocx控件名旁邊的復(fù)選框,然后選擇“確定”。將控件放入工具箱2、刪除ActiveX控件:1)在工程的窗體上刪除控件的所有實例,并刪除工程代碼中對控件的所有引用。若代碼中還留有被刪除控件的引用,則在編譯應(yīng)用程序時將顯示出錯信息。2.在“工程”菜單中選擇“部件”,清除.ocx控件名旁邊的復(fù)選框,然后選擇“確定”。2.1控件概述2.1.4控件命名第一次創(chuàng)建對象時,VisualBasic將其Name屬性設(shè)置為缺省值。為窗體和控件命名,必須遵循以下命名規(guī)則:1、必須以字母開頭。2、只能包含字母、數(shù)字和下劃線字符_;不允許有標(biāo)點符號字符和空格。3、不能超過40個字符。2.1.5設(shè)置或獲取控件屬性值所有控件都有一個這樣的屬性:只需引用該控件對象名而無需使用屬性名就可以設(shè)置該屬性的值,稱此屬性為控件的默認(rèn)屬性值。如Text(文本框)控件的默認(rèn)屬性為Text屬性、Label(標(biāo)簽)控件的默認(rèn)屬性為Caption屬性。

Text1.Text=“VisualBasic”等價于Text1=“VisualBasic”Label1.Caption=“VisualBasic”等價于Label1=“VisualBasic”

控件對象的屬性值可以任意設(shè)置,也可以通過控件屬性來獲取其屬性值。2.2對象的屬性、事件和方法屬性、事件和方法被稱為對象的三要素。對象的三要素屬性:反映對象的性質(zhì)或特征的參數(shù)事件:預(yù)先設(shè)置好的、能夠被對象識別的動作。如click(單擊)、dblclick(雙擊)、load(裝入)等。方法:一種特殊的被封裝好的過程和函數(shù)(程序段)2.2對象的屬性、事件和方法2.2.1屬性屬性的設(shè)置有兩種方法:1、通過屬性設(shè)置框直接設(shè)置對象的屬性;2、在程序代碼中通過賦值實現(xiàn)。格式:對象.屬性=屬性值例如:給一個對象名為label1的標(biāo)簽控件的Caption屬性設(shè)置為“VB教程”,其在程序代碼中的書寫形式如下:

Label1.Caption="VB教程"2.2對象的屬性、事件和方法2.2.2事件對于控件對象而言,事件就是發(fā)生在該對象上的事情。VB中的事件類型可以分為三類,即鍵盤事件,鼠標(biāo)事件和程序事件。1、鍵盤事件指用戶按鍵盤上的按鍵后產(chǎn)生的事件,最常見的鍵盤事件主要有以下三個:

KeyPress:按一個鍵之后觸發(fā)事件

KeyDown:按下一個鍵時觸發(fā)的事件

KeyUp:松開一個鍵時觸發(fā)的事件2.2對象的屬性、事件和方法事件一旦發(fā)生,VB就立即尋找相應(yīng)的程序進(jìn)行處理。響應(yīng)一個事件的程序代碼,在VB中稱為一個事件過程。VB應(yīng)用程序設(shè)計的主要工作就是為對象編寫過程中的事件代碼。事件過程的形式如下:Sub對象名_事件([參數(shù)列表])…事件過程代碼EndSub例如:單擊Command1命令按鈕,使命令按鈕的字體設(shè)置為“宋體”,則對應(yīng)的事件過程如下:PrivateSubCommand1_Click()

Command1.Caption==“替換"EndSub2.2對象的屬性、事件和方法2.2.3控件的方法方法是特定對象動作的過程,是一個對象對外提供的某些特定動作的接口。事實上,方法是對象本身內(nèi)含的程序段,它可能是函數(shù),可能是過程,但實現(xiàn)功能的步驟和細(xì)節(jié),用戶看不到。用戶只能了解這個對象的功能和用法。按照約定直接去使用它。因為方法是面向?qū)ο蟮?,所以在調(diào)用時一定要用對象,對象方法的調(diào)用格式為:

[對象.]方法[參數(shù)名表]

其中若省略了對象,表示為當(dāng)前對象,一般指窗體。例如:

Form1.Print"2008北京奧運會歡迎您"

此語句用print方法在對象為Form1的窗體上顯示"2008北京奧運會歡迎您"的字符串。2.3

基本控件2.3.1窗體窗體是一個可以包含其他對象的對象。在界面設(shè)計時,把窗體作為一個容器,通過“控件工具箱”往窗體中添加各種控件。用戶根據(jù)需求在窗體上制作出用戶界面,而在程序運行時,窗體就成為用戶與應(yīng)用程序進(jìn)行交互操作的窗口。需要注意的是,很多時候界面設(shè)計時的窗體和所加控件的外觀與程序運行時的外觀是不完全相同的,因為有些控件在運行時是不顯示的,如計時器控件等。窗體的構(gòu)成2.3

基本控件一、窗體的屬性對象表現(xiàn)出來的特征是由對象的各種屬性決定的。對窗體的屬性進(jìn)行設(shè)置可以在界面設(shè)計時通過屬性窗口設(shè)置窗體的各種屬性值,也可以在運行時由代碼段給窗體的屬性賦值來實現(xiàn)。決定窗體特性的屬性在屬性窗口內(nèi)可以查看和設(shè)置。2.3

基本控件下面介紹幾個常用的屬性:(1)Name屬性該屬性用于設(shè)置窗體的名稱,在程序設(shè)計時區(qū)別不同的窗體對象,運行時為只讀。(2)Appearance屬性該屬性值為0時,對象以平面效果顯示;值為1時,對象以3D效果顯示。(3)AutoRedraw屬性值為True時,重畫窗體內(nèi)所有圖形;值為False時,要調(diào)用一個事件過程才能完成重畫工作。(4)BackColor屬性和ForeColor屬性窗體窗口的背景顏色由屬性BackColor確定,窗體窗口的前景色由ForeColor屬性確定。用戶可以在右側(cè)的屬性窗口中找到它們并單擊,出現(xiàn)黑色向下箭頭時,單擊這個箭頭打開調(diào)色板,選擇合適的顏色即可。2.3

基本控件(5)BorderStyle屬性BorderStyle屬性決定窗體的“邊界風(fēng)格”。它的值有4種選擇:0:窗口無邊界1:窗口邊界為單線條,而且運行期間窗口的尺寸是固定的,不能改變大小。2:窗口邊界為雙線條,而且運行期間可以改變窗口的尺寸。3:窗口邊界為雙線條,運行期間不可以改變窗口的尺寸。(6)Caption屬性該屬性的值就是窗口標(biāo)題欄中顯示的內(nèi)容。初學(xué)者一定要把它與Name屬性分開,Name屬性的值是在整個程序設(shè)計中對象唯一的名字,在程序運行中是只讀的,Caption屬性的值是顯示在界面上的用戶看到的文本信息。在程序運行中可以通過代碼設(shè)計進(jìn)行更改。(7)ClipControls屬性該屬性值設(shè)置Paint事件的繪圖方法是重畫整個對象,還是重畫新顯示的區(qū)域。2.3

基本控件(8)ControlBox屬性屬性值為True時,決定窗體左上角有控制菜單;值為False時窗體左上角沒有控制菜單,同時自動將MaxButton與MinButton屬性的值都設(shè)置為False。(9)Enabled屬性該屬性值為True和False。決定對象是否響應(yīng)用戶生成事件。若值為True時響應(yīng),為False時不響應(yīng)。(10)Height、Wide、Left和Top屬性Height、Wide屬性值決定窗體的大小即用于設(shè)置窗體的高度和寬度值,Left、Top屬性值決定窗體的位置即窗體離屏幕左邊與上邊的距離。(11)Font屬性單擊該屬性右側(cè)的按鈕,在彈出的“字體”對話框中設(shè)置窗體上文字的字體、字號和字型等。2.3

基本控件(12)Icon屬性該屬性的值決定窗體圖標(biāo),即返回運行時窗體最小化所顯示的圖標(biāo),單擊Icon屬性右側(cè)的按鈕,在打開的“加載圖片”對話框中選擇圖標(biāo)文件加載圖標(biāo)。(13)MaxButton與MinButton屬性該屬性的值可以是True和False,MaxButton屬性的值決定在窗口上是否有最大化按鈕,MinButton屬性的值決定在窗口上是否有最小化按鈕。(14)Picture屬性該屬性設(shè)置控件中顯示的圖形,單擊屬性窗口中的Picture屬性右側(cè)的按鈕會彈出“加載圖片”對話框,選擇合適的圖像文件,作為窗體背景中要顯示的圖片。2.3

基本控件(15)Visible屬性該屬性值為True時窗體可見,值為False時窗體隱藏不可見。(16)WindowsState屬性該屬性表示窗體執(zhí)行時以什么狀態(tài)顯示,屬性值為0(Normal)時,正常窗口狀態(tài),有窗口邊界;屬性值為1(Minimized)時,最小化狀態(tài),以圖標(biāo)方式顯示;屬性值為2(Maximized)時,最大化狀態(tài),無邊框,充滿整個屏幕。2.3

基本控件二、窗體的事件與方法1、事件VB應(yīng)用程序是建立在事件驅(qū)動基礎(chǔ)上的,不同的對象對應(yīng)不同的事件發(fā)生,事件發(fā)生時執(zhí)行相應(yīng)的代碼段的程序來響應(yīng)該事件。窗體的事件較多,下面主要介紹窗體的常見事件及這些事件激發(fā)響應(yīng)的時間。(1)Click(單擊)事件與DblClick(雙擊)事件Click事件與DblClick事件發(fā)生在單擊和雙擊窗體時,注意操作一定要發(fā)生在窗體上,而不是窗體中的控件上。(2)Load(裝入)與Unload(卸載)事件在啟動應(yīng)用程序,窗體被裝入內(nèi)存中時,就會觸發(fā)Load事件,而Unload事件發(fā)生在從內(nèi)存中卸載該窗體時。2.3

基本控件(3)Activate(活動)事件與Deactivate(非活動的)事件Activate事件發(fā)生在當(dāng)前窗體被激活時,Deactivate事件發(fā)生在非當(dāng)前窗體被激活時。(4)QueryUnload事件關(guān)閉窗體時激發(fā)該事件。(5)Resize事件在啟動窗體或改變窗體尺寸時激發(fā)該事件。2.3

基本控件2、方法方法是VB自身提供的一些特殊的過程,用來完成一定的操作。不同的對象可執(zhí)行不同的操作,因此,對象調(diào)用的方法也有所不同。窗體上常用的方法有:(1)Show方法調(diào)用該方法可以將窗體顯示在屏幕上。調(diào)用格式:[對象名].Show(2)Hide方法調(diào)用該方法可以隱藏窗體,但不會卸載窗體。調(diào)用格式:[對象名].Hide2.3

基本控件(3)Move方法可以將窗體移動到一定的坐標(biāo)位置。調(diào)用格式:[對象名].MoveLeft,Top,Width,HeightPrivateSubForm1_Click'Form1窗體的Click事件過程

Form1.MoveLeft-10,Top+10,Width-10,Height-1'移動窗體EndSub程序運行時,用戶每單擊窗體一次,該窗體就會向屏幕的左邊,下方各移動10Wip,同時將窗體的寬度高度都減少10Wip,窗體隨著用戶的單擊越變越小,而且越來越靠近左下方。2.3

基本控件(4)Cls方法可以清除窗體內(nèi)的文本和圖形。調(diào)用格式:[對象名].Cls(5)Print方法在窗體上顯示文字信息。調(diào)用格式:[對象名].Print圖2-2窗體的運行界面PrivateSubForm_Click()'Form1窗體的Click事件過程Print"2008北京奧運會歡迎您!"

'隱藏窗體Form1EndSub(6)Refresh方法強制全部重繪窗體及控件。調(diào)用格式:[對象名].Refresh2.3

基本控件2.3.2命令按鈕一、命令按鈕的屬性程序運行時,對應(yīng)用程序進(jìn)行交互控制最簡單的方法,就是使用命令按鈕。常用的屬性有:(1)Name屬性該屬性用于設(shè)置命令按鈕的名稱,運行時為只讀。(2)Style屬性此屬性設(shè)置命令按鈕的外觀。它的值有以下兩種選擇。0:Standard按鈕以標(biāo)準(zhǔn)的形式顯示。1:Graphical按鈕以圖形的方式顯示。(3)Caption屬性該屬性主要是在按鈕上顯示文字,告訴用戶該按鈕的功能。2.3

基本控件(4)Enabled屬性該屬性用來控制命令按鈕對象是否可用,值為True時表示該按鈕對象可用,值為False時表示該按鈕對象暫時不可用。(5)Default屬性此屬性將一個命令按鈕設(shè)置為默認(rèn)的“活動按鈕”,它的值為True時表示該按鈕被確定為默認(rèn)的“活動按鈕”,值為False時不是默認(rèn)的“活動按鈕”。(6)Cancel屬性此屬性設(shè)置命令按鈕是否為默認(rèn)的“取消按鈕”,它的值為True時表示該按鈕被確定為默認(rèn)的“取消按鈕”,值為False時不是默認(rèn)的“取消按鈕”。2.3

基本控件二、命令按鈕的事件命令按鈕的事件有Click,MouseDown事件和MouseUp等事件,當(dāng)用鼠標(biāo)單擊命令按鈕,觸發(fā)該按鈕的Click事件時,也將觸發(fā)其他兩個事件。三個事件發(fā)生的順序為MouseDown事件,Click事件和MouseUp事件,命令按鈕最主要的事件是Click事件?!纠?.1】設(shè)計一個程序可以通過命令改變窗體大小。窗口界面如圖:2.3

基本控件代碼編寫如下:PrivateSubCommand1_Click()

Form1.WindowState=vbMinimized‘最小化EndSubPrivateSubCommand2_Click()

Form1.WindowState=vbMaximized‘最大化EndSubPrivateSubCommand3_Click()

Form1.WindowState=Normal‘正常EndSub

PrivateSubCommand4_Click()End‘退出EndSub

2.3

基本控件2.3.3文本框控件一、文本框控件的屬性文本框控件一般用來接收和顯示輸入輸出信息,用于編輯文本。(1)Name屬性此屬性的值就是文本框的名字,文本框沒有Caption屬性。(2)Text屬性Text屬性既可以輸入文本,又可以輸出信息,是文本框控件最為重要的屬性。2.3

基本控件(3)MaxLenght屬性用于設(shè)置文本框中輸入字符串的長度限制。默認(rèn)值為0,表示該文本框中字符串的長度由系統(tǒng)限制。(4)Alignment屬性設(shè)置文本框中文本內(nèi)容的對齊方式。0為左對齊,1為右對齊,2為中間對齊。(5)MultiLine屬性該屬性決定文本框中的內(nèi)容是否可以顯示多行。默認(rèn)值為False。在屬性窗口中找到該屬性,單擊其右側(cè)的下三角按鈕,在下拉列表中選擇True,,程序運行時就可以在界面上的文本框中輸入多行信息。2.3

基本控件(6)FontName屬性FontName屬性設(shè)置字體的類型;FontSize屬性設(shè)置字體的大??;FontItalic屬性設(shè)置字體輸出的形式是否為斜體;FontUnderline屬性是指是否在輸出的文本下加下劃線,值為0時不加下劃線,值為1時加下劃線;FontBold屬性設(shè)置字體是否為粗體。所有這些屬性都是用于設(shè)置有關(guān)文本框輸出時文本的文字樣式的。例如,要求程序運行時文本框內(nèi)輸出的文字為粗體,字號為20,字體類型是宋體,斜體。(7)ScrollBars屬性該屬性設(shè)置文本框是否添加滾動條。它有以下4種選擇。0:不加滾動條。1:只加水平滾動條,此時文本框自動換行功能被取消。2:只加垂直滾動條。3:既加水平滾動條又加垂直滾動條,此時文本框成為一個簡單的編輯器。要注意的是,只有當(dāng)MultiLine屬性為True時,ScrollBars屬性設(shè)置才有效。2.3

基本控件(8)Locked屬性設(shè)置文本框內(nèi)容是否可以編輯。取值為True時,可以滾動顯示文本框中的內(nèi)容,但不能更改;取值為False時,可以滾動顯示并修改文本框中的內(nèi)容。(9)PasswordChar屬性此屬性的值決定程序運行時,用戶從鍵盤上輸入字符后,該文本框中顯示出來的對應(yīng)字符,它的默認(rèn)字符為空字符串。例如,一個文本框Text1,設(shè)置它的PasswordChar屬性值為“*”,程序運行時,不管利用鍵盤給界面上的文本框Text1中輸入任何字符,它都會將輸入的每一個字符在屏幕上顯示為“*”。這一屬性經(jīng)常被用在設(shè)置密碼的情況中,以保證輸入密碼的安全性。2.3

基本控件(10)SelStart、SelLength和SelText屬性在程序運行中,對文本內(nèi)容進(jìn)行選擇操作時,這三個屬性用來標(biāo)識用戶選中的正文。SelStart:選定正文的開始位置,第一個字符的位置是0,依次類推。SelLength:選定的正文長度。SelText:選定的正文內(nèi)容。設(shè)置了SelStart和SelLength屬性后,VB會自動將設(shè)定的正文送入SelText存放,這些屬性一般用于在文本編輯中設(shè)置插入點及范圍,選擇字符串,清除文本等,并且常與剪貼板一起使用,完成文本信息的剪切、拷貝和粘貼等功能。2.3

基本控件【例2.2】設(shè)計一個程序可檢查密碼是否正確,密碼為“1234”。代碼設(shè)計。PrivateSubCommand1_Click()'Command1按鈕的Click事件過程Pass=Text1.Text'將文本框Text1內(nèi)輸入的內(nèi)容賦給變量passIfPass="1234"Then'pass的值與密碼"1234"比較

Label2.Caption="密碼正確!"'相等,顯示正確ElseLabel2.Caption="密碼錯,請重新輸入!"‘不相等,顯示錯誤提示EndIfEndSub2.3

基本控件二、文本框的事件與方法

在文本框所能響應(yīng)的事件中Change、KeyPress、LostFocus和GotFocus是最重要的事件。(1)Change事件當(dāng)用戶在文本框中輸入新的內(nèi)容或當(dāng)程序?qū)⑽谋究虻腡ext屬性設(shè)置新值,從而改變文本框的Text屬性時會引發(fā)該事件。當(dāng)用戶在文本框中輸入一個字符時,就會引發(fā)一次Change事件。例如,用戶在文本框中輸入“hello”一詞時,會引發(fā)5次Change事件。(2)KeyPress事件當(dāng)用戶按下并釋放鍵盤上的一個鍵位時,就會引發(fā)焦點所在控件的KeyPress事件。此時會返回一個KeyAscii參數(shù)到該事件過程中。2.3

基本控件(3)

LostFocus事件此事件是對一個對象失去焦點時發(fā)生,移動(Tab)制表鍵或單擊另一個對象都會發(fā)生LostFocus事件。該事件過程主要是用來對數(shù)據(jù)更新進(jìn)行驗證和確認(rèn)。(4)GotFocus事件該事件與LostFocus事件相反,當(dāng)一個對象獲得焦點時發(fā)生。2.3

基本控件文本框中最有用的方法是SetFocus方法,該方法是把光標(biāo)移動到指定的文本框中,在MicrosoftWindows環(huán)境下,任何時候都僅有一個窗口為激活狀態(tài),窗體或控件能接收鼠標(biāo)單擊或鍵盤輸入。當(dāng)對象的標(biāo)題或標(biāo)題欄被突出(藍(lán)色)顯示時,說明該對象“具有焦點”。焦點能由用戶或應(yīng)用程序設(shè)置。利用文本檔的SetFocus方法可以設(shè)置焦點。其形式如下:

[對象.]SetFocus此方法還可以用于CheckBox、CommandButton和ListBox等控件。2.3

基本控件2.3.4標(biāo)簽控件標(biāo)簽控件在工具箱中的圖標(biāo)為,主要用來顯示文本信息。文本框控件沒有Caption屬性,后面章節(jié)要學(xué)到的列表框,組合框等控件也沒有此屬性。常用標(biāo)簽來對以上這些控件進(jìn)行標(biāo)注,還可以用標(biāo)簽為窗體添加說明文字,向用戶提供操作提示信息等。2.3

基本控件一、標(biāo)簽的屬性與事件標(biāo)簽的屬性中涉及更多的是標(biāo)簽的外觀樣式。(1)Name屬性用于設(shè)置標(biāo)簽的名稱。(2)Caption屬性用于設(shè)置標(biāo)簽中所要顯示的內(nèi)容。(3)BorderStyle屬性用于設(shè)置標(biāo)簽有無邊框。值為0時標(biāo)簽沒有邊框,值為1時標(biāo)簽有單線邊框。(4)AutoSize屬性設(shè)置標(biāo)簽控件能否自動調(diào)整大小來顯示所有的內(nèi)容。值為True時標(biāo)簽控件大小隨文本的改變而改變;默認(rèn)值為False,標(biāo)簽控件大小不會隨文本的改變而改變。2.3

基本控件(5)Alignment屬性用于設(shè)置定在標(biāo)簽框上顯示信息的位置,取值為0時為左邊對齊,取值為1時為右邊對齊。(6)WordWrap屬性用于設(shè)置標(biāo)簽中所顯示的內(nèi)容是否能夠自動換行。(7)Top屬性用于設(shè)置標(biāo)簽與窗體上邊界之間的距離。(8)Left屬性用于設(shè)置標(biāo)簽與窗體左邊界之間的距離。(9)BackColor屬性用于設(shè)置標(biāo)簽的背景色。(10)ForeColor屬性用于設(shè)置標(biāo)簽的前景色。2.3

基本控件2.標(biāo)簽事件標(biāo)簽控件可以有Click事件,DblClick事件和Change等事件,但它的主要作用是顯示文本,一般不需要編寫事件過程代碼。2.4綜合應(yīng)用VB程序設(shè)計主要有4個基本步驟:界面設(shè)計,屬性設(shè)置,事件代碼編寫和調(diào)試運行程序?!纠?.3】求兩數(shù)之和。(1)界面設(shè)計。設(shè)計界面如下圖所示。窗體上有2個標(biāo)簽,3個文本框和1個命令按鈕。其中,兩個文本框接收數(shù)據(jù),一個文本框顯示求和結(jié)果。2.4綜合應(yīng)用(3)代碼編寫PrivateSubCommand1_ClickDimaAs

Integer,

bAsIntegera=Text1.Textb=Text2.TextText3.Text=a+bEndSub(4)調(diào)試運行對象名稱屬性值Label1Caption+Label2Caption=Text1Text空值Text2Text空值Text3Text空值Command1Caption求和(2)屬性設(shè)置本章小結(jié)通過本章的講述可以看到,窗體,命令按鈕,文本框和標(biāo)簽這些VB最基本的對象的屬性,事件和方法有其共同的地方,又各自有其特殊的地方。窗體常常是其他控件的載體,它有單擊Click,裝入Load和卸載Unload事件;文本框主要是用Text屬性來完成信息的輸入輸出的;標(biāo)簽主要用來顯示信息,觸發(fā)事件用的少;命令按鈕最常用的事件是單擊事件,通過它可以實現(xiàn)與程序的交互操作。第三章VB語言基礎(chǔ)本章主要內(nèi)容

本章主要介紹VB的基礎(chǔ)知識、基本語法規(guī)則,包括字符集、數(shù)據(jù)類型、常量、變量、命名規(guī)則、運算符、表達(dá)式以及常用內(nèi)部函數(shù)。第一節(jié)數(shù)據(jù)類型一、基本數(shù)據(jù)類型計算機語言都規(guī)定了各自的數(shù)據(jù)類型,VB也不例外。其實,在一個最簡單的程序中數(shù)據(jù)類型是可以不作規(guī)定的,但為了程序的嚴(yán)謹(jǐn)和便于查看,正確的定義數(shù)據(jù)類型是必要的。定義數(shù)據(jù)的另一個原因是,不同的數(shù)據(jù)占用不同的內(nèi)存數(shù)量,定義合適的數(shù)據(jù)類型將有節(jié)省內(nèi)存空間的作用。

VB的數(shù)據(jù)類型比較豐富,主要可以分為兩大類:基本數(shù)據(jù)類型和用戶自定義類型。數(shù)據(jù)類型關(guān)鍵字類型符前綴字節(jié)范圍數(shù)值型整型Integer%int2-32768~32767長整型Long&lng4-2147483648~2147483647單精度型Single!sng4負(fù)數(shù):-3.402823E38~1.401298E-45正數(shù):1.401298E-45~3.402823E38雙精度型Double#dbl8負(fù)數(shù):-1.79769313486232D308~-4.94065645841247D-324正數(shù):4.94065645841247D-324~1.79769313486232D308貨幣型Currency@cur8-922337203685477.5808~922337203685477.5807字節(jié)型Byte無byt10~255日期型Date(time)無dtm801,01,100~12,31,9999(00:00:00~23:59:59)邏輯型Boolean無bln2True與False字符型String

$str0~65535個字符對象型Object無obj4任何對象引用變體型Variant無vnt上述有效范圍之一VB的數(shù)據(jù)類型表第一節(jié)數(shù)據(jù)類型(一)數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)分為整型和實型兩類。整型數(shù)據(jù)分為整數(shù)和長整數(shù),實型數(shù)據(jù)分為單精度和雙精度數(shù)據(jù)。有時把貨幣型和字節(jié)型數(shù)據(jù)也歸為數(shù)值型數(shù)據(jù)。1.整型(Interger)整數(shù)是不帶小數(shù)點,范圍在-32768~32767之間,在機器內(nèi)使用2個字節(jié)存儲的整數(shù)。在VB中數(shù)尾常加“%”表示整型數(shù)據(jù),也可省略。如-34,78%。2.長整型(Long)長整數(shù)可以超過整數(shù)-32768~32767范圍,在機器內(nèi)用4個字節(jié)存儲。例如:369、-369、+369均表示整數(shù),而369.0就不是整數(shù);-9993977、12345678均表示長整數(shù),而123,456則是非法數(shù)。整型數(shù)的運算速度快、精確,且占用存儲空間較小,但表示數(shù)的范圍也較小。第一節(jié)數(shù)據(jù)類型3.單精度數(shù)(Single)單精度數(shù)是帶小數(shù)點的實數(shù),有效數(shù)字為7位,在機器內(nèi)用4個字節(jié)存儲。單精度數(shù)有多種表示形式:±n.n(小數(shù)形式)、±nE±m(xù)(指數(shù)形式)、±n.nE±m(xù)(指數(shù)形式)。例如:123.45、0.12345E+3、123.45!都是同值的單精度數(shù)。如果某個數(shù)的有效數(shù)字位數(shù)超過7位,當(dāng)把它定義為單精度變量時,超出的部分會自動四舍五入。4.雙精度數(shù)(Double)雙精度數(shù)也是帶小數(shù)點的實數(shù),有效數(shù)字為15或16位,在機器內(nèi)用8個字節(jié)存儲。通常以指數(shù)形式表示,指數(shù)部分用“D”或“d”表示。在VB中數(shù)尾常加“#”表示雙精度數(shù)據(jù),也可省略。如-374.778#,5.678D+2,-2.67e+3#。第一節(jié)數(shù)據(jù)類型5.貨幣型數(shù)據(jù)(Currency)貨幣型數(shù)據(jù)是為是一種專門為處理貨幣而設(shè)計的數(shù)據(jù)類型,是一種特殊的小數(shù)。它的精度要求較高,用8個字節(jié)存儲,保留小數(shù)點右邊4位和小數(shù)點左邊15位,如果數(shù)據(jù)定義為貨幣型,且其小數(shù)點后超過4位,那么超過的部分自動四舍五入。在VB中數(shù)尾常加“@”表示貨幣型數(shù)據(jù)。如3.4@,565@。6.字節(jié)型數(shù)據(jù)(Byte)字節(jié)型數(shù)據(jù)用來存儲二進(jìn)制數(shù),是范圍在0~255之間的無符號整數(shù),不能表示負(fù)數(shù),在機器內(nèi)用一個字節(jié)存儲。Byte是從0-255的無符號類型。第一節(jié)數(shù)據(jù)類型(二)日期型數(shù)據(jù)(Date)日期型數(shù)據(jù)是為表示日期設(shè)置的,在機器內(nèi)用8個字節(jié)存儲。表示方法是以“#”括起來的字面上被認(rèn)為是日期和時間的字符,例如:#04/10/2008#、#2004-08-10#、#September1,2004#、#2004-9-1013:30:15#。(三)邏輯型數(shù)據(jù)(Boolean)邏輯型數(shù)據(jù)是用來表示邏輯判斷結(jié)果的,只有真(True)和假(False)兩個值,在機器內(nèi)用2個字節(jié)存儲。邏輯數(shù)據(jù)轉(zhuǎn)換成整型數(shù)據(jù)時,真轉(zhuǎn)換為-1,假轉(zhuǎn)換為0;其他類型數(shù)據(jù)轉(zhuǎn)換為邏輯數(shù)據(jù)時,非0數(shù)轉(zhuǎn)換為真,0轉(zhuǎn)換為假。第一節(jié)數(shù)據(jù)類型(四)字符型數(shù)據(jù)字符型數(shù)據(jù)是用雙引號括起來的一串字符,用來定義一個計算機字符組成的序列。例如:“VisualBasic”、“贛南師院”、“123.456”、“everyone”、“”(空字符串)。注意:“”表示空字符串,而“”表示的是有一個空格的字符串;如字符串中本身含有雙引號,則用兩個連續(xù)的雙引號表示。例:表示字符串計算機”ABC,正確的表示形式為:“計算機”、”ABC”(五)對象型數(shù)據(jù)(Object)對象型數(shù)據(jù)主要以變量形式存在,可以引用應(yīng)用程序中或某些其他應(yīng)用程序中的對象。例如:DimobjDbAsObjectSetobjDb=OpenDatabase("c:\Vb6\student.mdb")第一節(jié)數(shù)據(jù)類型(六)變體型數(shù)據(jù)(Variant)變體型是一種通用的,可變的數(shù)據(jù)類型,它可以表示以上任何一種數(shù)據(jù)類型。它是聲明變量時的默認(rèn)類型。Variant數(shù)據(jù)類型能夠存儲所有系統(tǒng)定義類型的數(shù)據(jù)。假設(shè)定義a為變體型變量,在變量a中可以存放任何類型的數(shù)據(jù),例如:

a=“-BASIC”--‘存放一個字符串

a=10-‘存放一個整數(shù)

a=20.5-‘存放一個實數(shù)

a=#08/15/2003#‘存放一個日期型數(shù)據(jù)第一節(jié)數(shù)據(jù)類型二、自定義數(shù)據(jù)類型

VB不僅提供了系統(tǒng)定義的以上基本數(shù)據(jù)類型,也允許用戶自己定義數(shù)據(jù)類型,它由若干個基本數(shù)據(jù)類型組成。自定義類型必須通過Type語句來聲明。格式:

Type數(shù)據(jù)類型名元素名As類型名元素名As類型名元素名As類型名

…EndType第一節(jié)數(shù)據(jù)類型例如:對于一個學(xué)生的“學(xué)號”、“姓名”、“性別”、“年齡”、“入學(xué)成績”等數(shù)據(jù),為了處理數(shù)據(jù)的方便,常常需要把這些數(shù)據(jù)定義成一個新的數(shù)據(jù)類型(如Student類型)。

TypeStudent

XhAsSting

XmAsString*10‘長度為10

XbAsString

NlAsIntegerScoreAsSingle

EndType第二節(jié)常量與變量在VB程序中,不同類型的數(shù)據(jù)既可以以常量的形式出現(xiàn),也可以以變量的形式出現(xiàn)。常量:在程序運行過程中值始終保持不變的量;變量:在程序運行過程中其值可以改變的量。第二節(jié)常量與變量一、常量程序運行過程中,其值始終不變的量稱為常量。在VB中常量有直接常量和符號常量兩類。

(一)直接常量直接常量是在程序代碼中,以明顯的方式給出的數(shù)據(jù),可直接反映其數(shù)據(jù)類型;也可在常數(shù)值后緊跟類型符表明常數(shù)的數(shù)據(jù)類型。例如:字符串常量:“vb”、“9823”

數(shù)值常量:123、332&、11.35、1.23E3

邏輯常量:True、False

日期常量:#03/22/2008##10:12:30#

在VB中還可以使用八進(jìn)制和十六進(jìn)制形式表示直接常量。八進(jìn)制數(shù)以&O打頭,十六進(jìn)制數(shù)已&H打頭,如&O67,&H9AB4等。第二節(jié)常量與變量

(二)符號常量符號常量又分為兩種:系統(tǒng)內(nèi)部定義常量和用戶定義常量。

1.系統(tǒng)內(nèi)部定義常量內(nèi)部或系統(tǒng)定義的常量是VB和控件提供的。這些常量可與應(yīng)用程序的對象、方法和屬性一起使用,在代碼中可以直接使用它們,如:

Text1.ForeColor=vbRed2.用戶定義常量有時用戶需要創(chuàng)建自己的符號常量。用戶定義常量使用Const語句來給常量分配名字、值和類型。語法為:

[Public|Private]Const<常量名>[As<數(shù)據(jù)類型>]=<表達(dá)式>…

其中,<表達(dá)式>由數(shù)值常量、字符串等常量及運算符組成,可以包含前面定義過的常量,但不能使用函數(shù)調(diào)用。第二節(jié)常量與變量例如,以下都是正確的用戶定義常量:

ConstPI=3.14159265358979PublicConstAMaxAsInteger=9ConstYDate=#4/30/2008#

二、變量在程序運行過程中,其值可以改變的量稱為變量。變量由名字和數(shù)據(jù)類型確定。

(一)聲明變量用語句聲明,格式如下:

Dim/Public/Private/Static變量名[As數(shù)據(jù)類型][,變量名[As數(shù)據(jù)類型]…]第二節(jié)常量與變量變量可被聲明為在不同范圍內(nèi)使用,如下所示:(1)普通局部變量:聲明此類變量的格式如下:Dim變量名[As數(shù)據(jù)類型名](2)靜態(tài)局部變量:聲明此類變量的格式如下:Static變量名[As數(shù)據(jù)類型名](3)模塊變量:一般在聲明此類變量時,使用如下格式:Private變量名[As數(shù)據(jù)類型名](4)全局變量:一般在聲明此類變量時,使用如下格式:Public變量名[As數(shù)據(jù)類型名]第二節(jié)常量與變量

(二)變量賦值在聲明一個變量后,要先給變量賦上一個合適的值才能夠使用。給變量賦值的格式如下:

變量名=表達(dá)式可以使用一個表達(dá)式的數(shù)值來給某個變量賦值。一個普通的常量、變量均屬于簡單的表達(dá)式。例如,給一個變量X,可以使用如下幾種表達(dá)式進(jìn)行賦值:

X=5X=YX=X+1第二節(jié)常量與變量(三)引用變量在需要使用變量中的值時,必須引用變量的名字來取出其中存放的數(shù)值。例如,將變量Y的值賦給變量X,就必須引用變量Y,將其中的數(shù)值取出賦給X,也即將變量Y的值存放在變量X的內(nèi)存空間中。使用代碼如下:

X=Y第三節(jié)運算符和表達(dá)式運算符是代表VB某種運算功能的符號。VB程序會按運算符的含義和運算規(guī)則執(zhí)行實際的運算操作。由運算符將相關(guān)的常量、變量、函數(shù)等連接起來的式子即為表達(dá)式。

一、運算符

VB程序會按運算符的含義和運算規(guī)則執(zhí)行實際的運算操作。VB中的運算符包括:賦值運算符、算術(shù)運算符、連接運算符、關(guān)系運算符、邏輯運算符。第三節(jié)運算符和表達(dá)式

(一)賦值運算符賦值運算符是用于給變量設(shè)置值,數(shù)組或?qū)ο蟮膶傩再x值的,用“=”表示。格式:Variable=表達(dá)式其中:Variable可以是變量,數(shù)組或?qū)ο蟮膶傩?。表達(dá)式可以是常量,變量或表達(dá)式,但必須有確定的值。例如:

DimaAsString*5a=”China”‘將”China”賦給字符型變量a第三節(jié)運算符和表達(dá)式(二)算術(shù)運算符算術(shù)運算符主要用于算術(shù)運算。VB中有8個算術(shù)運算符,見下表:運算符含義示例結(jié)果優(yōu)先級^乘方5^2251-負(fù)號-7-72*乘3*7213/除2/50.43\整除(直接取整)2\504Mod取模(求余)7Mod215+加4+8126-減2.3-11.36第三節(jié)運算符和表達(dá)式(三)連接運算符連接運算符主要用于兩個字符串的連接,見下表:運算符含義示例結(jié)果&連接兩個字符串“China”&”jiangxi”“Chinajiangxi”+計算和,也可連接字符串“12”+”34”“1234”第三節(jié)運算符和表達(dá)式(四)關(guān)系運算符關(guān)系運算符用來確定兩個表達(dá)式之間的關(guān)系。關(guān)系運算符含義示例結(jié)果=等于“abc”=”ABD”False>大于(13+5)>2True>=大于等于“abc”>=”abd”False<小于“abc”<”abd”True<=小于等于“123”<=”4”True<>不等于“a”<>”A”TrueLike字符串匹配“abcde”Like”*cd*”TrueIs對象引用比較第三節(jié)運算符和表達(dá)式(五)邏輯運算符邏輯運算符主要用于邏輯運算,其操作數(shù)經(jīng)常是關(guān)系表達(dá)式或邏輯型數(shù)據(jù)。運算符含義說明示例結(jié)果優(yōu)先級Not取反操作數(shù)為真時,結(jié)果為假,否則為真Not(3>5)True1And與兩個操作數(shù)都為真時,結(jié)果為真,否則為假(“a”>”b”)And(3<5)False2Or或兩個操作數(shù)之一或全為真時,結(jié)果為真,否則為假(2<>3)Or(“x”>”y”)True3Xor異或兩個操作數(shù)為一真一假時,結(jié)果為真,否則為假(6=7)Xor(7>2)True3Eqv等價兩個操作數(shù)相同時,結(jié)果為真,否則為假(3>5)Eqv(“a”<”b”)False4Imp蘊涵第一操作數(shù)為真,第二操作數(shù)為假時,結(jié)果為假,否則為真(5=5)Imp(10>20)False5第三節(jié)運算符和表達(dá)式二、表達(dá)式由運算符將常量、變量、函數(shù)等連接起來的有意義的式子即為表達(dá)式。(一)表達(dá)式書寫規(guī)則在VB中書寫表達(dá)式時,應(yīng)遵循下列規(guī)則:1.乘號不能省略。2.不能使用方括號或花括號,只能用圓括號。圓括號可以出現(xiàn)多個,但要配對。3.表達(dá)式從左至右在同一基準(zhǔn)上寫,無高低、大小之分。第三節(jié)運算符和表達(dá)式(二)運算符優(yōu)先級當(dāng)一個表達(dá)式中出現(xiàn)多種不同類型的運算符時,不同類型的運算符優(yōu)先級別如下:函數(shù)運算優(yōu)先于括號算術(shù)運算符字符運算符關(guān)系運算符邏輯運算符優(yōu)先于優(yōu)先于優(yōu)先于優(yōu)先于第四節(jié)常用內(nèi)部函數(shù)內(nèi)部函數(shù)是語言系統(tǒng)本身把一些常用的操作事先編寫成一段程序代碼并封裝起來,用戶通過函數(shù)名調(diào)用這段程序并返回一個函數(shù)值。在VB6.0中,有兩類函數(shù):內(nèi)部函數(shù)(標(biāo)準(zhǔn)函數(shù))和自定義函數(shù)。對于VB的內(nèi)部函數(shù),按其功能可分為數(shù)學(xué)函數(shù)、字符串函數(shù)、轉(zhuǎn)換函數(shù)、判斷函數(shù)、日期時間函數(shù)等。第四節(jié)常用內(nèi)部函數(shù)一、數(shù)學(xué)函數(shù):數(shù)學(xué)函數(shù)主要用于各種數(shù)學(xué)運算函數(shù)含義示例結(jié)果Abs返回數(shù)的絕對值A(chǔ)bs(-3.2)3.2Atn返回弧度的反正切值A(chǔ)tn(1).785398163397448Cos返回弧度的余弦值Cos(1).54030230586814Exp返回e的指定次冪Exp(1)2.71828182845905Fix返回數(shù)的整數(shù)部分(直接取整)Fix(-50.6)-50Int返回不大于給定數(shù)的最大整數(shù)Int(-50.6)-51Log返回數(shù)的自然對數(shù)Log(1)0Rnd返回0~1之間的隨機數(shù)Rnd0~1之間的隨機數(shù)Sgn返回數(shù)的符號值Sgn(-2)-1Sin返回弧度的正弦值Sin(1).841470984807897Sqr返回數(shù)的平方根值Sqr(9)3Tan返回弧度的正切值Tan(1)1.5574077246549第四節(jié)常用內(nèi)部函數(shù)二、字符串函數(shù):用于處理字符串信息。若函數(shù)的返回值為字符型數(shù)據(jù),則常在函數(shù)名后加"$"字符。函數(shù)含義示例結(jié)果Instr([N1,]C1,C2[,M])返回C2在C1中首次出現(xiàn)的位置(從N1開始)Instr(4,”xxpxxpXp”,“p”)6*InstrRev(C1,C2[,N1][,M])與Instr類似,只從尾部查找Instr(“ASDFDFDFSDSF”)5*Lcase(C)將C從大寫字母變?yōu)樾懽帜窵CASE(“Hello”)“hello”Left$(C,N)將C中左邊起取N個字符Left$(“World”,2)“Wo”Len(C)返回C的長度Len(“name”)4Ltrim$(C)刪除C左端的空格Ltrim$(“name”)“name”*Replace(C,C1,C2[,N1][,N2][,M])在C中從1或N1開始C2替換C1共N2次Replace(“asabababsadb”,“ab”,“*”,2)“as***sadb”第四節(jié)常用內(nèi)部函數(shù)Right$(C,N)從C中右邊起取N個字符Right$(“World”,2)“1d”Rtrim$(C)刪除C右端的空格Rtrim$(“name”)“name”Space$(N)返回N個空組成的字符串Space$(3)“”StrComp(C1,C2[,M])返回C1,C2比較的結(jié)果,相等時為0,小于時為-1,大于時為1StrComp(“AB”,“ab”)-1String$(N,C)返回N個C中第一個字符組成的字符串String$(2,“xyz”)“xx”*StrReverse(C)將C逆序排列StrReverse(“xyz”)“zyx”Trim(C)刪除C的左右空格Trim(“na”)“na”*Ucase(C)從C中小寫字母改為大寫字母Ucase(“xyz”)“XYZ”第四節(jié)常用內(nèi)部函數(shù)三、轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)主要用于轉(zhuǎn)換。分類型轉(zhuǎn)換函數(shù)和數(shù)制轉(zhuǎn)換函數(shù)兩類。(一)類型轉(zhuǎn)換函數(shù)類型轉(zhuǎn)換函數(shù)主要用來實現(xiàn)不同類型數(shù)據(jù)之間的轉(zhuǎn)換。分為強制類型轉(zhuǎn)換函數(shù),ASCII碼轉(zhuǎn)換函數(shù)和直接類型轉(zhuǎn)換函數(shù)。1.強制類型轉(zhuǎn)換函數(shù):是將一個表達(dá)式的數(shù)據(jù)類型強制轉(zhuǎn)換成要求的數(shù)據(jù)類型。2.ASCII碼轉(zhuǎn)換函數(shù):是用于ASCII碼值和字符之間轉(zhuǎn)換的函數(shù)。函數(shù)功能示例結(jié)果Asc返回字符串首字符的ASCII碼值A(chǔ)sc(“China”)67Chr返回一個值對應(yīng)的ASCII碼字符Chr(100)“d”第四節(jié)常用內(nèi)部函數(shù)3.直接類型轉(zhuǎn)換函數(shù):是實現(xiàn)字符型和數(shù)值型之間類型轉(zhuǎn)換的函數(shù)。函數(shù)功能示例結(jié)果Str將數(shù)值型轉(zhuǎn)換為字符型Str(323.1)“323.1”Val返回包含于字符串之內(nèi)的數(shù)字(忽略非數(shù)字開始的字符,但可識別進(jìn)位制符&O和&H)Val(“3231-56”)Val(“&HFFFF”)3231-1第四節(jié)常用內(nèi)部函數(shù)(二)數(shù)制轉(zhuǎn)換函數(shù)數(shù)制轉(zhuǎn)換函數(shù)是將一個數(shù)值表達(dá)式或字符型表達(dá)式轉(zhuǎn)換為八進(jìn)制或十六進(jìn)制數(shù)值的函數(shù)。四、判斷函數(shù)判斷函數(shù)主要用于判斷,其結(jié)果必為邏輯型數(shù)據(jù)。函數(shù)功能示例結(jié)果IsDate(表達(dá)式)判斷表達(dá)式是否為日期型IsDate(#1985-3-21#)TrueIsEmpty(變量)判斷變量是否被初始化IsEmpty(Null)FalseIsNumeric(表達(dá)式)判斷表達(dá)式是否為數(shù)值型IsNumeric(45.23)TrueIif(表達(dá)式,N1,N2)判斷表達(dá)式的真假,如為真,返回N1的值,否則返回N2的值Iif(X>=60,“合格”,“不合格”)取決于X的值,X>=60時,返回“合格”,否則返回”不合格”第四節(jié)常用內(nèi)部函數(shù)五、日期和時間函數(shù)日期函數(shù)用于進(jìn)行日期和時間的處理。函數(shù)名功能實例結(jié)果Date[()]返回系統(tǒng)日期Date$()2008-4-28Day(C|N)返回日期代號(1~31)Day(“08,04,28”)28Hour(C|N)返回小時(0~24)Hour(#1:12:20PM#)13(下午)Minute(C|N)返回分鐘(0~59)Minute(#1:12:20PM#)12Month(C|N)返回月份(1~12)Month(“08,04,28”)4Second(C|N)返回秒(0~59)Second(#1:12:20PM#)20Now()返回系統(tǒng)日期和時間Now2008/4/2810:40:01PMTime[()]返回系統(tǒng)時間Time10:40:01PMWeekDay(C|N)返回星期數(shù)(1~7)星期日為1,星期一為2WeekDay(“08,04,28”)2Year(C|N)返回年代號(1753~2078)Year(365)返回相對于1899/12/30后365天的年代號1900年第四節(jié)常用內(nèi)部函數(shù)六、其他函數(shù)(一)格式輸出函數(shù)Format()(二)Shell()函數(shù)(三)Dir[(路徑[,屬性])]第五節(jié)編碼規(guī)則一、VB的語言元素(一)字符集VB的字符集包括:數(shù)字,英文字母和特殊符號。數(shù)字

:0—9英文字母:26個英文字母的大小寫

a—z和

A—Z特殊字符:!#$%&@^'()*+,-./\?<=>[]_{}︱~:;〞space注:在代碼窗口輸入程序時,除漢字外,其余符號不能以全角或中文方式輸入,而只能以英文方式鍵入作為語言成分的字符。第五節(jié)編碼規(guī)則(二)詞匯集詞匯符號是程序設(shè)計語言中具有獨立意義的最基本結(jié)構(gòu)。詞匯符號包括:運算符、界符、關(guān)鍵字、標(biāo)識符、各類型常數(shù)。1.運算符和界符算術(shù)運算符:

+

-

*

/

\

MOD

^字符運算符:

&

+比較運算符:

>

>=

<

<=

=

<>邏輯運算符:

NOT

AND

OR

XOR

EQV

IMP其它界符

:!#

$%

@(

)

,

.

'

?

[

]_{

}︱~

:;〞space2.關(guān)鍵字又稱保留字,是VB保留下來的作為程序中有固定含義的標(biāo)識符3.標(biāo)識符標(biāo)識符是程序員為變量、常量、數(shù)據(jù)類型、過程、函數(shù)、類等定義的名字。利用標(biāo)識符可以完成對它們的引用。第五節(jié)編碼規(guī)則二、編碼規(guī)則(一)VB代碼書寫規(guī)則1.程序中不區(qū)分字母的大小寫,Ab

與AB等效;2.系統(tǒng)對用戶程序代碼進(jìn)行自動轉(zhuǎn)換:對于VB中的關(guān)鍵字,首字母被轉(zhuǎn)換成大寫,其余轉(zhuǎn)換成小寫若關(guān)鍵字由多個英文單詞組成,則將每個單詞的首字母轉(zhuǎn)換成大寫對于用戶定義的變量、過程名,以第一次定義的為準(zhǔn),以后輸入的自動轉(zhuǎn)換成首次定義的形式第五節(jié)編碼規(guī)則(二)語句書寫規(guī)則1.在同一行上可以書寫多行語句,語句間用冒號(:)分隔2.單行語句可以分多行書寫,在本行后加續(xù)行符:空格和下劃線

3.一行允許多達(dá)255個字符第六節(jié)綜合應(yīng)用例3.1使用數(shù)學(xué)函數(shù)的事例。編寫的窗體click事件過程代碼如下:PrivateSubform_click()x=-123y=456.789a=Abs(x)-Sgn(x)*xb=Int(y/100)'求百位數(shù)

c=y-Int(y/100)*100'剔除百位數(shù)

d=Int(y*10+0.5)/10'舍入到小數(shù)后第一位

Printa,b,c,dEndSub運行程序后單擊窗體,如圖所示:第六節(jié)綜合應(yīng)用例3.2使用字符串函數(shù)示例。先從字符串a(chǎn)中找出某個指定字符(本例為空格),再以此字符為界拆分成兩個字符串。編寫的窗體單擊過程代碼如下:

PrivateSubForm_click()DimaAsString,bAsString,cAsString

DimnAsStringa="visualbasic"n=InStr(a,"")'查找空格位置

b=Left(a,n-1)'取左邊部分

c=Mid(a,n+1)'取右邊部分

PrintbPrintcEndSub第六節(jié)綜合應(yīng)用例3.3使用轉(zhuǎn)換函數(shù)的示例。編寫的窗體click事件過程代碼如下:PrivateSubForm_click()x="123":y=123a=Chr(Asc(x)+5)b=Str(Val(x)+5)c=Val(Str(y)+"5")printaprintbprintcEndSub第六節(jié)綜合應(yīng)用例3.4給定一個兩位正整數(shù)(如36),要求交換個位數(shù)和十位數(shù)的位置,把處理后的數(shù)顯示在窗體上。編寫的窗體單擊事件過程代碼如下:

PrivateSubForm_Click()DimxAsInteger,aAsIntegerDimbAsInteger,cAsIntegerx=36a=Int(x/10)'求十位數(shù)

b=xMod10'求個位數(shù)

c=b*10+a'生成新的數(shù)

Print"處理后的數(shù):";cEndSub本章小結(jié)1.VB的數(shù)據(jù)類型比較豐富,可以分為兩大類:基本數(shù)據(jù)類型和用戶自定義類型。本章詳細(xì)闡述了VB使用的基本數(shù)據(jù)類型。2.在VB程序中,不同類型的數(shù)據(jù)既可以以常量的形式出現(xiàn),也可以以變量的形式出現(xiàn)。還詳細(xì)闡述了變量的作用域,即變量并不是在任何地方都可以使用的,要注意它的有效范圍。3.VB程序會按運算符的含義和運算規(guī)則執(zhí)行實際的運算操作。本結(jié)詳細(xì)闡述了VB使用的常用運算符及表達(dá)式的組成。4.在VB6.0中,有兩類函數(shù):內(nèi)部函數(shù)(標(biāo)準(zhǔn)函數(shù))和自定義函數(shù)。函數(shù)是運算中必不可少的工具,正如數(shù)學(xué)中提到的函數(shù)一樣,在VB6.0中有可以直接使用的內(nèi)部函數(shù),也可以根據(jù)需要自己定義,本章主要學(xué)會內(nèi)部函數(shù)的使用?;仡檾?shù)據(jù)類型1常量與變量2運算符與表達(dá)式3常用內(nèi)部函數(shù)4第四章程序結(jié)構(gòu)程序結(jié)構(gòu)第一節(jié)順序結(jié)構(gòu)第二節(jié)選擇結(jié)構(gòu)第三節(jié)循環(huán)結(jié)構(gòu)本章目錄1、掌握數(shù)據(jù)的輸入輸出,使用順序結(jié)構(gòu)開發(fā)程序;2、使用選擇結(jié)構(gòu)開發(fā)程序;3、使用循環(huán)結(jié)構(gòu)開發(fā)程序。教學(xué)目標(biāo)

選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實現(xiàn)及其應(yīng)用。重點

選擇結(jié)構(gòu)的嵌套及多重循環(huán)結(jié)構(gòu)

難點多用,多練,舉一反三,學(xué)以致用學(xué)習(xí)方法算法的概念為解決一個問題而采取的方法和步驟,就稱為“算法”。方法1:1+2,+3,+4,一直加到100加99次方法2:100+(1+99)+(2+98)+…+(49+51)+50=100+49×100+50加51次對同一個問題,可有不同的解題方法和步驟例:求

2.3算法的特性有窮性:包含有限的操作步驟。確定性:算法中的每一個步驟都應(yīng)當(dāng)是確定的。

有零個或多個輸入:輸入是指在執(zhí)行算法時需要從外界取得必要的信息。有一個或多個輸出:算法的目的是為了求解,“解”就是輸出。

有效性:算法中的每一個步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。1.一個算法應(yīng)該具有以下特點:2.三種基本結(jié)構(gòu)

Bohra和Jacopini提出了以下三種基本結(jié)構(gòu):

順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)用這三種基本結(jié)構(gòu)作為表示一個良好算法的基本單元。第一節(jié)順序結(jié)構(gòu)在VB中,有三種結(jié)構(gòu)可以控制程序的流程,分別是順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。它們是結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu)。順序結(jié)構(gòu)是最簡單的一種程序結(jié)構(gòu),按照語句的書寫順序執(zhí)行的結(jié)構(gòu),只有一個入口和一個出口。ABC一、幾種基本語句

一.賦值語句形式:[LET]變量名=表達(dá)式作用:將表達(dá)式的值賦值給變量名.

一般用于給變量賦值或?qū)丶O(shè)定屬性值.

例:sRate!=0.1Text1.Text="歡迎使用VisualBasic6.0”

當(dāng)表達(dá)式的類型與變量的類型不一致時,強制轉(zhuǎn)換成左邊的精度

iA%=10/3iA中的結(jié)果為3

注意:雖然賦值號與關(guān)系運算符等于號都用“=”表示,VB系統(tǒng)會根據(jù)所處的位置自動判斷是何種意義的符號。下面看幾個例子:DimAl,A2,A3,A4A1="您好,"'給AI賦常量A2=Al'給A2賦變量的值A(chǔ)3=A2&"同志"'給A3賦表達(dá)式的值,“您好,同志”Al=10:A2=8:A3=-4A4=Sqr(A2*A2-4*Al*A3)'給A4賦函數(shù)值'給文本框Text1的文本屬性賦值,在文本框中顯示字符串Text1.text="您好!"‘給按鈕Command1的顯示屬性賦值,使其不可見Command1.Visible=FalseDimstrNameAsString*40,strS1AsString*40相應(yīng)的語句如下:strName=

InputBox(“請輸入你的姓名”+vbCrLf+“然后單擊確定”,“輸入框”)也可以:strS1=“請輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=

InputBox(strS1,“輸入框”,,100,100)當(dāng)鍵盤輸入“王曉明”后,變量

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論