第5章wif選擇結(jié)構(gòu)程序設(shè)計(jì)11_第1頁
第5章wif選擇結(jié)構(gòu)程序設(shè)計(jì)11_第2頁
第5章wif選擇結(jié)構(gòu)程序設(shè)計(jì)11_第3頁
第5章wif選擇結(jié)構(gòu)程序設(shè)計(jì)11_第4頁
第5章wif選擇結(jié)構(gòu)程序設(shè)計(jì)11_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Visual Basic 程序設(shè)計(jì)第5章 選擇結(jié)構(gòu)程序設(shè)計(jì)順序程序設(shè)計(jì)順序程序設(shè)計(jì) 和其它程序設(shè)計(jì)語言一樣,Visual Basic語言的語句也是用來向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令的,一個(gè)語句可以產(chǎn)生若干條計(jì)算機(jī)操作指令,而一個(gè)實(shí)際的程序又包括若干條語句,每條語句都是用來完成一定的操作任務(wù)的。從前面的學(xué)習(xí)中,我們可以知道用Visual Basic語言設(shè)計(jì)的程序主體包括界面和事件過程兩部分,事件過程的設(shè)計(jì)其實(shí)就是這里的程序設(shè)計(jì)的主要部分。在日常的生活和工作中,常常不僅需要簡單的按部就班的處理流程,還需要根據(jù)條件進(jìn)行分析、比較、判斷、重復(fù)等復(fù)雜的處理過程。在Visual Basic語言中,對各種實(shí)際問題

2、的解決也是通過基本結(jié)構(gòu)的組合實(shí)現(xiàn)的。所以,先來了解一下程序的基本控制結(jié)構(gòu)。Visual Basic 程序設(shè)計(jì) 程序控制流程及流程圖程序控制流程及流程圖程序控制流程及流程程序控制流程及流程圖圖 程序的控制流程即程序的控制結(jié)構(gòu),指控制程序執(zhí)行的流程。如果沒有任何控制程序流程的語句干涉,程序便按從左至右、由上而下的順序運(yùn)行其中包含的語句,直到整個(gè)程序結(jié)束,常稱這種程序結(jié)構(gòu)為順序結(jié)構(gòu)。對于簡單問題,可以只用這種單向的、簡單的順序流程實(shí)現(xiàn),但對復(fù)雜問題,會(huì)要求程序?qū)Ω鞣N不同的狀況進(jìn)行不同的處理,那么這種一路到底的模式是遠(yuǎn)遠(yuǎn)不能滿足需要的。 流程圖是用一些框圖來描述程序的執(zhí)行過程。因?yàn)橛脠D形表示程序結(jié)構(gòu)直

3、觀形象,并易于理解。美國國家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI(American National Standard Institute)規(guī)定了一些常用的流程圖符號(hào)的畫法,如圖所示。 或輸入/出框 判斷框 處理框 流程線 連接點(diǎn) Visual Basic 程序設(shè)計(jì) 三大類程序控制流程三大類程序控制流程1966年,Bohra 和Jacopini提出了以下三種最基本的程序流程結(jié)構(gòu),它們是構(gòu)成一個(gè)好程序的基本單元。(1)、順序結(jié)構(gòu)如圖5.4所示,是用流程圖表示的順序結(jié)構(gòu)。其中s1和s2兩個(gè)框是順序執(zhí)行的,也即在執(zhí)行完s1框所指定的操作后,必然接著執(zhí)行s2框所指定的操作。順序結(jié)構(gòu)是最簡單的一種基本結(jié)構(gòu)。(2)、選擇結(jié)

