VB程序設(shè)計(jì)課件_第1頁(yè)
VB程序設(shè)計(jì)課件_第2頁(yè)
VB程序設(shè)計(jì)課件_第3頁(yè)
VB程序設(shè)計(jì)課件_第4頁(yè)
VB程序設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩285頁(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章VisualBasic程序開(kāi)發(fā)環(huán)境

第2頁(yè)1.1VB簡(jiǎn)介1.2VB的啟動(dòng)與退出1.3VB集成開(kāi)發(fā)環(huán)境第3頁(yè)1.1VB簡(jiǎn)介

VisualBasic發(fā)展歷史

VisualBasic語(yǔ)言特點(diǎn)

提供可視化編程工具面向?qū)ο蟮某绦蛟O(shè)計(jì)思想事件驅(qū)動(dòng)的編程機(jī)制結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言強(qiáng)大的數(shù)據(jù)庫(kù)功能網(wǎng)絡(luò)功能第4頁(yè)1.2VB的啟動(dòng)與退出

1.VB的啟動(dòng)2.VB的運(yùn)行方式:

VB編程時(shí),同時(shí)解釋生成偽代碼,執(zhí)行時(shí)經(jīng)解釋變成目標(biāo)碼,生成EXE文件,即可脫離VB環(huán)境直接在Windows下運(yùn)行。3.VB的退出第5頁(yè)1.3VB集成開(kāi)發(fā)環(huán)境

主窗口窗體窗口(Form)工程資源管理器(ProjectExplorer)屬性(Properties)窗口工具箱(ToolBox)獲取幫助第6頁(yè)

第7頁(yè)

第8頁(yè)

第9頁(yè)

第2章創(chuàng)建簡(jiǎn)單的VB應(yīng)用程序

第11頁(yè)2.1簡(jiǎn)單VB應(yīng)用程序的創(chuàng)建過(guò)程2.2對(duì)象的建立和編輯2.3對(duì)象的屬性、事件和方法2.4編寫代碼2.5程序的保存、裝入和運(yùn)行第12頁(yè)2.1簡(jiǎn)單VB應(yīng)用程序的創(chuàng)建過(guò)程簡(jiǎn)單加法器設(shè)計(jì)實(shí)例編程步驟第13頁(yè)簡(jiǎn)單加法器設(shè)計(jì)實(shí)例簡(jiǎn)單加法器可執(zhí)行文件簡(jiǎn)單加法器源程序第14頁(yè)編程步驟

創(chuàng)建VisualBasic應(yīng)用程序需要:⑴

創(chuàng)建用戶界面⑵

設(shè)置用戶界面屬性⑶

編寫事件驅(qū)動(dòng)代碼

運(yùn)行程序方法

第15頁(yè)2.2對(duì)象的建立和編輯

控件:工具箱中每一個(gè)圖標(biāo)就代表了一個(gè)控件。例如:文本框、標(biāo)簽框、命令按鈕等。對(duì)象:VB中控件和窗體統(tǒng)稱為對(duì)象。

第16頁(yè)對(duì)象的建立

對(duì)象的建立有兩種方法:①單擊工具箱中控件,在窗口的適當(dāng)位置拖動(dòng)鼠標(biāo)。②雙擊工具箱中控件。對(duì)象建立后,可以移動(dòng)、復(fù)制、刪除、改變大小。第17頁(yè)對(duì)象的編輯

1.對(duì)象的移動(dòng)

2.對(duì)象的縮放

3.對(duì)象的復(fù)制與刪除

4.成組選擇

5.控件數(shù)組

6.使用網(wǎng)格

7.控件格式化

8.對(duì)象的命名

第18頁(yè)2.3對(duì)象的屬性、事件和方法

在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,“對(duì)象”是系統(tǒng)中的基本運(yùn)行實(shí)體。建立一個(gè)對(duì)象后,其操作是通過(guò)與該對(duì)象有關(guān)的屬性、事件和方法來(lái)描述的。屬性、事件和方法也稱為對(duì)象的三要素。

第19頁(yè)對(duì)象的屬性

1.

對(duì)象的屬性屬性是一個(gè)對(duì)象的特征,不同的對(duì)象有不同的屬性。2.屬性的設(shè)置

(1)可以通過(guò)屬性窗口設(shè)置對(duì)象屬性(2)可以在程序中用程序語(yǔ)句設(shè)置。格式:對(duì)象.屬性=屬性值例如:Text1.text=“VisualBasic程序設(shè)計(jì)”第20頁(yè)對(duì)象的事件

1.事件(Event)事件是由系統(tǒng)事先設(shè)計(jì)好的,能夠被某一對(duì)象識(shí)別的動(dòng)作。如單擊(Click)、雙擊(DblClick)、鍵盤按下(KeyPress)、載入窗體(Load)、移動(dòng)鼠標(biāo)(MouseMove)等。2.事件過(guò)程(EventProcedure)

是VB響應(yīng)某個(gè)事件后,所執(zhí)行的一段程序代碼。格式:

PrivateSub對(duì)象名_事件([參數(shù)列表])……事件響應(yīng)程序代碼……EndSub例如:“簡(jiǎn)單加法器”設(shè)計(jì)實(shí)例中,在運(yùn)行程序時(shí),若用戶單擊命令按鈕ADD時(shí),發(fā)生了鼠標(biāo)單擊(Click)事件。第21頁(yè)對(duì)象的方法3.方法(Method)是特殊的過(guò)程和函數(shù),是特定對(duì)象的一部分。 格式:對(duì)象名.方法[參數(shù)列表]例如:Print方法

Form1.Print"您好?。?!"Printer.Print"您好?。?!"

Print"您好!?。?

第22頁(yè)2.4編寫代碼程序代碼窗口編寫過(guò)程代碼代碼編輯器第23頁(yè)2.5程序的保存、裝入和運(yùn)行1.保存程序保存窗體文件

保存工程文件

2.程序的裝入

3.程序的運(yùn)行

解釋運(yùn)行

處理程序中的錯(cuò)誤

調(diào)試程序

生成可執(zhí)行文件

第3章窗體第25頁(yè)3.1對(duì)象的基本屬性3.2幾個(gè)常用控件3.3窗體的屬性、事件與方法3.4多窗體第26頁(yè)3.1語(yǔ)句和語(yǔ)法規(guī)則1.Name(名稱)屬性該屬性是所有對(duì)象都具有的屬性,它是所創(chuàng)建對(duì)象的名稱。

2.Caption(標(biāo)題)屬性字符型。表示所創(chuàng)建對(duì)象的標(biāo)題,將顯示在對(duì)象上,窗體的標(biāo)題將顯示在窗體的標(biāo)題欄中。3.Height和Width(高度、寬度)屬性用來(lái)設(shè)置和返回控件對(duì)象的高度和寬度,決定控件對(duì)象的大小,4.Top和Left(頂邊距、左邊距)屬性Top和Left屬性決定了控件對(duì)象在其父對(duì)象中的位置。第27頁(yè)5.Enabled(可用)屬性True:允許用戶操作,并對(duì)操作做出響應(yīng)。False:禁止用戶操作,呈暗淡色。例如:Text1.Enabled=False 6.Visible(可見(jiàn))屬性True:程序運(yùn)行時(shí)控件可見(jiàn)。False:程序運(yùn)行時(shí)控件隱藏起來(lái)。例如:Text1.Visible=True7.Font(字體)屬性FontName:設(shè)置字體類型,屬性值為字符型。如:“宋體”、“楷體”。FontSize:設(shè)置字體大小,屬性值為整型。如:28、32。FontBold:設(shè)置字體是否粗體,屬性值為邏輯型。FontItalic:設(shè)置字體是否斜體,屬性值為邏輯型。FontStrikethru:設(shè)置文本是否加刪除線,屬性值為邏輯型。FontUnderline:設(shè)置文本是否加下劃線,屬性值為邏輯型。第28頁(yè)【例3.1】設(shè)計(jì)一個(gè)程序,程序運(yùn)行后在窗體上顯示2個(gè)文本框,文本框中顯示“沈陽(yáng)”二字。第29頁(yè)

8.BackColor(背景色)屬性例如:Form1.BackColor=&HFF00AA 將窗體背景色設(shè)置為紫色9.ForeColor(前景色)屬性

10.BackStyle(背景樣式)屬性

