Visual Basic程序設(shè)計應(yīng)用教程課件第3章 程序設(shè)計基本結(jié)構(gòu)_第1頁
Visual Basic程序設(shè)計應(yīng)用教程課件第3章 程序設(shè)計基本結(jié)構(gòu)_第2頁
Visual Basic程序設(shè)計應(yīng)用教程課件第3章 程序設(shè)計基本結(jié)構(gòu)_第3頁
Visual Basic程序設(shè)計應(yīng)用教程課件第3章 程序設(shè)計基本結(jié)構(gòu)_第4頁
Visual Basic程序設(shè)計應(yīng)用教程課件第3章 程序設(shè)計基本結(jié)構(gòu)_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第3章程序設(shè)計基本結(jié)構(gòu)

計算機程序執(zhí)行的控制流程只能由三種基本控制結(jié)構(gòu)組成,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

VisualBasic雖然采用事件驅(qū)動,由用戶激發(fā)某事件去執(zhí)行相應(yīng)的事件處理過程,這些處理過程之間并不形成特定的執(zhí)行次序,但對每一個事件處理過程內(nèi)部而言,又總包含這三種基本結(jié)構(gòu)。事件驅(qū)動的方式無須程序員管理,但內(nèi)部的語句流程是由程序員控制的。

第3章程序設(shè)計基本結(jié)構(gòu)

3.1順序結(jié)構(gòu)

3.2選擇結(jié)構(gòu)

3.3循環(huán)結(jié)構(gòu)3.4多重窗體程序設(shè)計3.5綜合程序舉例

3.1順序結(jié)構(gòu)

所謂順序結(jié)構(gòu),就是按照語句的書寫順序執(zhí)行,即語句的執(zhí)行順序與書寫順序一致,但僅有順序結(jié)構(gòu)不能處理復(fù)雜的問題。本節(jié)介紹構(gòu)成VisualBasic順序結(jié)構(gòu)中使用的基本語句、輸入和輸出操作以及順序結(jié)構(gòu)程序設(shè)計的具體實例。 返回3.1順序結(jié)構(gòu)3.1.1賦值語句Let

3.1.2數(shù)據(jù)輸出

3.1.3數(shù)據(jù)輸入

3.1.4常用基本語句

返回3.1.1賦值語句Let

賦值語句是程序設(shè)計中最基本、最常用的語句,是為變量和對象屬性設(shè)置新值的最主要方法。其作用是把一個表達式的值賦給一個變量或一個對象的屬性。賦值語句的一般格式:

[Let]<變量名>=<表達式>[Let][<對象名>.]<屬性名>=<表達式>

返回3.1.1賦值語句Let【例3-1】賦值相容問題?!纠?-2】交換兩個標簽中顯示的文本內(nèi)容。

3.1.2

數(shù)據(jù)輸出1.使用標簽控件(Label)輸出數(shù)據(jù)標簽(Label)是VisualBasic中最常用的輸出文本信息的工具。在程序運行后,Label控件顯示的文本用戶不能直接修改。有些沒有標題(Caption)屬性的控件(如TextBox)可以用Label標識。在Label中顯示的文本是由Label控件Caption屬性控制的,該屬性可以在設(shè)計時通過“屬性”窗口設(shè)置或在運行程序時賦值?!纠?-3】用標簽輸出多行文本?!纠?-4】模擬秒表計時。返回3.1.2

數(shù)據(jù)輸出2.使用Print方法輸出數(shù)據(jù)(1)Print方法Print方法用于在窗體(Form)、立即窗口(Debug)、圖片框(PictureBox)或打印機(Printer)等對象中顯示或打印輸出字符串或表達式的值。

3.1.2

數(shù)據(jù)輸出Print方法語法格式如下:

[〈對象名稱〉.]Print[〈表達式列表〉][,|;]說明:①〈對象名稱〉可以是窗體、立即窗口、圖片框或打印機。如果省略了〈對象名稱〉,則在當前窗體上輸出。