4、構(gòu),或稱選取結(jié)構(gòu),或稱分支結(jié)構(gòu)。如圖5.5所示是一個(gè)選擇結(jié)構(gòu)的流程圖。此結(jié)構(gòu)中必含一個(gè)判斷框。根據(jù)給定的條件c是否成立而選擇執(zhí)行s1框或s2框,然后,繼續(xù)向下進(jìn)行。(3)當(dāng)條件當(dāng)條件P P成立時(shí),執(zhí)行成立時(shí),執(zhí)行A A,再判斷再判斷P P條件是否成立,若成立,再次條件是否成立,若成立,再次執(zhí)行執(zhí)行A A,如此重復(fù)直到條件如此重復(fù)直到條件P P不成立才停止循環(huán)。不成立才停止循環(huán)。先執(zhí)行先執(zhí)行A A框操作,然框操作,然后判斷條件后判斷條件P P是否成立,若不成立,再次執(zhí)行是否成立,若不成立,再次執(zhí)行A A操作;然后再對操作;然后再對P P進(jìn)行進(jìn)行判斷,如此反復(fù)直到給定的判斷,如此反復(fù)直到給定的P

5、P條件成立為止條件成立為止圖5.55.6所示 Visual Basic 程序設(shè)計(jì)s1s2s2cs1s2真假圖5.4順序結(jié)構(gòu) 圖5.5 選擇結(jié)構(gòu)c假s真cs假真 圖5.6 While型循環(huán) 圖5.7 Until循環(huán) Visual Basic 程序設(shè)計(jì)本章要點(diǎn): 1、If.Then (If語句的單行格式,有稱單條件單分支語句)2、塊結(jié)構(gòu)條件語句IfThenEnd If的使用3多分支條件語句ElseIf的應(yīng)用 4 多分支選擇語句Select CaseEnd Selec的應(yīng)用 選擇結(jié)構(gòu)是一種常用的基本結(jié)構(gòu),其特點(diǎn)是根據(jù)所給定的選擇條件為真或假,來決定從不同操作中選擇執(zhí)行一種操作。 Visual Bas

6、ic 程序設(shè)計(jì)5.1 行與塊If條件語句5.4 Select Case 語句5.5 應(yīng)用舉例返回退出5.2 塊If語句的嵌套5.3 ElseIf條件語句Visual Basic 程序設(shè)計(jì) 單行結(jié)構(gòu)條件語句 單行條件語句比較簡單,其格式如下:格式:IF THEN ELSE 功能:根據(jù)“條件”的值,來判斷執(zhí)行哪個(gè)語句組。說明: 條件可以是關(guān)系表達(dá)式或邏輯表達(dá)式。 若缺省ELSE語句,即為單分支語句。該命令是單行條件語句,必須放在一行上。 可以利用嵌套解決超過兩個(gè)分支以上的情況。Visual Basic 程序設(shè)計(jì)例例1:1:如果如果X0X0輸出輸出1,1,否則輸出否則輸出-1-1。Private S

7、ub Form_Click() X = InputBox(X=, X) X = Val(X) If X 0 Then text1.text= “1” Else text1.text= “1”End SubVisual Basic 程序設(shè)計(jì)Private Sub Form_Click() Intage = InputBox(X=, intage) intager = Val(intage) If intager =60 Then Print “退休” Else Print “在職”End Sub例例2:2:Visual Basic 程序設(shè)計(jì)由鍵盤輸入三個(gè)數(shù),輸出其中由鍵盤輸入三個(gè)數(shù),輸出其中最大

8、的數(shù)。最大的數(shù)。分析:用A、B、C 表示這三個(gè)數(shù)。MAX表示最大的數(shù)。首先把MAX=A,然后把MAX與B比較,如果MAX B ,則MAX 與B互換。再把MAX與C比較,如果MAX C ,則MAX 與C互換。這樣三個(gè)數(shù)中MAX最大,輸出MAX即可。Private Sub Form_Click()a = InputBox(a, a)a = Val(a)b = InputBox(b, b)b = Val(b)c = InputBox(c, c)c = Val(c)Max = aIf Max b Then Max = bIf Max c Then Max = cPrint MAX=; MaxEnd S