0—Transparent:透明,即不顯示控件背景色。

1—Opaque:不透明,此時(shí)可為控件設(shè)置背景顏色。11.BorderStyle(邊框樣式)屬性 0—None:控件周圍沒(méi)有邊框。1—FixedSingle:控件帶有單邊框。

12.Alignment(對(duì)齊樣式)屬性0—LeftJustify:正文左對(duì)齊。1—RightJustify:正文右對(duì)齊。2—Center:正文居中對(duì)齊。第30頁(yè)【例3.2】設(shè)計(jì)程序,使其在窗體上顯示5個(gè)外觀不同的標(biāo)簽控件。第31頁(yè)

13.AutoSize(自動(dòng)調(diào)整)屬性True:可以自動(dòng)調(diào)整大小。False:保持原設(shè)置時(shí)的大小,正文若太長(zhǎng)將自動(dòng)裁剪。

14.TabIndex屬性TabIndex屬性值決定了對(duì)象的Tab順序,即按Tab鍵時(shí)焦點(diǎn)在各個(gè)控件間移動(dòng)的順序。

15.控件默認(rèn)屬性每個(gè)控件對(duì)象有且只有一個(gè)屬性可以直接由控件名來(lái)代表。例如,可以用Text1=“VisualBasic”來(lái)代替Text1.Text=“VisualBasic”。第32頁(yè)3.2幾個(gè)常用控件

標(biāo)簽文本框命令按鈕第33頁(yè)標(biāo)簽

標(biāo)簽主要用來(lái)顯示文本信息。1.屬性⑴

標(biāo)簽的常用屬性有:Name、Caption、Height、Width、Top、Left、Enabled、Visible、FontName、FontSize、FontBold、FontItalic、FontUnderline、Alignment和Autosize、BorderStyle等。⑵

WordWrap屬性WordWrap屬性控制Caption屬性的內(nèi)容能否自動(dòng)換行,屬性值為邏輯型,默認(rèn)值為False。將AutoSize屬性設(shè)置為True時(shí)WordWrap屬性的設(shè)置才起作用。第34頁(yè)2.事件標(biāo)簽的常用事件有:?jiǎn)螕簦–lick)和雙擊(DblClick)?!纠?.3】設(shè)計(jì)一個(gè)程序,利用2個(gè)標(biāo)簽控件,顯示具有浮雕效果的文字。

第35頁(yè)文本框文本框也稱編輯框,用來(lái)輸入、編輯和顯示文本。1.屬性⑴

文本框的常用屬性有:Name、Height、Width、Top、Left、Enabled、Visible、FontName、FontSize、FontBold、FontItalic、FontUnderline和Alingment等。⑵

Text屬性返回或設(shè)置文本框中的文本信息。其取值為字符串類型,默認(rèn)最大長(zhǎng)度為2048個(gè)字符。⑶

Maxlength屬性用來(lái)設(shè)置文本框中能夠輸入的正文內(nèi)容的最大長(zhǎng)度。其取值為整數(shù)類型,默認(rèn)設(shè)置為0。0:任意長(zhǎng)字符串。非零整數(shù):文本框中可容納的字符數(shù)。第36頁(yè)⑷

MultiLine屬性該屬性返回或設(shè)置文本框中是否可以輸入多行文本。其取值為邏輯型,默認(rèn)設(shè)置為False。True:文本框可以輸入或顯示多行正文,同時(shí)具有文字處理器的自動(dòng)換行功能。False:只能輸入單行文本。⑸

ScrollBars屬性該屬性用來(lái)設(shè)置文本框是否具有滾動(dòng)條,其取值為整數(shù)類型,默認(rèn)設(shè)置為0。0—None:無(wú)滾動(dòng)條。1—Horizontal:具有水平滾動(dòng)條。2—Vertical:具有垂直滾動(dòng)條。3—Both:同時(shí)具有水平和垂直滾動(dòng)條。第37頁(yè)⑹

Locked屬性該屬性設(shè)置文本框在運(yùn)行時(shí)是否可被編輯,其取值為邏輯型,默認(rèn)值為False。False:可以編輯。True:文本框中的文本不可被編輯,此時(shí)文本框相當(dāng)于標(biāo)簽的作用。⑺

PasswordChar屬性該屬性可用于密碼輸入。⑻

SelStart、SelLength和SelText屬性在程序運(yùn)行中,對(duì)文本框內(nèi)容進(jìn)行選擇操作,這三個(gè)屬性返回用戶選中的文本。SelStart:選定的文本的開(kāi)始位置,第一個(gè)字符的位置是0。SelLength:選定的文本長(zhǎng)度。SelText:選定的文本內(nèi)容。第38頁(yè)【例3.4】設(shè)計(jì)程序,當(dāng)單擊窗體時(shí),程序會(huì)自動(dòng)將1個(gè)文本框的前8個(gè)字符顯示到另外1個(gè)文本框中。第39頁(yè)2.事件⑴

Change事件當(dāng)用戶輸入新內(nèi)容或當(dāng)程序?qū)ext屬性設(shè)置新值時(shí)會(huì)觸發(fā)該事件。⑵

LostFocus事件

由于按下制表鍵(Tab)或單擊其它對(duì)象,使當(dāng)前對(duì)象失去焦點(diǎn)時(shí),則引發(fā)該事件。3.方法文本框的常用方法:SetFocus。格式:[對(duì)象名.]SetFocus功能:該方法是把光標(biāo)移到指定文本框中。

第40頁(yè)4.文本框應(yīng)用【例3.5】設(shè)計(jì)評(píng)分系統(tǒng)程序。當(dāng)程序運(yùn)行時(shí),輸入4個(gè)裁判給出的分?jǐn)?shù),單擊“顯示結(jié)果”按鈕顯示出平均分。在輸入分?jǐn)?shù)時(shí),可以按Tab鍵使光標(biāo)從左邊的文本框向右邊的文本框切換。

第41頁(yè)命令按鈕1.屬性⑴基本屬性Name、Height、Width、Top、Left、Enabled、VisibleFontName、FontSize、BackColor ⑵Caption屬性 ⑶Default屬性

True:回車鍵有效。False:回車鍵無(wú)效。默認(rèn)值 ⑷Cancel屬性True:按此按鈕與按Esc鍵的效果相同。False:Esc鍵無(wú)效。默認(rèn)值 ⑸Value屬性

True:命令按鈕被按下。False:命令按鈕未被按下。默認(rèn)值第42頁(yè)⑹

Style屬性 0—Standard:按鈕上不能顯示圖形。 1—Graphical:按鈕上可以顯示圖形,也可以顯示文字。⑺

Picture屬性

用來(lái)設(shè)置命令按鈕上顯示的圖形,條件是Style屬性值為1。顯示的圖形文件可以是.bmp和.ico。⑻ToolTipText屬性

用來(lái)設(shè)置當(dāng)鼠標(biāo)在命令按鈕上停留1秒時(shí),在其下面的小矩形框中顯示提示信息,其取值為字符類型。例如:Command1.ToolTipText="確認(rèn)后,單擊此按鈕"第43頁(yè)2.事件

命令按鈕的主要事件有Click事件,命令按鈕不支持DblClick事件?!纠?.6】編寫單詞測(cè)試器程序。第44頁(yè)【例3.7】編寫設(shè)置密碼程序。程序設(shè)計(jì)者事先在程序中設(shè)定一個(gè)密碼為“Hello”。第45頁(yè)3.3窗體的屬性、事件與方法

窗體的屬性窗體常用方法窗體常用事件第46頁(yè)窗體的屬性1.基本屬性Name、Caption、Font、BackColor、ForeColorHeight、Width、Left、Top【例3.8】用程序改變窗體的背景色和前景色。第47頁(yè)

2.Appearance屬性0:窗體顯示為平面效果。1:窗體顯示為立體效果。3.AutoRedraw屬性True:自動(dòng)重繪該窗體上的所有內(nèi)容。False:不會(huì)自動(dòng)重繪窗體上的內(nèi)容。默認(rèn)值4.ControlBox屬性True:窗體具有控制菜單。默認(rèn)值False:窗體不具有控制菜單。5.Enabled屬性該屬性用于設(shè)置窗體是否能夠?qū)︽I盤或鼠標(biāo)產(chǎn)生的事件作出反應(yīng),默認(rèn)值為True,表示能夠?qū)κ录鞒龇磻?yīng)。第48頁(yè)6.BorderStyle屬性7.MaxButton和MinButton屬性True:表示窗體的“最大化”、“最小化”按鈕有效。默認(rèn)值False:表示相應(yīng)的按鈕無(wú)效。8.Moveable屬性True:表示窗體的位置可以被移動(dòng)