3.1.2

數(shù)據(jù)輸出②〈表達式列表〉可以是一個或多個表達式,如果省略,則輸出一個空行。Print方法具有計算和輸出的雙重功能,先計算表達式的值后輸出。當輸出多個表達式時,各表達式之間用逗號“,”或分號“;”隔開。使用逗號分隔符,則各輸出項按標準輸出(分區(qū)輸出)格式顯示,即每隔14列為一個輸出區(qū),逗號后面的表達式的值將在下一個輸出區(qū)顯示;使用分號分隔符,則按緊湊格式輸出,即后一項緊跟前一項輸出。在一個Print語句中,可以將逗號和分號混合使用。3.1.2

數(shù)據(jù)輸出③如果語句末尾沒有分隔符,則執(zhí)行Print方法輸出當前輸出項后將自動換行,下面的Print輸出的內(nèi)容將在新的一行上顯示。為了使上下兩個Print語句輸出內(nèi)容顯示在同一行上,則需在上一個Print語句的最后加上逗號或分號?!纠?-5】用Print方法在窗體中直接輸出字符串或表達式的值。

3.1.2

數(shù)據(jù)輸出2.使用Print方法輸出數(shù)據(jù)(2)與Print方法有關(guān)的函數(shù)①Tab函數(shù)。在Print方法中,可以使用Tab函數(shù)對輸出結(jié)果進行定位。其格式為:Tab(n)其中,n為數(shù)值表達式,其值為整數(shù),它用來指定表達式輸出的起始列號。要輸出的內(nèi)容放在Tab函數(shù)的后面,并用分號隔開。例如,PrintTab(5);"計算機“

;Tab(15);"世界"

3.1.2

數(shù)據(jù)輸出②Spc函數(shù)。在Print方法中,用Spc函數(shù)跳過n列。其格式如下:Spc(n)其中,n是在顯示或打印下一個表達式之前插入的空格數(shù)。Spc函數(shù)與輸出項之間用分號隔開。例如,print“計算機”;Spc(5);“世界”

3.1.2

數(shù)據(jù)輸出3.使用信息框函數(shù)(MsgBox)輸出數(shù)據(jù)使用信息框函數(shù)MsgBox可以產(chǎn)生一個對話框來顯示信息,并且等待用戶單擊某個按鈕后,返回一個整數(shù)值以標明用戶單擊了哪個按鈕。MsgBox函數(shù)的使用格式為:<變量名>=MsgBox(<提示信息>[,<對話框類型>[,<對話框標題>]])3.1.2

數(shù)據(jù)輸出MsgBox函數(shù)的格式說明:(1)<提示信息>指定在對話框中顯示的文本,最大長度為1024個字符,對話框的高度和寬度隨<提示信息>的增加而增加。在<提示信息>中使用回車符Chr(13)、換行符Chr(10)使顯示的文本換行。(2)<對話框類型>用于控制對話框中出現(xiàn)的按鈕數(shù)目和圖標樣式,一般有四個參數(shù),這四種參數(shù)值用加號連接共同作為<對話框類型>,其取值和含義分別見表3-1、表3-2、表3-3和表3-4。<對話框類型>可省略,若省略默認值為0,即只顯示一個“確定”按鈕,而且此按鈕為默認按鈕,此時逗號分割符不能省略。3.1.2

數(shù)據(jù)輸出(3)<對話框標題>指定對話框的標題,該選項可以省略。(4)Msgbox()函數(shù)的返回值指明了用戶在對話框中選擇了哪一個按鈕,Msgbox()函數(shù)產(chǎn)生的對話框可能出現(xiàn)7種按鈕,它們是:確認、取消、終止、重試、忽略、是和否。函數(shù)的返回值所對應(yīng)情況如表3-5所示。3.1.2