9、ubVisual Basic 程序設(shè)計(jì)塊塊If語句(語句(If.Then語句)語句)塊If語句是用來判斷條件成立與否,然后決定下一步怎么執(zhí)行的一種控制語句,這種選擇結(jié)構(gòu)是最常用的雙選擇結(jié)構(gòu),即只有兩種操作可以選擇。如果條件為真,執(zhí)行其中一個(gè)操作;如果條件為假,則執(zhí)行另外一個(gè)操作。塊結(jié)構(gòu)if語句語法格式如下:If Then Else End IfVisual Basic 程序設(shè)計(jì)說明:為必選項(xiàng),它可以是關(guān)系表達(dá)式、布爾表達(dá)式、數(shù)值表達(dá)式或字符串表達(dá)式,但總的說來它是一個(gè)邏輯值的表達(dá)式,其返回結(jié)果必須是True或False。對于數(shù)值表達(dá)式,VB將0作為False,非0作為True 來處理;對于字符

10、串表達(dá)式,VB只允許出現(xiàn)包含數(shù)字的字符串,當(dāng)字符串中的數(shù)字值為0時(shí),則認(rèn)為是False,否則認(rèn)為是True。和可以是一條語句,也可以是多條語句。Visual Basic 程序設(shè)計(jì)單行結(jié)構(gòu)If語句的執(zhí)行過程是這樣的:首先計(jì)算的值,如果結(jié)果為True,則執(zhí)行,否則,執(zhí)行。T(真)F(假)條件滿足?語句塊1語句塊2End If之后的語句選擇結(jié)構(gòu)流程圖Visual Basic 程序設(shè)計(jì)例例 對任意的三個(gè)數(shù),按從小到大的順序輸出對任意的三個(gè)數(shù),按從小到大的順序輸出 Private Sub Form_Click() a = InputBox(a, a) a = Val(a) b = InputBox(b,

11、 b) b = Val(b) c = InputBox(c, c) c = Val(c) If ab Then x=a a=b b=x End If If ac Then x=a a=c c=x End If If bc Then x=b b=c c=x End If PRINT A,B,CEnd Sub借用第三個(gè)變量借用第三個(gè)變量交換交換a、b的值的值借用第三個(gè)變量借用第三個(gè)變量交換交換a、c的值的值借用第三個(gè)變量借用第三個(gè)變量交換交換b、c的值的值解題步驟:解題步驟: 交換交換A、B的值的值 交換交換A、C的值的值 交換交換B、C的值的值Visual Basic 程序設(shè)計(jì)【例】設(shè)計(jì)界面如圖

12、所示,用文本框Text1輸入x的值,單擊按鈕時(shí),在標(biāo)簽Label1中顯示出x的絕對值。 運(yùn)行界面“求絕對值”按鈕Command1的單擊事件過程如下:Private Sub Command1_Click() x = Val(Text1.Text) 將文本框中的字符內(nèi)容轉(zhuǎn)換成數(shù)值 If x 0 Then Label1.Caption = x Else Label1.Caption = -x 根據(jù)x的正負(fù)確定顯示結(jié)果 End ifEnd SubVisual Basic 程序設(shè)計(jì)使用該語句時(shí),應(yīng)該注意以下問題:(1)整個(gè)塊結(jié)構(gòu)必須以If開始,以End If結(jié)束。(2)塊結(jié)構(gòu)If 語句中Then后面的語

13、句不能與其寫在同一行上,否則,必須加上分隔符。(3)塊結(jié)構(gòu)中的是可以省略的。省略后即簡化為以下形式: If Then End If 這種形式的If語句主要用來判斷一些操作是否執(zhí)行。當(dāng)條件成立時(shí),根據(jù)完成的一定的操作;而當(dāng)條件不成立時(shí)不做任何處理,直接執(zhí)行下條語句。Visual Basic 程序設(shè)計(jì)例如,上例也可以采用下列程序段來實(shí)現(xiàn)。x = Val(Text1.Text)If x 0 Then x = -x 取負(fù)數(shù)x的相反數(shù)End If Label1.Caption = x (4)在塊結(jié)構(gòu)中,If后面顯式的給出了判斷條件,Else后面雖然沒有顯式的給出一個(gè)條件,但相當(dāng)于存在一個(gè)與If部分相反的