False:表示窗體的位置不可以被移動(dòng)第49頁(yè)9.Picture屬性用于設(shè)置窗體的背景圖片。若在程序代碼中設(shè)置該屬性值,則需要使用LoadPicture函數(shù)。例如:Form1.Picture=LoadPicture(“c:\picture\lake.bmp”)

使用相對(duì)路徑來(lái)加載圖片,即:

Form1.Picture=LoadPicture(“l(fā)ake.bmp”)

當(dāng)參數(shù)為空時(shí),即LoadPicture()時(shí),表示清除圖片。【例3.9】本程序用來(lái)初始化窗體外觀。即當(dāng)窗體沒(méi)有顯示之前,在加載窗體的事件過(guò)程Form_load中用程序?qū)Υ绑w的外觀進(jìn)行設(shè)置。第50頁(yè)10.Visible屬性該屬性用于設(shè)置窗體是否可見(jiàn)。默認(rèn)值為True,表示窗體可見(jiàn)。11.WindowsState屬性用來(lái)指定窗體啟動(dòng)后的初始大小。0:窗體以正常方式顯示。默認(rèn)值1:窗體最小化成圖標(biāo)。2:窗體以全屏方式出現(xiàn)。第51頁(yè)窗體常用方法1.Print方法格式:[對(duì)象名.]Print字符串表達(dá)式功能:用來(lái)在窗體上輸出字符。說(shuō)明:⑴當(dāng)省略對(duì)象名時(shí),默認(rèn)在當(dāng)前窗體中顯示。⑵表達(dá)式在窗體上顯示的位置由窗體的CurrentX和CurrentY屬性決定,在默認(rèn)情況下,從(0,0)開(kāi)始,執(zhí)行完一次Print方法之后,CurrentY自動(dòng)加1。【例3.10】在窗體上輸出文字。第52頁(yè)2.Cls方法格式:[對(duì)象名.]Cls功能:清除在窗體上由Print方法顯示的文本,或由Pset、Line、Circle等畫圖方法所畫出的圖形,且將光標(biāo)移動(dòng)到窗體左上角。說(shuō)明:⑴當(dāng)省略對(duì)象名而只寫Cls時(shí),默認(rèn)清除當(dāng)前窗體上的內(nèi)容。⑵該方法經(jīng)常寫為以下形式:

Cls或Me.Cls '清除當(dāng)前窗體Picture1.Cls '清除圖片框Picture1中的圖片第53頁(yè)3.Move方法格式:[對(duì)象名.]Move<左邊距>[,<上邊距>[,<寬度>[,<高度]]]功能:移動(dòng)窗體,且可同時(shí)改變其大小。說(shuō)明:左邊距、上邊距、寬度、高度均以Twip為單位?!纠?.11】利用程序修改控件位置和大小。

第54頁(yè)窗體常用事件1.Click事件2.DblClick事件雙擊窗體空白區(qū)域或雙擊窗體上的一個(gè)無(wú)效控件時(shí),此事件被觸發(fā)。3.Activate事件和Deactivate事件當(dāng)窗體獲得焦點(diǎn)變成活動(dòng)窗體時(shí),就會(huì)觸發(fā)一個(gè)Activate事件。當(dāng)窗體不再是活動(dòng)窗體時(shí)發(fā)生Deactivate事件。4.Initialize事件當(dāng)應(yīng)用程序創(chuàng)建一個(gè)窗體時(shí),將觸發(fā)Initialize事件。5.Load事件把窗體裝入內(nèi)存工作區(qū)時(shí)發(fā)生Load事件。第55頁(yè)【例3.12】窗體的Load事件舉例。在以下程序中,用Form_Load事件過(guò)程對(duì)窗體的標(biāo)題、大小、背景色、前景色和字體進(jìn)行初始化,在Form_Activate事件過(guò)程中用Print方法顯示。第56頁(yè)6.QueryUnload事件當(dāng)關(guān)閉窗體時(shí),觸發(fā)一個(gè)QueryUnload事件。事件過(guò)程格式:PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)

…EndSub說(shuō)明:

⑴參數(shù)Cancel是一個(gè)整數(shù)。如果該參數(shù)的取值被設(shè)定為一個(gè)非零值,可以阻止該窗體和應(yīng)用程序的關(guān)閉如果取值為0,該窗體將被關(guān)閉⑵UnloadMode參數(shù)返回一個(gè)整數(shù)或一個(gè)常數(shù)該參數(shù)取值可以指明QueryUnload事件的原因。

【例3.13】設(shè)計(jì)一個(gè)關(guān)不掉的窗體程序。第57頁(yè)7.Unload事件Unload事件在QueryUnload事件之后發(fā)生。8.Paint事件在應(yīng)用程序運(yùn)行時(shí),若出現(xiàn)下列情況就會(huì)自動(dòng)產(chǎn)生Paint事件?!ご绑w窗口被最小化成圖標(biāo),然后又恢復(fù)正常顯示狀態(tài)。·原本遮擋著該窗體的窗體被移開(kāi)并使該窗體全部或部分顯露出來(lái)。·該窗體因其他窗體的移動(dòng)而被全部或部分遮擋?!ご绑w的大小改變或移動(dòng)。·使用Refresh方法。

第58頁(yè)3.4多窗體

建立、移除窗體加載窗體顯示窗體隱藏窗體卸載窗體設(shè)計(jì)多重窗體程序應(yīng)該注意的問(wèn)題

Submain過(guò)程第59頁(yè)建立、移除窗體.新建一個(gè)VB工程時(shí),工程中只有一個(gè)窗體,默認(rèn)名.稱為Form1.添加新窗體方法.添加現(xiàn)存窗體方法.移除窗體方法一般調(diào)用一個(gè)窗體要經(jīng)歷5個(gè)過(guò)程:加載—顯示—使用—隱藏—卸載。第60頁(yè)加載窗體Load方法只是把窗體加載到內(nèi)存里,并不顯示。格式:Load[對(duì)象名]例如:LoadForm2第61頁(yè)顯示窗體Show方法顯示窗體格式:[對(duì)象名].Show 或[對(duì)象名].show0 '顯示為無(wú)模式窗體[對(duì)象名].Visible=True '顯示為無(wú)模式窗體[對(duì)象名].Show1 '顯示為模式窗體說(shuō)明:顯示的窗體分為無(wú)模式窗體和模式窗體。第62頁(yè)隱藏窗體Hide方法隱藏窗體格式:[對(duì)象名].Hide或[對(duì)象名].Visible=False說(shuō)明:使用Hide方法只能隱藏窗體,不能將窗體卸載。如果調(diào)用Hide方法時(shí)該窗體還沒(méi)有加載,Hide方法會(huì)自動(dòng)加載該窗體但并不予以顯示。【例3.14】用Hide方法和Show方法,實(shí)現(xiàn)兩個(gè)窗體的交替顯示。第63頁(yè)卸載窗體Unload方法卸載窗體格式:Unload[對(duì)象名]功能:隱藏窗體同時(shí)將窗體從內(nèi)存中卸載。【例3.15】用Show方法和Unload方法,實(shí)現(xiàn)用主窗體Form1調(diào)用其它2個(gè)窗體的功能,其中Form3被顯示為模式窗體。第64頁(yè)設(shè)計(jì)多重窗體程序時(shí)應(yīng)該注意的問(wèn)題1.過(guò)多的使用窗體,會(huì)降低程序的運(yùn)行效率。2.應(yīng)及時(shí)卸載不再使用的窗體,以釋放其所占的資源。3.在程序代碼中,要操作其他窗體的控件時(shí),應(yīng)在控件名前寫明該控件所在的窗體的名稱。例如:Form2.Text1.Text="多重窗體"。4.關(guān)鍵字“Me”代表代碼所在的窗體,例如:在窗體模塊Form1的程序代碼中,要卸載Form1:UnloadForm1或UnloadMe。第65頁(yè)SubMain過(guò)程SubMain(啟動(dòng)過(guò)程)是在顯示多個(gè)窗體之前,執(zhí)行的一個(gè)特定的過(guò)程。SubMain過(guò)程建立方法。SubMain過(guò)程的特點(diǎn)如下:·每個(gè)工程中只能有一個(gè)SubMain過(guò)程。·SubMain過(guò)程可以被設(shè)置為工程的啟動(dòng)對(duì)象?!ubMain過(guò)程只能在標(biāo)準(zhǔn)模塊中定義。第4章VB程序設(shè)計(jì)基礎(chǔ)第67頁(yè)4.1語(yǔ)句和語(yǔ)法規(guī)則4.2數(shù)據(jù)類型4.3常量與變量4.4常用內(nèi)部函數(shù)4.5運(yùn)算符和表達(dá)式第68頁(yè)4.1語(yǔ)句和語(yǔ)法規(guī)則