數(shù)據(jù)輸出(5)<變量名>,該變量用來存放用戶關(guān)閉信息框時所選擇的命令按鈕的返回值,若不需要返回值,則可省略該項。即信息對話框可以寫成語句形式。例如,下列為信息對話框MsgBox語句形式的用法,其執(zhí)行結(jié)果如下圖所示。

3.1.2

數(shù)據(jù)輸出3.使用信息框函數(shù)(MsgBox)輸出數(shù)據(jù)【例3-6】信息對話框MsgBox函數(shù)形式舉例。

3.1.3數(shù)據(jù)輸入1.使用文本框控件(TextBox)輸入數(shù)據(jù)文本框是一種最常用的控件,可以方便地由用戶輸入或顯示文本。【例3-7】在文本框中輸入三種家電商品的單價、銷售數(shù)量,計算并輸出總銷售額?!纠?-8】在文本框中輸入任意一串英文字符,將它們進行大小寫轉(zhuǎn)換。返回3.1.3數(shù)據(jù)輸入2.使用輸入框函數(shù)(InputBox)輸入數(shù)據(jù)

InputBox函數(shù)用于將用戶從鍵盤輸入的數(shù)據(jù)作為函數(shù)的返回值返回到當前程序中,此函數(shù)采用對話框界面,可以提供一個良好的交互環(huán)境。其語法格式為:變量名=InputBox(<提示內(nèi)容>,[<對話框標題>],[<默認值>])3.1.3數(shù)據(jù)輸入InputBox函數(shù)說明:(1)<提示內(nèi)容>指定在對話框中顯示的文本。要使<提示內(nèi)容>換行顯示,可以在換行處插入回車符CHR(13)、換行符CHR(10)。對話框的高度和寬度隨著<提示內(nèi)容>而增加,最多可有1024個字符。(2)<對話框標題>指定對話框的標題。(3)<默認值>用于指定用于輸入內(nèi)容的文本框中顯示的初始文本。3.1.3數(shù)據(jù)輸入(4)在輸入框內(nèi)輸入信息后,若用戶單擊“確定”按鈕,將把輸入信息返回到變量中;若單擊“取消”按鈕,返回的將是一個空字符串。例如,下圖為輸入框InputBox函數(shù)的用法,其執(zhí)行結(jié)果如圖所示。3.1.3數(shù)據(jù)輸入3.焦點和Tab鍵順序(1)焦點(Focus)一個應(yīng)用程序可以有多個窗體,每個窗體又可以有很多對象,但用戶任何時候只能操作一個對象。焦點是對象接收鼠標或鍵盤輸入的能力,當對象具有焦點時,才能接受用戶的輸入,因此當前被操作的對象我們稱它獲得了焦點。一個窗體上如果有多個文本框,只有具有焦點的文本框才能接受和顯示有鍵盤輸入的文本內(nèi)容。3.1.3數(shù)據(jù)輸入

窗體和多數(shù)控件都可以接收焦點,某些控件不具有焦點,如標簽、框架、計時器等。僅當控件的Visible和Enabled屬性被設(shè)置為真(True)時,控件才能接受焦點。焦點在任何時候只能有一個,當對象獲得焦點時發(fā)生GetFocus事件,當對象失去焦點時發(fā)生LostFocus事件。3.1.3數(shù)據(jù)輸入可以用以下方法將焦點賦給對象:①在程序運行時,使用鼠標選擇對象,按快捷鍵選擇對象,按Tab鍵或Shift+Tab鍵在當前窗體的各對象之間切換焦點。②在程序代碼中用SetFocus方法來設(shè)置焦點。如在【例3-8】中,編寫窗體的Activate事件代碼,其中調(diào)用了SetFocus方法,使得程序開始時光標(焦點)位于文本框Text1中。3.1.3數(shù)據(jù)輸入(2)Tab鍵順序

Tab鍵順序是指用戶按Tab鍵時,焦點在窗體上的控件之間移動的順序。一般情況下,Tab順序由向窗體中建立控件的先后順序確定。設(shè)置控件的TabIndex屬性可以改變控件的Tab順序。3.1.4常用基本語句1.卸載對象語句(Unload)從內(nèi)存中卸載指定的窗體或控件,可以使用Unload語句。Unload語句的語法格式:

Unload對象名說明:(1)對象名是要卸載的窗體對象或控件的名稱。(2)如果卸載的對象是程序中惟一的窗體,將終止程序的執(zhí)行。返回3.1.4常用基本語句2.結(jié)束語句(End)語法格式:EndEnd語句能夠強行終止程序代碼的執(zhí)行,清除所有變量。在集成開發(fā)環(huán)境下運行程序過程中,用戶也可以單擊工具欄上的“結(jié)束”按鈕來強行結(jié)束程序的執(zhí)行。3.2選擇結(jié)構(gòu)

在實際應(yīng)用中,有許多問題需要判斷條件,根據(jù)判斷的結(jié)果來控制程序的流程。選擇結(jié)構(gòu)就是能夠根據(jù)不同的情況做出不同的選擇,執(zhí)行不同的操作,它是程序設(shè)計中基本結(jié)構(gòu)之一。返回3.2選擇結(jié)構(gòu)

3.2.1條件語句(If語句)

3.2.2SelectCase語句返回3.2.1條件語句(If語句)

在實際應(yīng)用中,有許多問題需要判斷條件,根據(jù)判斷的結(jié)果來控制程序的流程。選擇結(jié)構(gòu)就是能夠根據(jù)不同的情況做出不同的選擇,執(zhí)行不同的操作,它是程序設(shè)計中基本結(jié)構(gòu)之一。返回3.2.1條件語句(If語句)1.單行條件語句單行條件語句比較簡單,其語法格式如下:If<條件>Then<語句塊1>[Else<語句塊2>]

功能:如果“條件”成立(值為True),則執(zhí)行語句塊1,否則執(zhí)行語句塊2。3.2.1條件語句(IF語句)單行條件語句說明:(1)“條件”通常是關(guān)系表達式或邏輯表達式。(2)單行結(jié)構(gòu)條件語句要求在一行內(nèi)書寫完畢,不能超過一行255個字符的限度。(3)語句塊1和語句塊2可以是簡單語句,也可以是用冒號分隔的多個語句。3.2.1條件語句(If語句)(4)[Else<語句塊2>]是可選項,當省略該項時,

IF語句簡化為:

If<條件>Then<語句塊1>

功能:如果“條件”成立(值為True),則執(zhí)行語句塊1,否則直接執(zhí)行IF語句的下一條語句?!纠?-9】輸入三個數(shù)a,b,c,輸出三者之中最大數(shù)。3.2.1條件語句(If語句)2.塊結(jié)構(gòu)條件語句

塊結(jié)構(gòu)條件語句又稱為多行條件語句,語法格式如下:

If<條件>Then

<語句塊1>

[Else

<語句塊2>]

EndIf

功能:首先判斷<條件>,如果條件為True,則執(zhí)行Then后面的語句塊1,否則執(zhí)行Else后面的語句塊2。當執(zhí)行完Then或Else之后的語句塊后,繼續(xù)執(zhí)行EndIf后面的語句。3.2.1條件語句(If語句)塊結(jié)構(gòu)條件語句說明:(1)在塊If語句中,If語句必須是第1行語句,EndIf語句是If塊的最后一個語句。(2)語句塊可以是單條語句,也可以是多條語句。當有多條語句時,可以分別寫在多行里;如果寫在一行中,則各語句之間用冒號隔開。(3)Else子句是可選項,若有該項,Else必須單獨占一行。3.2.1條件語句(If語句)【例3-10】火車站托運行李,按規(guī)定當行李重量不超過50公斤時,每公斤運費0.75元,超過50公斤后,超過部分按每公斤0.9元收費。輸入行李重量,計算出應(yīng)付運費。【例3-11】設(shè)計一個接受口令的窗體,單擊“確定”按鈕后,如果輸入的口令正確則進入一個新窗口,如下圖(右)所示;若輸入的口令錯誤,則給出錯誤提示。無論用戶輸入什么字符,文本框中只顯示相同數(shù)量的“*”,如下圖(左)所示。3.2.1條件語句(If語句)3.條件語句的嵌套(1)一般格式的條件語句嵌套