14、隱含條件。返回Visual Basic 程序設(shè)計(jì) 在實(shí)際應(yīng)用中,經(jīng)常會(huì)遇到“多分支”選擇的程序,即從多種情況中選擇執(zhí)行其中一種情況,這時(shí),就要使用塊if語句的嵌套。 塊結(jié)構(gòu)If語句可以嵌套,即在上述結(jié)構(gòu)中的和部分仍然可以包含另外一個(gè)塊結(jié)構(gòu)If語句。如果在條件成立或不成立的情況下要繼續(xù)判斷其他條件,則可以在語句塊的位置上再使用另外一個(gè)塊結(jié)構(gòu)條件語句。5.2 塊塊ifif語句的嵌套語句的嵌套If子句部分的嵌套結(jié)構(gòu)Else子句部分的嵌套結(jié)構(gòu)內(nèi)內(nèi)層層外層外層中層中層Visual Basic 程序設(shè)計(jì)使用嵌套語句時(shí)應(yīng)注意以下問題:(1)如果存在嵌套時(shí),語句中的每一個(gè)Else必須和一個(gè)If相對應(yīng),應(yīng)避免產(chǎn)

15、生混亂。在書寫時(shí),可以將同一層的If子句和Else子句左對齊,內(nèi)層的各語句塊相對于外層向右縮進(jìn)若干空格,以使程序結(jié)構(gòu)更加清楚,便于閱讀和查錯(cuò)。(2)每一個(gè)塊結(jié)構(gòu)都必須以If開始,以End If結(jié)束。(3)內(nèi)層嵌套的塊結(jié)構(gòu)中除了滿足該層規(guī)定的條件外,還必須首先滿足外層結(jié)構(gòu)中相應(yīng)位置的條件。(4)VB中對塊嵌套的層數(shù)沒有限制,在嵌套的塊結(jié)構(gòu)中仍然可以繼續(xù)嵌套其他的塊結(jié)構(gòu),但嵌套時(shí)外層的塊結(jié)構(gòu)必須完全“包住”內(nèi)層的塊結(jié)構(gòu),不能相互“騎跨”。(5)利用塊If語句的嵌套可以解決“多分支”選擇的問題。Visual Basic 程序設(shè)計(jì)【例】建立如圖所示的界面,輸入任一點(diǎn)的坐標(biāo)(X,Y),判斷該點(diǎn)位于哪個(gè)象

16、限。在平面直角坐標(biāo)系中,點(diǎn)所在的象限有以下4種情況: X0 ,Y0 點(diǎn)位于第一象限內(nèi) X0, Y0 點(diǎn)位于第四象限內(nèi) X0 點(diǎn)位于第二象限內(nèi) X0, Y 0 Then If y 0 Then Print 該點(diǎn)位于第一象限 Else Print 該點(diǎn)位于第四象限 End If Else If y 0 Then Print 該點(diǎn)位于第二象限 Else Print 該點(diǎn)位于第三象限 End If End IfEnd Sub程序代碼如下:程序運(yùn)行界面Visual Basic 程序設(shè)計(jì)【例】編程序求一元二次方程ax2+bx+c=0的根(a不等于零)。分析:根據(jù)數(shù)學(xué)知識(shí),要求一元二次方程的根,必須知道方程

17、的三個(gè)系數(shù)a、b、c的值,然后根據(jù)判別式b2-4ac的值的情況判斷方程的根。方程的根有以下三種情況:當(dāng)b2-4ac0時(shí),方程有兩個(gè)不相等的實(shí)根;當(dāng)b2-4ac=0時(shí),方程有兩個(gè)相等的實(shí)根;當(dāng)b2-4ac= 0 Then If dert 0 Then r = Sqr(dert) / (2 * a) x1 = p + r x2 = p - r Else x1 = p x2 = p End If Label5.Caption = x1= & x1 & str & x2= & x2Else r = Sqr(-dert) / (2 * a) Label5.Caption = x1= & p & + &