關(guān)鍵字和標(biāo)識(shí)符關(guān)鍵字:又稱為保留字,是VisualBasic系統(tǒng)定義的、有特定意義的詞匯.標(biāo)識(shí)符:自定義的命名稱為標(biāo)識(shí)符。VisualBasic中標(biāo)識(shí)符的命名規(guī)則:⑴必須以字母開(kāi)頭;⑵只能由字母、數(shù)字和下劃線組成,不能直接使用VisualBasic的關(guān)鍵字;⑶不得超過(guò)255個(gè)字符,控件、窗體和模塊的名字不能超過(guò)40個(gè)字符;⑷在標(biāo)識(shí)符的有效范圍內(nèi)必須是唯一的。⑸VisualBasic允許使用漢字作為標(biāo)識(shí)符。第69頁(yè)4.2數(shù)據(jù)類型VisualBasic的數(shù)據(jù)類型主要分為三大類:系統(tǒng)定義的基本數(shù)據(jù)類型自定義類型枚舉類型第70頁(yè)基本數(shù)據(jù)類型第71頁(yè)1.字符串型(String)⑴在字符串中字母的大小寫是有區(qū)別的。例如"ABC"與"abc"是不相等的。⑵字符串中包含字符的個(gè)數(shù)稱為字符串的長(zhǎng)度,如果長(zhǎng)度為0則稱之為空串。 "abc" “中華人民共和國(guó)” “” “” ⑶字符串需要加上定界符雙引號(hào)圖4.1立即窗口第72頁(yè)2.數(shù)值型(Numeric)包括整數(shù)類型和實(shí)數(shù)類型。⑴整數(shù)類型①整型(Integer)例如:4,-4。②長(zhǎng)整型(Long)③字節(jié)型(Byte)以1個(gè)字節(jié)存儲(chǔ)無(wú)符號(hào)整型,只能存儲(chǔ)0至255之間的數(shù)。第73頁(yè)⑵實(shí)數(shù)類型實(shí)數(shù)類型又分為單精度實(shí)型、雙精度實(shí)型和貨幣型。其中單精度實(shí)型、雙精度實(shí)型在VB中都有兩種表示法:定點(diǎn)表示和浮點(diǎn)表示。①單精度浮點(diǎn)型(Single)

單精度浮點(diǎn)型指數(shù)部分用E表示。例如:123.456E+3123.456E-43.402823E+38 '3.402823乘以10的38次方②雙精度浮點(diǎn)型(Double)雙精度浮點(diǎn)型指數(shù)部分用D表示例如:123.456D+31.79769313486232D+308 '1.79769313486232乘以10的308次方③貨幣型(Currency)貨幣型數(shù)據(jù)精確到小數(shù)點(diǎn)后4位。第74頁(yè)3.日期型(Date)可以表示的日期范圍從公元100年1月1日到9999年12月31日,而時(shí)間可以從0:00:00到23:59:59。日期文字須以定界符“#”括起來(lái)。例如: #January1,1993# #1Jan93# #1993-1-1#4.布爾型(Boolean)布爾型又稱為邏輯型,它只有兩個(gè)值,即真值(True)和假值(False),存儲(chǔ)為兩個(gè)字節(jié)。5.變體型(Variant)變體型是一種特殊的數(shù)據(jù)類型,它可以用來(lái)表示系統(tǒng)定義的任何種類的數(shù)據(jù)類型(除了定長(zhǎng)String類型及用戶定義類型外)。第75頁(yè)自定義類型

用Type語(yǔ)句定義數(shù)據(jù)類型,通常又稱為記錄型

格式:Type數(shù)據(jù)類型名

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

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

as數(shù)據(jù)類型……EndType例如:TypestudentNoasintegerNameasString*10 '定義為10個(gè)字符的定長(zhǎng)字符串

SexasString*2 '定義為2個(gè)字符的定長(zhǎng)字符串Endtype第76頁(yè)枚舉類型1.枚舉類型的定義枚舉類型,即將該變量的取值一一列舉出來(lái)格式:[Public|Private]Enum枚舉名稱

成員名1[=常量表達(dá)式]

成員名2[=常量表達(dá)式]

……EndEnum第77頁(yè)定義一個(gè)枚舉類型Workday包含7個(gè)成員PublicEnumWorkdayMondayTuesdayWednesdayThursdayFridaySaturdaySundayEndEnum可以用賦值語(yǔ)句給枚舉中的成員賦值,所賦的值可以是任何長(zhǎng)整型的數(shù)。例如:PublicEnumWorkdayMonday=1TuesdayWednesdayThursdayFridaySaturdaySundayEndEnum第78頁(yè)4.3常量與變量在程序設(shè)計(jì)中需要將數(shù)據(jù)存儲(chǔ)為常量或者變量。值不能被改變的量稱為常量,可以被改變的量稱為變量。用常量和變量在程序中表示數(shù)據(jù)是重要的程序設(shè)計(jì)思想。第79頁(yè)常量

1.直接常量直接常量就是程序中具體給出的數(shù)據(jù)的值。直接常量分為數(shù)值常量、字符串常量、邏輯常量和日期常量。例如:5678,233.5E-6,0.58d7,"thisisastring",True,#2004-11-18#等。

可以指明常量的類型,即在數(shù)值的后面加上相應(yīng)的類型說(shuō)明符。例如:2.75!是一個(gè)單精度浮點(diǎn)型常量,11.25#是一個(gè)雙精度浮點(diǎn)型常量。第80頁(yè)2.符號(hào)常量符號(hào)常量:是用一些有意義的名字代替永遠(yuǎn)不變的值。格式:Const常量名[類型說(shuō)明]=表達(dá)式[,常量名=表達(dá)式]……ConstPi2=Pi*2,Pi4=Pi*4Consttomorrow=#1/1/1995#Constnum!=1.25,maxAsDouble=2.65常量的效范圍有以下三種情況:⑴

如果創(chuàng)建僅存在于過(guò)程中的常量,就在這個(gè)過(guò)程內(nèi)部聲明常量。⑵

如果希望這個(gè)常量在模塊中所有過(guò)程都有效,但對(duì)模塊之外任何代碼都無(wú)效,就在模塊的聲明段中聲明常量。⑶

如果創(chuàng)建在整個(gè)程序中都有效的全局常量,則應(yīng)在標(biāo)準(zhǔn)模塊的聲明段中聲明常量,并在

Const前面放置Public關(guān)鍵字,在窗體模塊或類模塊中不能聲明全局常量。

【例4.1】第81頁(yè)變量1.變量的聲明⑴顯式聲明顯式聲明是在變量使用前用聲明語(yǔ)句聲明變量。格式:Dim變量名[As數(shù)據(jù)類型]說(shuō)明:①其中Dim還可以是Static、Public或Private。②變量名應(yīng)遵循標(biāo)識(shí)符的定義規(guī)則。③數(shù)據(jù)類型可以是VB支持的任意數(shù)據(jù)類型,若未指定類型則為變體型。例如:DimvarAsIntegerPublicsum_1AsDoubleDimtomorrowAsDateDimx'x為變體型

第82頁(yè)Dimname1asStringDimname2asString*6

可以用一個(gè)Dim語(yǔ)句定義多個(gè)變量,但每個(gè)變量的數(shù)據(jù)類型必須用as聲明,例如:Dimvar1,var2asIntegerDimvar1asInteger,var2asInteger可使用類型符定義變量。例如:

Dimtotal! '定義total為單精度實(shí)型變量

Dimaverage@ '定義average為貨幣型變量第83頁(yè)⑵隱式聲明例如:PrivateSubCommand1_Click()Var=50PrintVarEndSub

可以采用強(qiáng)制變量聲明:OptionExplicit選擇“工具|選項(xiàng)”命令,選擇“編輯器”選項(xiàng)卡,再選擇“要求變量聲明”選項(xiàng)第84頁(yè)2.自定義類型的變量①聲明自定義類型變量。例如,4.2.2節(jié)中定義一個(gè)Student數(shù)據(jù)類型,現(xiàn)在定義一個(gè)student類型的變量,方法為:

Dimliasstudent②引用自定義類型變量

格式:變量名.成員名例如:

li.noli.Nameli.Sex第85頁(yè)3.枚舉類型的變量例如,在4.2.3節(jié)中定義了一個(gè)枚舉數(shù)據(jù)類型Workday,下面的程序代碼定義了一個(gè)枚舉類型變量mywork。PrivateSubCommand1_Click()DimmyworkAsWorkday '定義變量mywork為Workday枚舉類型

mywork=Tuesday ‘將枚舉成員Tuesday(值為2)賦值給yworkPrintmywork '打印變量mywork的值,結(jié)果為2EndSub第86頁(yè)變量的作用范圍在VisualBasic中,變量作用范圍分成過(guò)程(局部)級(jí)、模塊(文件內(nèi)部)級(jí)、工程(項(xiàng)目、全局)級(jí)這三個(gè)等級(jí)。

1.局部變量局部變量聲明方法:用Dim或者Static關(guān)鍵字聲明?!纠?.2】局部變量舉例。Dim與Static的區(qū)別:用Static聲明的局部變量中的值一直存在,這種變量稱為靜態(tài)變量,而用Dim聲明的變量只在過(guò)程執(zhí)行期間才存在,執(zhí)行完畢后,變量就被釋放?!纠?.3】測(cè)試Dim與Static的區(qū)別。

第87頁(yè)2.模塊變量

模塊級(jí)變量在使用之前必須聲明,不能使用隱式聲明方式。模塊級(jí)變量聲明方法:在模塊頂部的聲明段中用Dim或Private關(guān)鍵字聲明模塊級(jí)變量。

【例4.4】模塊級(jí)變量舉例

3.全局變量全局變量聲明方法:在模塊的通用聲明段中用Public或Global聲明。

第88頁(yè)三種變量作用范圍對(duì)照表

當(dāng)不同作用范圍的變量重名時(shí),系統(tǒng)能夠通過(guò)變量的作用范圍加以識(shí)別,過(guò)程中引用的變量,總是同名變量中作用范圍最小的那個(gè)變量。

第89頁(yè)4.4常用內(nèi)部函數(shù)

函數(shù)的調(diào)用格式:<函數(shù)名>([參數(shù)1],[參數(shù)2]…)說(shuō)明:⑴每一個(gè)函數(shù)都有函數(shù)名,通過(guò)函數(shù)名調(diào)用函數(shù)。⑵數(shù)學(xué)術(shù)語(yǔ)中的函數(shù)的“自變量”在程序設(shè)計(jì)語(yǔ)言中稱為“參數(shù)”,函數(shù)運(yùn)算的結(jié)果稱為“返回值”。⑶函數(shù)是以表達(dá)式的形式調(diào)用的,而不能單獨(dú)作為一個(gè)語(yǔ)句。例如:a=Sin(b)z=Sin(x)+Cos(x+y)第90頁(yè)數(shù)學(xué)函數(shù)第91頁(yè)字符串函數(shù)第92頁(yè)第93頁(yè)轉(zhuǎn)換函數(shù)第94頁(yè)時(shí)間函數(shù)第95頁(yè)隨機(jī)數(shù)函數(shù)1.Rnd函數(shù)格式:Rnd[(x)],其中參數(shù)x是一個(gè)雙精度數(shù),可以省略。功能:可產(chǎn)生一個(gè)0~1之間的單精度隨機(jī)數(shù)(該值是大于或等于0,但小于1的數(shù)),下一個(gè)要產(chǎn)生的隨機(jī)數(shù)受參數(shù)x的影響,分別為:⑴

當(dāng)x<0時(shí),則每次產(chǎn)生的隨機(jī)數(shù)都相同。⑵

當(dāng)x>0或省略時(shí),產(chǎn)生下一個(gè)隨機(jī)數(shù)。⑶

當(dāng)x=0時(shí),則該次產(chǎn)生的隨機(jī)數(shù)與上一次產(chǎn)生的隨機(jī)數(shù)相同。例如:要產(chǎn)生1~100之間的隨機(jī)整數(shù)時(shí),可利用Int(Rnd*100+1)來(lái)解決2.Randomize語(yǔ)句格式:Randomize[(x)]功能:將Rnd函數(shù)的隨機(jī)數(shù)生成器初始化例如:RandomizePrintRnd第96頁(yè)數(shù)制轉(zhuǎn)換函數(shù)第97頁(yè)測(cè)試函數(shù)

格式:TypeName(變量名)功能:返回參數(shù)的變量類型。說(shuō)明:返回值為具體的類型名例如:DimaAsVariantDimbAsIntegerDimcAsDoubleDimdAsStringPrintTypeName(a) '返回值:emptyPrintTypeName(b) '返回值:IntegerPrintTypeName(c) '返回值:DoublePrintTypeName(d) '返回值:StringPrintTypeName(Command1) '返回值:CommandButtonPrintTypeName(Picture1) '返回值:PictureBoxPrintTypeName(Text1) '返回值:TextBox第98頁(yè)4.5運(yùn)算符和表達(dá)式運(yùn)算符是表示數(shù)據(jù)之間運(yùn)算方式的符號(hào),操作數(shù)是參與運(yùn)算的數(shù)據(jù),表達(dá)式是由運(yùn)算符和操作數(shù)組成的式子。例如:算術(shù)表達(dá)式“1+2”中1、2是操作數(shù),“+”是運(yùn)算符。運(yùn)算符中有的需要兩個(gè)操作數(shù),稱為雙目運(yùn)算符,有的只需要一個(gè)操作數(shù),稱為單目運(yùn)算符。例如“-”作為負(fù)號(hào)時(shí)只用一個(gè)操作數(shù)。

第99頁(yè)算術(shù)運(yùn)算符第100頁(yè)算術(shù)表達(dá)式

在書寫算術(shù)表達(dá)式時(shí)應(yīng)注意與數(shù)學(xué)中的表達(dá)式寫法的區(qū)別:⑴

在VisualBasic中不能省略乘號(hào)運(yùn)算符,如:數(shù)學(xué)上的表達(dá)式b2-4ac中省略了乘號(hào),但在寫成對(duì)應(yīng)的VisualBasic表達(dá)式的時(shí)候,要寫成b^2-4*a*c。⑵

表達(dá)式中所有的括號(hào)一律使用圓括號(hào),并且括號(hào)左右必須配對(duì)。如:數(shù)學(xué)中的表達(dá)式[(x+y)/(a-b)+c]x,在VisualBasic中要寫成((x+y)/(a-b)+c)*x。⑶算術(shù)運(yùn)算符優(yōu)先級(jí)從高到低的順序?yàn)椋撼朔健?fù)數(shù)→(乘、除)→整除→取?!?、減),優(yōu)先級(jí)高則先運(yùn)算,但如果有括號(hào)則先運(yùn)算括號(hào)內(nèi)的表達(dá)式,例如:?-2^2 '結(jié)果為

–4?3^3\2 '結(jié)果為13?4Mod8/2 '結(jié)果為0?3*2\3/2 '結(jié)果為3

第101頁(yè)字符串運(yùn)算符和字符串表達(dá)式字符串運(yùn)算符只有“&”和“+”,它們的功能是把字符串連接起來(lái)。例如:?"Visual"+"Basic" '結(jié)果為:VisualBasic?"Visual"&"Basic" '結(jié)果為:VisualBasic?"abcd"+123 '操作類型不匹配出錯(cuò)

?"abcd"&123 '結(jié)果為

abcd123?now&"星期四" '03-6-2015:39:55星期四

字符串表達(dá)式例如:"abc"&"123"&Left("abc",1)