在條件語句中,如果Then后面的語句塊1或Else后面的語句塊2中還包含另一個條件語句,則稱為條件語句的嵌套。優(yōu)秀mark>=90良好80<=mark<=90中等70<=mark<=80及格60<=mark<=70不及格mark<60grade=【例3-12】從鍵盤輸入某課程的百分制的成績

mark,要求轉(zhuǎn)換成五級制的grade,轉(zhuǎn)換條件為:3.2.1條件語句(If語句)(2)ElseIf格式的條件語句嵌套

多層條件語句嵌套容易造成程序冗長,難以確定If與Else、If與EndIf的配對關(guān)系,給編寫和閱讀程序造成困難。為了解決這些問題,VisualBasic提供了帶有ElseIf的條件語句嵌套結(jié)構(gòu)。3.2.1條件語句(If語句)格式為:If<條件1>Then<語句塊1>ElseIf<條件2>Then<語句塊2>ElseIf<條件3>Then<語句塊3>

…[Else<語句塊n>]EndIf3.2.1條件語句(If語句)功能:語句執(zhí)行時先判斷<條件1>,如果為True,執(zhí)行<語句塊1>;如果為False就判斷<條件2>,依此類推,直到找到為True的條件。一旦找到一個為True的條件,就執(zhí)行相應(yīng)的語句塊,然后執(zhí)行EndIf語句后面的代碼;如果所有的條件都是False,就執(zhí)行Else后面的<語句塊n>,然后執(zhí)行EndIf語句后面的代碼。【例3-13】使用帶ElseIf的條件語句,實現(xiàn)【例3-12】的題目要求。3.2.1條件語句(If語句)4.使用IIF函數(shù)在程序設(shè)計中可以使用IIf函數(shù)來實現(xiàn)一些比較簡單的條件判斷操作,IIf函數(shù)的語法格式為:IIf(<條件表達式>,<條件為真時的值>,<條件為假時的值>)說明:(1)“條件表達式”可以是關(guān)系表達式、布爾表達式或數(shù)值表達式。如果用數(shù)值表達式作條件,則非0為真,0為假。3.2.1條件語句(If語句)(2)“條件為真時的值”是當條件表達式為真時函數(shù)返回的值,“條件為假時的值”是當條件表達式為假時函數(shù)返回的值,它們可以是任何表達式。(3)語句

y=IIf(<條件表達式>,<條件為真時的值>,<條件為假時的值>)相當于:If<條件表達式>theny=<條件為真時的值>Elsey=<條件為假時的值>3.2.2SelectCase語句

在程序設(shè)計中,經(jīng)常會有多種情況的選擇,雖然可以使用If語句的嵌套形式實現(xiàn)多分支選擇,但結(jié)構(gòu)不夠簡明。使用SelectCase語句也可以實現(xiàn)多分支選擇,而且語句更為簡單、易讀,它根據(jù)表達式的值,來決定執(zhí)行多組語句中的哪一組。返回3.2.2SelectCase語句SelectCase語句的語法格式為:

SelectCase<測試表達式>

Case<表達式列表1>

<語句塊1>

[Case<表達式列表2>

<語句塊2>]

[Case<表達式列表n>

<語句塊n>]

[CaseElse

<語句序列n+1>]