18、r & i & str & x2= & p & - & r & iEnd IfEnd Sub返回Visual Basic 程序設(shè)計(jì)5.3 ElseIf語句語句ElseIf子句的格式:If 條件1 then 語句塊1ElseIf 條件2 then 語句塊2Else 語句塊n+1End IfVisual Basic 程序設(shè)計(jì)對ElseIf子句的格式說明:(1)可以放置任意多個(gè)ElseIf子句。(2)關(guān)鍵字ElseIf中間沒有空格,不能寫成Else If。ElseIf子句的功能:依次判斷條件,如某一條件成立,則執(zhí)行其下面的語句塊;如果所有條件均不成立,則執(zhí)行Else后面的語句。在相應(yīng)語句塊執(zhí)行完后,

19、會(huì)跳過End If,執(zhí)行其后面的語句。Visual Basic 程序設(shè)計(jì) Else If結(jié)構(gòu)執(zhí)行過程Visual Basic 程序設(shè)計(jì)功能說明:(1)不管有幾個(gè)ElseIf子句,程序執(zhí)行完一個(gè)語句塊后,其余ElseIf子句不再執(zhí)行。(2)當(dāng)多個(gè)ElseIf子句中的條件都成立時(shí),只執(zhí)行第一個(gè)條件成立的子句中的語句塊。因此,在使用ElseIf語句時(shí),要特別注意各判斷條件的前后次序?!纠枯斎胍粋€(gè)學(xué)生的成績score,根據(jù)其所在分?jǐn)?shù)段給出他的考試等級。score60時(shí),打印“不及格”;60=score=70時(shí),打印“一般”;70score=80時(shí),打印“中等”; 80score=90時(shí),打印“良好”

20、;90score100時(shí),打印“成績有問題”。 Visual Basic 程序設(shè)計(jì)該程序就是一個(gè)多分支選擇的問題,可以使用ElseIf語句實(shí)現(xiàn)。程序代碼如下:Private Sub Command1_Click() Dim score As Single score = Val(Text1.Text) If score = 60 And score 70 And score 80 And score 90 And score = 100 Then Print 優(yōu)秀 Else Print 成績有問題 End IfEnd SubVisual Basic 程序設(shè)計(jì)因?yàn)橹挥性谇耙粋€(gè)條件不成立的情況下,

21、才有可能繼續(xù)判斷下一個(gè)條件是否成立,所以,上例中的條件部分也可以進(jìn)一步簡化,改成如下形式:If score 60 Then Print 不及格ElseIf score = 70 Then Print 一般ElseIf score = 80 Then Print 中等ElseIf score = 90 Then Print 良好Elseif score = 100 Then Print 優(yōu)秀Else Print 成績有問題End IfVisual Basic 程序設(shè)計(jì)【例】設(shè)計(jì)一個(gè)口令檢測程序,當(dāng)用戶輸入的口令正確時(shí),顯示“你已成功進(jìn)入本系統(tǒng)”,否則,顯示“口令錯(cuò)!請重新輸入”。如果連續(xù)三次輸入

22、了口令仍不正確,則提示“你無權(quán)使用本系統(tǒng)”。分析:假設(shè)使用一個(gè)文本框Text1來接收口令,運(yùn)行時(shí)用戶輸入完口令并按回車鍵后系統(tǒng)才對輸入的口令進(jìn)行檢查,因此本例使用了Text1的KeyUp事件。當(dāng)焦點(diǎn)位于文本框內(nèi),按下鍵盤上任一鍵后會(huì)產(chǎn)生KeyUp事件,同時(shí)返回按鍵代碼KeyCode?;剀囨I的代碼為13,所以程序首先判斷用戶是否在Text1中按下了回車鍵,若KeyCode13,表示口令輸入完。 說明:在程序中是使用了一個(gè)靜態(tài)變量I,用于統(tǒng)計(jì)輸入錯(cuò)誤口令的次數(shù)。靜態(tài)變量I只在第一次判斷口令時(shí)被初始化為0,以后每次執(zhí)行該過程時(shí),如果口令錯(cuò)誤,則I的值累加1,因此,當(dāng)I的值為3時(shí),表示用戶已經(jīng)連續(xù)三次