第102頁(yè)關(guān)系運(yùn)算符關(guān)系運(yùn)算比較規(guī)則:⑴

數(shù)值型:比較它們的數(shù)值大小。⑵

字符型:從左到右逐個(gè)字符比較ASCII碼值,直到遇到不同字符為止。對(duì)于兩個(gè)漢字字符,比較它們的拼音。常見(jiàn)的字符的比較關(guān)系如下:“空格”<“0”<……<“9”<“A”<……<“Z”<“a”<……<“z”<“漢字”⑶

日期型:將日期看成“yyyymmdd”的8位整數(shù),再按數(shù)值進(jìn)行比較。第103頁(yè)關(guān)系表達(dá)式格式:<表達(dá)式1><關(guān)系運(yùn)算符><表達(dá)式2>功能:如果關(guān)系表達(dá)式成立,則計(jì)算結(jié)果為真,否則為假。說(shuō)明:⑴

“表達(dá)式1”和“表達(dá)式2”是兩個(gè)類型相同的表達(dá)式,可以是算術(shù)表達(dá)式、字符串表達(dá)式或者是其它關(guān)系表達(dá)式。例如:?10-5>2+3 '結(jié)果為:False?"xyz"="XYZ" '結(jié)果為:False⑵VisualBasic中,所有的關(guān)系運(yùn)算符的優(yōu)先級(jí)都相同。

第104頁(yè)邏輯運(yùn)算符與邏輯表達(dá)式

Not取反運(yùn)算,即將真變假或假變真。例如:?Not"abc"<"abd" 'False⑵And

與運(yùn)算,只有兩個(gè)操作數(shù)的值都為真時(shí),結(jié)果為真,否則結(jié)果為假。例如:?trueAnd1<2 'True?2+2=4Andfalse 'False?3<5And"a"="A"'False⑶Or或運(yùn)算,兩個(gè)操作數(shù)的值只要有一個(gè)為真時(shí),結(jié)果就為真,否則結(jié)果為假。例如:?"abc"<>"ABC"Or2>1 'True?TrueOr6-3>4 'True?6<2Or"b"="B" 'False第105頁(yè)⑷Xor

異或運(yùn)算,兩個(gè)操作數(shù)的值相反時(shí),結(jié)果為真,否則結(jié)果為假。例如:?3>5Xor8<5 'False⑸Eqv

等價(jià)運(yùn)算,兩個(gè)操作數(shù)的值同時(shí)為真或同時(shí)為假時(shí),結(jié)果為真,否則結(jié)果為假。例如:?3>5Eqv8<5 'True⑹Imp

蘊(yùn)含運(yùn)算,當(dāng)?shù)谝粋€(gè)操作數(shù)的值為真,第二個(gè)操作數(shù)的值為假時(shí),結(jié)果為假,否則結(jié)果為真。例如:?5<6Imp2>3 'False第106頁(yè)邏輯表達(dá)式邏輯運(yùn)算符的優(yōu)先級(jí)有高到低為:Not→And→Or→Xor→Eqv→Imp。例如:?Not"Abc"="abc"Or2+3<>5And"23"<"3"'結(jié)果為:True第107頁(yè)日期運(yùn)算符與日期表達(dá)式

1.日期運(yùn)算符日期運(yùn)算符只有“+”和“-”。2.日期表達(dá)式日期表達(dá)式包括以下操作:“+”連接的日期表達(dá)式,操作數(shù)一個(gè)為日期型,另一個(gè)為數(shù)值型,表示計(jì)算該日期后的若干天。例如:?#2002-02-01#+1 '結(jié)果為:02-2-2“-”連接的日期表達(dá)式有兩種情況:當(dāng)操作數(shù)一個(gè)為日期型,另一個(gè)為數(shù)值型時(shí),表示計(jì)算該日期前的若干天;如果兩個(gè)操作數(shù)都是日期型,表示計(jì)算兩個(gè)日期之間相差的天數(shù)。例如:?#01/01/2002#-2 '結(jié)果為01-12-30?#2002-02-02#-2 '結(jié)果為:02-1-31 ?#2001-02-03#-#2001-02-02# '結(jié)果為:1

第108頁(yè)各種運(yùn)算符的優(yōu)先級(jí)比較第5章數(shù)據(jù)的輸出與輸入

第110頁(yè)5.1數(shù)據(jù)的輸出5.2數(shù)據(jù)輸入函數(shù)InputBox5.3消息框MsgBox5.4字形5.5打印機(jī)輸出第111頁(yè)5.1數(shù)據(jù)的輸出

Print方法

與Print方法有關(guān)的函數(shù)

Cls方法

第112頁(yè)P(yáng)rint方法格式:[對(duì)象名.]Print[表達(dá)式列表]功能:在指定對(duì)象中輸出表達(dá)式的值。說(shuō)明:⑴對(duì)象可以是窗體、立即窗口、圖片框和打印機(jī)等。例如:Form1.Print"中國(guó)" Picture1.Print"中國(guó)"Printer.Print"中國(guó)" Debug.Print"中國(guó)" Print"china" 第113頁(yè)⑵“表達(dá)式列表”是輸出的內(nèi)容,如果Print后面沒(méi)有表達(dá)式,則輸出一個(gè)空行。輸出內(nèi)容多個(gè)表達(dá)式之間用分號(hào)、逗號(hào)或空格隔開(kāi)。⑶Print方法執(zhí)行后會(huì)自動(dòng)換行。如果要下一個(gè)Print語(yǔ)句輸出的信息也在同一行上顯示,可以在語(yǔ)句末尾加上一個(gè)逗號(hào)或分號(hào)。其中,分號(hào)表示緊湊模式,逗號(hào)表示標(biāo)準(zhǔn)模式。⑷Print關(guān)鍵字可以用“?”代替,VB會(huì)自動(dòng)將它翻譯成Print。第114頁(yè)與Print方法有關(guān)的函數(shù)

1.Tab()函數(shù)格式:PrintTab(n);輸出內(nèi)容功能:與Print方法結(jié)合使用,從指定位置n開(kāi)始輸出信息,n為數(shù)值表達(dá)式,其值為整數(shù),表示輸出位置的列號(hào)。2.Spc()函數(shù)格式:PrintSpc(n);輸出內(nèi)容功能:與Print方法結(jié)合使用,輸出內(nèi)容從當(dāng)前位置跳過(guò)n列,即n個(gè)空格。3.Space()函數(shù)格式:Space(n)功能:返回n個(gè)空格。4.Format()函數(shù)格式:PrintFormat(數(shù)值表達(dá)式[,格式說(shuō)明串])功能:與Print方法結(jié)合使用,將數(shù)值表達(dá)式按指定的格式輸出。

第115頁(yè)Format()函數(shù)的“格式說(shuō)明串”包括以下幾種符號(hào):# 表示一個(gè)數(shù)字位,用于控制輸出內(nèi)容的長(zhǎng)度。0 與#基本相同,區(qū)別是當(dāng)輸出內(nèi)容長(zhǎng)度小于給定的#個(gè)數(shù)時(shí),多余位以0補(bǔ)齊。.

顯示小數(shù)點(diǎn),與#、0結(jié)合使用。小數(shù)部分多余的數(shù)字將被四舍五入。,

千位分隔符,即從小數(shù)點(diǎn)左邊第1位開(kāi)始,每3位用一個(gè)逗號(hào)隔開(kāi)。%

將數(shù)值以百分?jǐn)?shù)的形式輸出,百分號(hào)放在格式說(shuō)明串的末尾。$ 美元符號(hào),放在格式說(shuō)明字符串的開(kāi)始。+,- 正、負(fù)號(hào),可將數(shù)值帶上符號(hào)。E+,E- 將數(shù)值轉(zhuǎn)換為指數(shù)形式顯示。【例5.1】驗(yàn)證格式輸出結(jié)果。第116頁(yè)Cls方法格式:[對(duì)象名.]Cls功能:清除程序運(yùn)行時(shí)窗體或圖片框所生成的圖形和文本。對(duì)象可以是窗體或圖片框,缺省時(shí)表示清除當(dāng)前窗體中的顯示內(nèi)容。例如:Form1.ClsPicture1.ClsCls第117頁(yè)5.2數(shù)據(jù)輸入函數(shù)InputBox