EndSelect3.2.2SelectCase語句功能:多分支選擇語句以SelectCase開頭,以EndSelect結(jié)束,根據(jù)“測試表達式”的值,從多個Case中選擇符合條件的一個語句塊執(zhí)行。其執(zhí)行過程是:先對“測試表達式”求值,然后順序測試該值與哪個Case子句中的“表達式列表”相等,如果找到了則執(zhí)行該Case分支后的語句塊,然后執(zhí)行EndSelect后面的語句;如果沒有找到則執(zhí)行CaseElse后的語句序列,然后執(zhí)行EndSelect后面的語句。3.2.2SelectCase語句說明:(1)<測試表達式>通常是數(shù)值表達式或字符表達式,一般為一個變量。(2)<表達式列表>值的數(shù)據(jù)類型必須與<測試表達式>值的數(shù)據(jù)類型相同。3.2.2SelectCase語句(3)<表達式列表>的表達形式有以下三種:表達式:該種表達方式通常列出一些具體的取值,例如Case1,3,5,7表達式To表達式:該種表達方式常用來表示一個數(shù)值范圍,較小的數(shù)應(yīng)該放在關(guān)鍵字To的前面,例如Case3To9Is比較運算表達式:Is關(guān)鍵字與比較運算符結(jié)合,也常用來表達一個數(shù)值范圍,例如,CaseIs<10。3.2.2SelectCase語句(4)在每個Case子句中還允許使用表達式的混合形式。例如,Case2,4,6,8to10,Is>15(5)若在多個Case子句有同一種取值重復(fù)出現(xiàn),則只執(zhí)行第一個出現(xiàn)此取值的Case語句后的相應(yīng)語句塊。【例3-14】編寫程序計算貨物運費。設(shè)貨物運費單價Y元/每噸/每公里,運輸距離為S公里。單價Y與距離S的關(guān)系為:3.2.2SelectCase語句【例3-15】給定年份和月份,判斷該年是否為閏年,并根據(jù)給定的月份判斷該月有多少天(閏年的條件是年份能被4整除但不能被100整除,或者能被400整除)?分析:根據(jù)給定條件可寫出判斷閏年的布爾表達式:(yMod4=0AndyMod100<>0)Or(yMod400=0)3.3循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)是指在執(zhí)行程序語句時,需要對其中的某些語句重復(fù)執(zhí)行多次,被重復(fù)執(zhí)行的程序段稱為循環(huán)體。使用循環(huán)結(jié)構(gòu)可以簡化程序,提高程序執(zhí)行效率。

VisualBasic提供的循環(huán)結(jié)構(gòu)語句有:For…Next、Do…Loop、ForEach…Next和While…Wend等。其中最常用的是For…Next和Do…Loop語句,本節(jié)主要講解這兩個循環(huán)語句的用法。返回3.3循環(huán)結(jié)構(gòu)3.3.1Do…Loop語句3.3.2For…Next語句

3.3.3多重循環(huán)

返回3.3.1Do…Loop語句1.先判斷條件形式的Do…Loop語句

語句格式為:

Do[While|Until<條件>]

[循環(huán)體]

Loop

說明:(1)DoWhile…Loop是“當型循環(huán)”形式,即<條件>為真(True)時執(zhí)行循環(huán)體,條件為假(False)時,終止循環(huán)。返回3.3.1Do…Loop語句(2)DoUntil…Loop是“直到型循環(huán)”形式,即<條件>為假(False)時執(zhí)行循環(huán),直到條件為真(True)時,終止循環(huán)。(3)<條件>,即循環(huán)條件是一個關(guān)系表達式或者邏輯表達式,其值為True或False。(4)在Do…Loop中可以在循環(huán)體的適當位置使用ExitDo語句,以便隨時退出。當有多個循環(huán)嵌套使用時,ExitDo語句只能跳出當前的Do…Loop循環(huán)。3.3.1Do…Loop語句【例3-16】計算1+2+3+…+100。分析:采用累加求和的方法,用變量s存放累加和,s的初值為0。用變量n計數(shù),n從1開始變化到100?!纠?-17】若我國現(xiàn)有人口13億,按人口年增長0.8%計算,多少年后我國人口翻番。分析:當前人口13億,多少年后人口達26億,即人口翻番。利用循環(huán)語句,可求得逐年增長的人口數(shù)量,當達到26億時,停止循環(huán)。3.3.1Do…Loop語句2.后判斷條件形式的Do…Loop語句