23、輸入了錯(cuò)誤口令。Visual Basic 程序設(shè)計(jì)程序代碼如下:Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)Static I As IntegerIf KeyCode = 13 Then If LCase(Text1.Text) = abcd Then Label2.Caption = 你已成功進(jìn)入本系統(tǒng) ElseIf I 20 測試表達(dá)式 20Visual Basic 程序設(shè)計(jì)Select Case語句功能:根據(jù)“測試表達(dá)式”的值,選擇第一個(gè)符合條件的語句塊執(zhí)行。Select Case語句的執(zhí)行過程是:先求“測試表

24、達(dá)式”的值,然后順序測試該值符合哪一個(gè)Case子句中情況,如果找到了,則執(zhí)行該Case子句下面的語句塊,然后執(zhí)行End Select后面的語句;如果沒找到,則執(zhí)行Case Else后面的語句塊,然后執(zhí)行End Select后面的語句。Visual Basic 程序設(shè)計(jì)【例】用Select Case語句代替ElseIf語句來實(shí)現(xiàn)成績的鑒定。保持界面不變,雙擊“鑒定”按鈕,修改代碼如下:Private Sub Command1_Click() 單擊“鑒定”按鈕 Dim x! x = val(Text1.Text) Select Case x Case Is = 90 Text2.Text = 優(yōu)秀

25、 Case Is = 80 在x90不成立時(shí),再判斷x80是否成立 Text2.Text = 良好 Case Is = 70 Text2.Text = 中 Case Is = 60 Text2.Text = 及格 Case Else Text2.Text = 不及格 End SelectEnd SubVisual Basic 程序設(shè)計(jì)【例】某交易中介公司按交易雙方成交額收取中介費(fèi)用,收費(fèi)標(biāo)準(zhǔn)如下:交易額=10000 5%5000=交易額10000 3%1000=交易額5000 2%500=交易額1000 1%交易額500 免費(fèi)假設(shè)交易額通過文本框Text1輸入,則“計(jì)算費(fèi)用”按鈕Command

26、1的事件代碼如下:Private Sub Command1_Click() Trade=Val(Text1.Text) Select Case Trade Case Is500 Discount=0Visual Basic 程序設(shè)計(jì) Case Is1000 Discount=0.01 Case Is5000 Discount=0.02 Case Is10000 Discount=0.03 Case Else Discount=0.05 End Select Fee = Trade * Discount Print FeeEnd Sub在解決多分支選擇情況的程序時(shí),采用Select Case語句

27、比較方便,并且程序結(jié)構(gòu)清楚,便于閱讀和修改。 Visual Basic 程序設(shè)計(jì) IIf 函數(shù)VB中還提供了一個(gè)選擇函數(shù)IIf 函數(shù),用來實(shí)現(xiàn)簡單的選擇結(jié)構(gòu)。其功能是根據(jù)表達(dá)式的值,來返回兩部分中的一個(gè)。其語法格式為:IIf(, , )0,340, 32xxxx例如,求分段函數(shù):y= 函數(shù)值的語句可以簡單地表示為:y=Iif(x0,2*x+3,4-3*x)返回Visual Basic 程序設(shè)計(jì)5.5 應(yīng)用舉例應(yīng)用舉例【例】:猜數(shù)游戲。由計(jì)算機(jī)任意設(shè)置一個(gè)1100之間的整數(shù),然后讓用戶猜出這個(gè)數(shù)是多少。說明:為了引導(dǎo)用戶猜中由計(jì)算機(jī)設(shè)置的隨機(jī)數(shù),可以在猜數(shù)的過程中給以適當(dāng)?shù)奶崾?。即在每次猜完之?/p>