格式:InputBox(提示信息[,標(biāo)題][,缺省值][,x坐標(biāo)][,y坐標(biāo)])功能:InputBox函數(shù)能產(chǎn)生輸入框,并有提示信息,等待用戶輸入信息后,將輸入信息作為字符串返回。說(shuō)明:其中主要參數(shù)的含義如教材圖5.2所示。輸入?yún)^(qū)【例5.2】利用InputBox函數(shù)輸入學(xué)生的一組信息。

第118頁(yè)5.3消息框MsgBox

消息框用于向用戶顯示消息,等待用戶做出必要的響應(yīng),并返回一個(gè)整型數(shù)值,作為程序繼續(xù)運(yùn)行的依據(jù)。消息框有函數(shù)形式和語(yǔ)句形式。第119頁(yè)MsgBox函數(shù)

格式:MsgBox(提示信息[,按鈕類型][,標(biāo)題])例如:x=MsgBox("thisisamsgbox!",1,"MsgBoxDexmo")

【例5.3】測(cè)試消息框及返回值。說(shuō)明:1.“按鈕類型”用來(lái)指定顯示按鈕的個(gè)數(shù)、使用的圖標(biāo)樣式、缺省按鈕(即活動(dòng)狀態(tài)按鈕)的位置以及消息框的強(qiáng)制回應(yīng)等。每項(xiàng)內(nèi)容詳細(xì)取值見(jiàn)表5.1。

2.MsgBox函數(shù)的返回值是由用戶選擇的按鈕決定的,每個(gè)按鈕都有一個(gè)特定的返回值,

第120頁(yè)

MsgBox語(yǔ)句

消息框的語(yǔ)句形式其作用與MsgBox函數(shù)類似。格式:MsgBox消息[,按鈕類型][,標(biāo)題]例如:MsgBox"下載完畢"第121頁(yè)5.4字形

1.字體類型

FontName屬性格式:對(duì)象.FontName[="字體類型"]FontName="system"FontName="黑體"2.字體大小

FontSize屬性,設(shè)置字體的大小。格式:FontSize[=點(diǎn)數(shù)]FontSize=20FontSize=24VisualBasic中的字體最大點(diǎn)數(shù)為2106點(diǎn)。第122頁(yè)3.其它屬性粗體字

FontBold斜體字

FontItalic加刪除線

FontStrikethru加下劃線

FontUnderline這些屬性的值都是Boolean類型,即只有True和False兩個(gè)值5.4字形

第123頁(yè)格式:Printer.Print[打印內(nèi)容]在打印結(jié)束時(shí),調(diào)用EndDoc方法表示結(jié)束打印。例如:PrivateSubCommand1_Click()Printer.Print"打印機(jī)測(cè)試"Printer.Print"Thisisthefirstpage!"Printer.EndDocEndSub5.5打印機(jī)輸出

第124頁(yè)5.5打印機(jī)輸出

VisualBasic還提供了一些控制打印的方法和屬性:1.多頁(yè)打印實(shí)現(xiàn)強(qiáng)制換頁(yè)打印。格式:Printer.NewPage格式:

Printer.Page使用此語(yǔ)句可以在打印的時(shí)候同時(shí)打印出頁(yè)號(hào)。2.結(jié)束打印格式:Printer.EndDoc3.取消打印格式:Printer.KillDoc第125頁(yè)窗體輸出格式:[窗體.]PrintForm例如:Print"********"PrintForm如果窗體中有圖形,則需將AutoRedraw屬性設(shè)置為True,才能將圖形打印出來(lái)。打印結(jié)束后,PrintForm調(diào)用

EndDoc方法清空打印機(jī)。第6章VB程序設(shè)計(jì)語(yǔ)句

第127頁(yè)6.1賦值語(yǔ)句6.2選擇控制結(jié)構(gòu)6.3循環(huán)控制結(jié)構(gòu)6.5控件數(shù)組6.6過(guò)程6.4數(shù)組第128頁(yè)6.1賦值語(yǔ)句1.賦值語(yǔ)句的作用格式:變量名=表達(dá)式

控件名.屬性=表達(dá)式說(shuō)明:⑴

前者為變量賦值語(yǔ)句,后者為控件的屬性賦值語(yǔ)句。例如:s=100 s=s+1 ch1="ABC" Form1.Caption="求圓的面積" num=InputBox("請(qǐng)輸入一個(gè)數(shù)") 第129頁(yè)⑵

賦值語(yǔ)句可以改變變量存儲(chǔ)的值。⑶

“=”號(hào)既可以構(gòu)成賦值語(yǔ)句,也可以作為邏輯表達(dá)式的邏輯等號(hào)。例如:printx=y a=bAndb=c n=3=5 第130頁(yè)2.賦值相容⑴

變量類型與表達(dá)式類型相同。⑵

變量為字符串型,表達(dá)式為數(shù)值型。⑶

變量為數(shù)值型,表達(dá)式為可以轉(zhuǎn)換為合法數(shù)值的字符串。⑷

整型與浮點(diǎn)型屬于賦值相容。第131頁(yè)6.2選擇控制結(jié)構(gòu)

順序程序結(jié)構(gòu):賦值語(yǔ)句、輸入輸出語(yǔ)句構(gòu)成了最基本的程序結(jié)構(gòu),即順序程序結(jié)構(gòu)。

選擇控制結(jié)構(gòu):又稱為分支結(jié)構(gòu),這種結(jié)構(gòu)能夠根據(jù)條件執(zhí)行不同的操作。VisualBasic支持的選擇控制結(jié)構(gòu)包括

If語(yǔ)句

SelectCase語(yǔ)句。

第132頁(yè)

If語(yǔ)句1.If…Then語(yǔ)句格式:If<條件>Then<語(yǔ)句塊>EndIf說(shuō)明:

⑴“條件”一般為關(guān)系表達(dá)式或邏輯表達(dá)式,“語(yǔ)句塊”可以為一條或多條語(yǔ)句,If語(yǔ)句以EndIf結(jié)束。⑵語(yǔ)句執(zhí)行過(guò)程假真條件語(yǔ)句塊【例6.1】輸入a、b的值,如果a大于b,則輸出“a大于b”。

第133頁(yè)⑶

條件表達(dá)式也可以是算術(shù)表達(dá)式,非零為真、零為假。⑷

If語(yǔ)句可以精簡(jiǎn)為單行If語(yǔ)句,即If<條件>Then<語(yǔ)句>【例6.2】將例6.1用單行If語(yǔ)句改寫。

第134頁(yè)2.If...Then...Else語(yǔ)句格式:If<條件>Then<語(yǔ)句塊1>Else<語(yǔ)句塊2>EndIf說(shuō)明:⑴語(yǔ)句執(zhí)行過(guò)程假真條件語(yǔ)句塊1語(yǔ)句塊2【例6.3】輸入一個(gè)非零數(shù),判斷其是正數(shù)還是負(fù)數(shù)。

If...Then...Else語(yǔ)句為雙分支選擇結(jié)構(gòu),語(yǔ)句塊1和語(yǔ)句塊2必定有一個(gè)被執(zhí)行。第135頁(yè)【例6.4】

判斷某年是不是閏年。閏年的條件:年份能被400整除,或者年份能被4整除但不能被100整除。yearMod400=0(被400整除)Mod4=0AndyearMod100<>0(被4整除但不被100整除)兩個(gè)表達(dá)式之間應(yīng)該用Or連接。

If...Then...Else語(yǔ)句單行形式:If<條件>Then<語(yǔ)句塊1>Else<語(yǔ)句塊2>【例6.5】將例6.3用單行語(yǔ)句改寫。

第136頁(yè)3.If語(yǔ)句的嵌套格式:If<條件1>Then<語(yǔ)句塊1>ElseIf<條件2>Then<語(yǔ)句塊2>…[Else語(yǔ)句塊n+1]EndIf第137頁(yè)If語(yǔ)句多分支結(jié)構(gòu)流程圖假真假真假真條件1條件2條件n語(yǔ)句塊1語(yǔ)句塊2語(yǔ)句塊n語(yǔ)句塊n+1第138頁(yè)If語(yǔ)句的嵌套可以用于條件比較復(fù)雜的多分支情況。【例6-6】已知分段函數(shù):編寫程序,輸入自變量x的值,計(jì)算并輸出函數(shù)y的值。利用If語(yǔ)句嵌套可以實(shí)現(xiàn)多分支的篩選【例6.7】輸入一個(gè)分?jǐn)?shù),判斷它應(yīng)得的學(xué)分。90分以上得4學(xué)分,80-89分得3學(xué)分,70-79分得2學(xué)分,60-69分得1學(xué)分,60分以下不得學(xué)分。If語(yǔ)句如果有多個(gè)條件都為真,只能執(zhí)行第一個(gè)條件為真的分支【例6.8】將上題的篩選條件重新設(shè)計(jì)。第139頁(yè)SelectCase語(yǔ)句