語句格式為:

Do

[循環(huán)體]

Loop[While|Until<條件>]

后判斷條件形式的Do…Loop語句與先判斷條件形式的區(qū)別是首先執(zhí)行循環(huán)體,然后判斷條件的真假,決定是否繼續(xù)循環(huán)。所以,后判斷條件形式的Do…Loop語句至少執(zhí)行一次循環(huán)體。3.3.2For…Next語句

For…Next循環(huán)結(jié)構(gòu)是實現(xiàn)循環(huán)的又一種形式,它屬于計數(shù)型循環(huán),通常用于循環(huán)次數(shù)已知的程序結(jié)構(gòu)中。語法格式如下:

For<循環(huán)變量>=<初值>To<終值>[Step<步長>]

[<循環(huán)體>]

Next[<循環(huán)變量>]說明:(1)<循環(huán)變量>是一個數(shù)值型變量,用作循環(huán)計數(shù)器控制循環(huán)次數(shù)。返回3.3.2For…Next語句(2)<初值>為循環(huán)變量的初始取值,<終值>為循環(huán)變量的最后取值,它們均可以是數(shù)值型的常量、變量或表達式,它們的值可以是整數(shù)和實數(shù)。(3)<步長>用于決定循環(huán)變量每次增加的數(shù)值,即變量在變化時的增值,也可為數(shù)值型常量、變量或表達式。步長的取值可以根據(jù)初值和終值的關(guān)系分為正數(shù)或負數(shù)兩種,若初值大于終值,則必須將步長設(shè)為負數(shù);若初值小于終值,則必須將步長設(shè)為正數(shù),才有可能執(zhí)行內(nèi)部循環(huán)體。當步長為1時,可以省略Step1,步長可以為實數(shù)。3.3.2For…Next語句(4)可以在循環(huán)體中的適當位置放置ExitFor語句,以便隨時退出循環(huán)。(5)For語句的執(zhí)行過程是:首先把“初值”賦給循環(huán)變量,接著檢查循環(huán)變量是否超過終值,如果超過就停止執(zhí)行循環(huán)體跳出循環(huán),執(zhí)行Next后面的語句;否則執(zhí)行一次循環(huán)體,然后把“循環(huán)變量+步長”的值再賦給循環(huán)變量,重復(fù)上述過程。(6)循環(huán)的次數(shù)由初值、終值和步長三個因素決定,計算公式為:循環(huán)次數(shù)=Int((終值-初值)/步長+1)3.3.2For…Next語句【例3-18】求n!(n為自然數(shù))【例3-19】求

直到第50項?!纠?-20】使用隨機函數(shù)產(chǎn)生10個在指定范圍內(nèi)的隨機數(shù),隨機數(shù)的范圍在文本框內(nèi)輸入確定。3.3.3多重循環(huán)

在循環(huán)體內(nèi)可以包含VisualBasic的任何語句,當在循環(huán)體內(nèi)包含另外一個循環(huán)語句時,就形成了循環(huán)嵌套,又叫多重循環(huán)?!纠?-21】雙重循環(huán)舉例。【例3-22】設(shè)計一個窗體打印乘法九九表。返回3.3.3多重循環(huán)【例3-23】在窗體上輸出下圖所示的圖形。3.4多重窗體程序設(shè)計

在一個復(fù)雜的應(yīng)用程序中,一個工程可以包含多個窗體,即多重窗體(MultiForm),指的是應(yīng)用中有多個窗口界面,這些窗口分別顯示在屏幕上,它們之間沒有絕對的從屬關(guān)系,根據(jù)完成的任務(wù),相互聯(lián)系在一起。返回3.4多重窗體程序設(shè)計

3.4.1建立多重窗體應(yīng)用程序

3.4.2多重窗體程序設(shè)計常用的方法

3.4.3多重窗體程序設(shè)計舉例