28、,計(jì)算機(jī)顯示相應(yīng)的提示信息,用戶可以根據(jù)這些信息繼續(xù)猜,逐步接近要猜的數(shù),直至猜中。當(dāng)用戶猜的數(shù)與目標(biāo)數(shù)之間相差不超過2時(shí),提示“接近了”;相差不超過10時(shí),提示“有些遠(yuǎn)”;相差超過10時(shí),提示“太遠(yuǎn)了”。Visual Basic 程序設(shè)計(jì)Private Sub Form_Load() Cls Randomize number = Int(Rnd * 100) + 1 MsgBox 計(jì)算機(jī)設(shè)置了一個(gè)1100之間的整數(shù), & vbCrLf & _ 請您猜出這個(gè)數(shù)是多少。 & vbCrLf & _ 如果輸入-1,則停止猜數(shù),并輸出要猜的數(shù)。End SubPrivate Sub Text1_KeyU

29、p(KeyCode As Integer, Shift As Integer)Dim guess, diff, k As IntegerIf KeyCode = 13 Then guess = Val(Text1.Text) If guess = -1 Then MsgBox 要猜的數(shù)是 & number: Exit Sub diff = Abs(number - guess)Visual Basic 程序設(shè)計(jì) If diff = 0 Then k = 0 ElseIf diff = 2 Then k = 1 ElseIf diff = 10 Then k = 2 Else k = 3 End

30、 If Select Case k Case 0 MsgBox 恭喜你,猜對了! Case 1 MsgBox 接近了,再努力! Case 2 MsgBox 有些遠(yuǎn),再努力! Case 3 MsgBox 太遠(yuǎn)了,繼續(xù)努力! End SelectEnd IfEnd SubVisual Basic 程序設(shè)計(jì)【例】:編程計(jì)算某年某月某日是星期幾。分析:該程序大致可分為三部分:(1)輸入部分:輸入年、月、日,可通過InputBox函數(shù)來實(shí)現(xiàn)。(2)計(jì)算部分:用來完成對輸入的日期是星期幾的計(jì)算,因此它是本題的關(guān)鍵。在這一部分應(yīng)解決以下幾個(gè)問題:判斷平年、閏年。凡是能被4 整除但不能被100整除的年份為閏年

31、,如1980年。凡是能被400整除的年份為閏年,如2000年。除以上兩種情況以外的其余年份都是平年。計(jì)算總天數(shù)??偺鞌?shù)的計(jì)算公式為:總天數(shù)=平年累積值+閏年累積值+月累積值+日期計(jì)算星期幾。查閱有關(guān)資料可知,1899年12月31日是星期日,因此可把week的值定為1;week的初值加上總天數(shù)并對7取模,所得的余數(shù)即為星期幾。(3)輸出部分:把計(jì)算結(jié)果以適當(dāng)?shù)母袷捷敵?。Visual Basic 程序設(shè)計(jì)程序如下 :Private Sub Form_Click()輸入部分Dim Y, M, D, Month2, day0, day1, daysum, week As IntegerY = Inpu

32、tBox(請輸入當(dāng)前日期 & 先輸入年份(1901-2100)M = InputBox(請輸入月份(112):)D = InputBox( 請輸入日(131):)計(jì)算部分If (Y Mod 100 0) And (Y Mod 4 = 0) Or (Y Mod 100 = 0) And (Y Mod 400 = 0) Then Month2 = 29Else Month2 = 28End IfVisual Basic 程序設(shè)計(jì)Select Case M Case 1 day0 = 31 day1 = 0 Case 2 day0 = Month2 day1 = 31 Case 3 day0 = 31 day1 = Month2 + 31 Case 4 day0 = 30 day1 = Month2 + 62 Case 5 day0 = 31 day1 = Month2 + 92 Case 6 day0 = 30 day1 = Month2 + 123 Case 7 day0 = 31 day1 = Month2 + 153 Case 8 day0 = 31 day1 = Month2 + 184 Case 9 day0 = 30 day1 = Month2 + 215 C

溫馨提示

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

最新文檔

評論

0/150

提交評論