格式:SelectCase<測(cè)試表達(dá)式>Case<值1><語(yǔ)句塊1>Case<值2><語(yǔ)句塊2>…[CaseElse<語(yǔ)句塊n+1>]EndSelect第140頁(yè)說(shuō)明:1.測(cè)試表達(dá)式可以是任何數(shù)值表達(dá)式或字符串表達(dá)式;2.每個(gè)case分支可以列出多個(gè)值,可以是以下形式之一:⑴

多個(gè)具體值,用逗號(hào)隔開(kāi),例如:Case1,2,3⑵

使用關(guān)鍵字To表示值的范圍,例如:Case1to10⑶

使用Is關(guān)系表達(dá)式,例如:CaseIs>=10 CaseIs<>"" ⑷

也可以使用以上幾種形式的組合,例如:Case1,3,Is>10 【例6.9】輸入a、b的值和運(yùn)算符號(hào),根據(jù)輸入的運(yùn)算符號(hào)決定運(yùn)算的方式。

第141頁(yè)3.當(dāng)程序中依賴某個(gè)單獨(dú)的關(guān)鍵變量或表達(dá)式作判斷條件時(shí),SelectCase語(yǔ)句效率更高,可讀性好。4.如果測(cè)試表達(dá)式的值能與多個(gè)Case子句表達(dá)式的值相匹配,只執(zhí)行第一個(gè)匹配的Case子句下面的語(yǔ)句塊。【例6-10】用Case語(yǔ)句改寫例6.7,將輸入成績(jī)轉(zhuǎn)換為相應(yīng)學(xué)分。 注意值列表順序的合理性。5.CaseElse子句是可選的,表示沒(méi)有匹配的值時(shí),則執(zhí)行該子句中的語(yǔ)句塊n+1?!纠?-11】從鍵盤輸入一個(gè)字符,判斷是字母還是數(shù)字,或是其它特殊字符。第142頁(yè)Iif函數(shù)

格式:

IIf(條件,表達(dá)式1,表達(dá)式2)說(shuō)明:⑴

函數(shù)執(zhí)行過(guò)程。PrintIIf(3>5,1,-1)⑵

函數(shù)中的三個(gè)參數(shù)都不能省略,“表達(dá)式1”和“表達(dá)式2”的值的類型應(yīng)保持一致。⑶MaxValue=IIf(x>y,x,y)可以改寫為單行If語(yǔ)句:Ifx>yThenMaxValue=xElseMaxValue=y

第143頁(yè)6.3循環(huán)控制結(jié)構(gòu)

VisualBasic提供了三種不同風(fēng)格的循環(huán)語(yǔ)句,包括:1.計(jì)數(shù)循環(huán)(For…Next語(yǔ)句)2.Do循環(huán)(Do…Loop語(yǔ)句)3.當(dāng)循環(huán)(While…Wend語(yǔ)句)其中,計(jì)數(shù)循環(huán)是按給定的次數(shù)執(zhí)行循環(huán)體,而Do循環(huán)和當(dāng)循環(huán)是在給定的條件滿足時(shí)執(zhí)行循環(huán)體。

第144頁(yè)For…Next語(yǔ)句

格式:For<循環(huán)變量>=<初值>To<終值>[Step步長(zhǎng)][循環(huán)體]Next[循環(huán)變量]說(shuō)明:1.For語(yǔ)句執(zhí)行過(guò)程計(jì)數(shù)器>終值計(jì)數(shù)器=初始值假循環(huán)體計(jì)數(shù)器=計(jì)數(shù)器+步長(zhǎng)例如:Fori=1To5Printi,Nexti第145頁(yè)2.1關(guān)鍵字Step表示步長(zhǎng)。例如Fori=1To10Step2Print"Line";iNexti3.當(dāng)步長(zhǎng)為正,初值大于終值時(shí),或步長(zhǎng)為負(fù),初值小于終值時(shí),循環(huán)體將不執(zhí)行。Fori=9to0Print"Line";iNextI欲使其運(yùn)行,需要將循環(huán)語(yǔ)句的步長(zhǎng)設(shè)置為負(fù)值。改寫為:Fori=9to0Step-1Print"Line";iNextI第146頁(yè)【例6.12】求1到100之間自然數(shù)列之和?!纠?.13】輸入任意10個(gè)數(shù),統(tǒng)計(jì)其中正數(shù)和負(fù)數(shù)的個(gè)數(shù)。

【例6.14】找出所有平方小于200的正整數(shù)。

第147頁(yè)

Do…Loop語(yǔ)句1.DoWhile…Loop語(yǔ)句格式:DoWhile<條件>[循環(huán)體]Loop說(shuō)明:⑴語(yǔ)句執(zhí)行過(guò)程。假循環(huán)體真條件【例6.15】從鍵盤輸入字符并統(tǒng)計(jì)字符個(gè)數(shù),當(dāng)輸入字符為“?”時(shí),停止計(jì)數(shù)?!纠?.16】用Do語(yǔ)句編寫程序,求1到100的累加和。

第148頁(yè)⑵

Do循環(huán)需要有能夠改變循環(huán)條件表達(dá)式值的語(yǔ)句,否則循環(huán)永遠(yuǎn)不會(huì)結(jié)束,即死循環(huán)。⑶

ExitDo語(yǔ)句用于強(qiáng)制跳出循環(huán)。⑷

Do...Loop語(yǔ)句的另一種形式格式:Do[循環(huán)體]LoopWhile<條件>這種形式可以保證循環(huán)體至少執(zhí)行一次。

假循環(huán)體真條件第149頁(yè)2.DoUntil…Loop語(yǔ)句格式:DoUntil<條件>[循環(huán)體]Loop說(shuō)明:⑴語(yǔ)句執(zhí)行過(guò)程真循環(huán)體假條件第150頁(yè)⑵另一種語(yǔ)句形式是把測(cè)試條件放在Loop語(yǔ)句中,這種形式可以保證循環(huán)至少執(zhí)行一次。格式:Do[循環(huán)體]LoopUntil<條件>真循環(huán)體假條件【例6.17】用DoUntil…Loop語(yǔ)句改寫例6.15。

第151頁(yè)While…Wend語(yǔ)句

由While…Wend語(yǔ)句構(gòu)成的循環(huán)稱為當(dāng)循環(huán)或While循環(huán)。格式:While<條件>[循環(huán)體]Wend

假循環(huán)體真條件【例6.18】用公式π/4=1-1/3+1/5-1/7+……

求π的近似值(計(jì)算到最后一項(xiàng)的絕對(duì)值小于10-6)。

第152頁(yè)幾種循環(huán)語(yǔ)句的比較

1.For…Next語(yǔ)句s=0Fori=1To10s=s+iNextPrints2.While…Wend語(yǔ)句s=0i=1Whilei<=10s=s+ii=i+1WendPrints3.DoWhile…Loop語(yǔ)句s=0i=1DoWhilei<=10s=s+ii=i+1LoopPrints4.Do…LoopWhile語(yǔ)句s=0i=1Dos=s+ii=i+1LoopWhilei<=10Prints5.DoUntil…Loop語(yǔ)句s=0i=1DoUntili>10s=s+ii=i+1LoopPrints6.Do…LoopUntil語(yǔ)句s=0i=1Dos=s+i=i+1LoopUntili>10Prints第153頁(yè)多重循環(huán)在循環(huán)語(yǔ)句中使用另一個(gè)循環(huán)語(yǔ)句稱為循環(huán)的嵌套。兩個(gè)For語(yǔ)句嵌套的形式:Fori=m1Tom2

……Forj=n1Ton2<內(nèi)循環(huán)體>內(nèi)循環(huán)

外循環(huán)

Nextj

……Nex

溫馨提示

  • 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)論