3.4.4SubMain過程

返回3.4.1建立多重窗體應(yīng)用程序1.多重窗體的添加在多重窗體的應(yīng)用程序中,要建立的界面由多個窗體組成。要向當前工程中添加新的窗體有以下三種方法:(1)在“工程”菜單中選擇“添加窗體”命令,可實現(xiàn)新窗體的添加。這些窗體的默認名稱為Form1,F(xiàn)orm2,…。(2)單擊工具欄中的“添加窗體”按鈕,完成添加新窗體。(3)在工程資源管理器窗口中,使用鼠標右擊要添加新窗體的“工程”,在打開的快捷菜單中,選擇“添加”項中的“添加窗體”命令,也可創(chuàng)建新窗體。返回3.4.1建立多重窗體應(yīng)用程序2.移除窗體要將一個窗體從工程中移除,有以下兩種方法:①在工程資源管理器窗口中選定要移除的窗體,打開“工程”菜單,選擇“移除”命令;②在工程資源管理器窗口中,使用鼠標右擊要移除的窗體,在打開的快捷菜單中選擇“移除”命令。注意:移除的窗體并沒有被刪除,只是從該工程中移除走。3.4.1建立多重窗體應(yīng)用程序3.設(shè)置啟動窗體一個具有多個窗體的應(yīng)用程序中,必須有一個啟動窗體。默認情況下,應(yīng)用程序會把設(shè)計階段建立的第一個窗體作為啟動窗體,在應(yīng)用程序開始運行時,此窗體首先被顯示出來。3.4.1建立多重窗體應(yīng)用程序

實際應(yīng)用中如果要設(shè)置其他窗體為啟動窗體,可以采用以下操作方法:(1)從“工程”菜單中選擇“工程屬性”命令,打開“工程屬性”對話框;或者在工程資源管理器窗口中選定工程,右擊鼠標打開快捷菜單,選擇“工程屬性”命令打開“工程屬性”對話框。(2)選擇“通用”選項卡,在“啟動對象”列表框中選取要作為啟動窗體的窗體。(3)單擊“確定”按鈕。3.4.2多重窗體程序設(shè)計常用的方法

在多重窗體的程序設(shè)計中,經(jīng)常要用到四種方法:Load方法、Show方法、Hide方法、Unload方法。1.Load方法

Load方法的語法格式:

Load[窗體名稱]

使用Load方法調(diào)用的窗體只是被裝入內(nèi)存,并不會顯示出來,與此同時會產(chǎn)生一個Form_Load()事件。返回3.4.2多重窗體程序設(shè)計常用的方法2.Show方法

Show方法的語法格式:

[窗體名稱.]Show[窗體模式值]

使用Show方法可以顯示被調(diào)用的窗體,如果在調(diào)用Show方法之前沒有把窗體調(diào)入內(nèi)存,那么Show方法會自動地把窗體調(diào)入內(nèi)存。窗體模式值是可選項,取值為0或1對應(yīng)Show方法的兩種模式。當取值為0或被省略時,執(zhí)行Show方法顯示的窗體是“無模式的”,用戶可以對其他窗體進行操作;當取值為1時,執(zhí)行Show方法顯示的窗體是“模式的”,用戶不能對其他窗體進行操作,直到該窗體關(guān)閉為止。3.4.2多重窗體程序設(shè)計常用的方法3.Hide方法

Hide方法的語法格式:

[窗體名稱.]Hide

使用Hide方法可以隱藏窗體,實際上是把窗體的Visible屬性值設(shè)為False。窗體被隱藏之后,雖然屏幕上不可見,但它并沒有從內(nèi)存中移走。如果在調(diào)用Hide方法時窗體還沒有加載,那么Hide方法將加載該窗體。3.4.2多重窗體程序設(shè)計常用的方法4.UnLoad方法

UnLoad方法的語法格式:

Unload[窗體名稱]

其功能是從內(nèi)存中清除指定的窗體。

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論