VB選擇結構程序設計.ppt_第1頁
VB選擇結構程序設計.ppt_第2頁
VB選擇結構程序設計.ppt_第3頁
VB選擇結構程序設計.ppt_第4頁
VB選擇結構程序設計.ppt_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,第5章 選擇結構程序設計,本章要點: 條件語句 單行結構條件語句If.Then.Else . 塊結構條件語句If.Then.EndIf 多分支選擇語句Select Case.End Select Timer控件,單選按鈕和復選按鈕,特點: 根據(jù)條件是否成立,決定程序的執(zhí)行分支,2,5.1.1 單行結構條件語句,1. 格式 If Then Else 2. 功能 如果成立,則執(zhí)行 否則執(zhí)行,3,3. 說明 (1) 可以是: 關系表達式 布爾表達式 數(shù)值表達式:0為False;非0為True 字符串表達式: 0為False;非0為True (2) 可以沒有Else部分,這時必須有。,例: If

2、Xaaa Then Print X,4,(3) 、: 可以有多條語句,各語句之間用冒號隔開。 例: If N0 Then A=A+B:B=B+A Else A=A-B:B=B-A (4)應作為一條語句書寫。如果語句太長需要換行,必須在折行處使用續(xù)行符號。 (5) 無論條件是否成立,都具有共同出口 例: If X = 0 Then X = 1 + X Else X = 5 - X Y = 1 - X Print Y=; Y 若 X=2 Y? 若 X=-2 Y?,共同出口,(6)單行結構條件語句可以嵌套 IF . THEN.IF . THEN .ELSE .ELSE,5,【例5-1】設界面如下圖所

3、示,用文本框輸入x的值,單擊“計算Y”按鈕時,根據(jù)以下公式計算y的值。,Private Sub Command1_Click() X = Val(Text1.Text) If X = 0 Then Y = Abs(X) Else Y = Log(X) Label3.Caption = Y End Sub,6,例: 比較以下兩段程序,是否都能夠?qū)崿F(xiàn)上例的功能。,程序段1: X = Val(Text1.Text) Y = Abs(X) If X 0 Then Y = Log(X) Label3.Caption = Y,程序段2: X = Val(Text1.Text) Y = Log(X) If

4、X = 0 ThenY = Abs(X) Label3.Caption = Y,7,5.1.2 塊結構條件語句,1.格式 If Then ElseIf Then ElseIf Then Else End If,If Then 語句組1 Else 語句組2 End If,注意: 格式書寫格式,8,塊結構條件語句的功能:,9,【例5-8】某百貨公司為了促銷,采用購物打折的優(yōu)惠辦法。1000元以上者,按九五折優(yōu)惠;2000元以上者,按九折優(yōu)惠; 3000元以上者,按八五折優(yōu)惠; 5000元以上者,按八折優(yōu)惠;編寫程序,輸入購物款數(shù),計算并輸出優(yōu)惠價。,分析:設購物款數(shù)為x元,優(yōu)惠價為y元,則優(yōu)惠付款

5、公式為: x (x=5000),10,設計步驟如下: (1)建立應用程序界面并設置對象屬性,如圖所示。 (2)編寫程序代碼.命令按鈕command1的Click事件代碼如下:,ElseIf x 3000 Then y = 0.9 * x ElseIf x 5000 Then y = 0.85 * x Else y = 0.8 * x End If Text2.Text = y End Sub,Private Sub command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x 1000 Then y = x Els

6、eIf x 2000 Then y = 0.95 * x,11,注意: (1) ElseIf不能寫成Else If,即中間不能有空格。 (2) 在書寫時,可以將If語句、ElseIf子句、Else子句、和End If語句左對齊,而各語句組向右縮進若干空格,以使程序結構更清楚。 (3) 嚴格按格式要求書寫,不可隨意換行或?qū)尚泻喜⒊梢恍?。例如,對于條件結構: If x = 0 Then y = 1 Else y = 2 End If 以下兩種寫法都是錯誤的:,寫法一: If x=0 Then y=1 Else y = 2 End If,寫法二: If x = 1 Then y = 10 Else

7、 y = 20 End If,12,5.1.3 多分支選擇語句,1. 格式 Select Case Case Case Case Else End Select 2. 功能: 根據(jù)測試表達式的值,按順序匹配Case后的表達式,如果匹配成功,則執(zhí)行該Case下的語句塊,然后轉到End Select語句之后繼續(xù)執(zhí)行。,13,多分支選擇語句的功能流程圖:,14,3. 說明 : 數(shù)值或字符串表達式 Case 表達式表: 表中的表項為如下形式: (1) 表達式1,表達式2. 如: Case 1 , 3 , 5 (2) 表達式1 TO 表達式2 如: Case 10 TO 30 Case A TO Z (

8、3) Is 如: Case Is = 10 Case Is = 0 與 Case 0 相同 注意: 測試表達式的類型應與Case后表達式類型一致,且三種形式可以混用,如: Case Is -5 , 0 , 5 To 100 舉例5-8 vb5lt8,15,【例5-12】任給定一年,判斷是否是閏年,并根據(jù)給出的月份判斷是什么季節(jié)和該月有多少天。,分析: 根據(jù)閏年條件可得出判斷閏年的邏輯表達式 (Y mod 4 =0 and y mod 1000) or( y mod 400=0),每月的天數(shù)可根據(jù)月份來定,設計用戶界面如圖所示,設置5個標簽,label3label5的boardstyle設置為f

9、ixed single,Private Sub Command1_Click() Dim y As Integer, m As Integer Dim leapyear As Boolean y = Val(Text1.Text) m = Val(Text2.Text) If (y Mod 4 = 0 And y Mod 100 0) Or (y Mod 400 = 0) Then leapyear = True Label3.Caption = 閏年 Else leapyear = False Label3.Caption = 非閏年 End If,17,Select Case m Case

10、 3 To 5 Label4.Caption = spring Case 6 To 8 Label4.Caption = summer Case 9 To 11 Label4.Caption = autummn Case 12, 1, 2 Label4.Caption = winter End Select,18,Select Case m Case 1, 3, 5, 7, 8, 10, 12 Label5.Caption = 31天 Case 4, 6, 9, 11 Label5.Caption = 30天 Case 2 If leapyear Then Label5.Caption = 2

11、9天 Else Label5.Caption = 28天” End If End Select Text1.SetFocus End Sub,Private Sub Command2_Click() Text1.Text = Text1.Text = Label3.Caption = Label4.Caption = Label5.Caption = End Sub,19,如果在條件成立或不成立的情況下要繼續(xù)判斷其他條件,則可以使用嵌套的條件語句來實現(xiàn),也就是在語句組中再使用另一個條件語句。,5.1.4 條件語句的嵌套,塊結構條件語句的嵌套示例: If A = 1 Then If B = 0

12、Then Print *0* ElseIf B = 1 Then Print *1* End If ElseIf A = 2 Then Print *2* End If,20,多分支選擇語句的嵌套示例: Select Case A Case 1 Select Case B Case 0 Print *0* Case 1 Print *1* End Select Case 2 Print *2* End Select,21,多分支選擇語句與塊結構條件語句的互相嵌套示例: Select Case A Case 1 If B = 0 Then Print *0* ElseIf B = 1 Then

13、Print *1* End If Case 2 Print *2* End Select,22,5.2.1IIf函數(shù) 格式: IIf(, , ) 功能: 當?shù)闹禐門rue時,返回第2個參數(shù)的值;當?shù)闹禐镕alse時,返回第3個參數(shù)的值。(類似于具有兩個分支的If語句的功能) 例: 使用IIf函數(shù)求兩個變量A和B的較大數(shù)。 MaxAB = IIf(A B, A, B) 例: 使用IIf函數(shù)求三個變量A、B和C的最大數(shù)。 MaxAB = IIf(A B, A, B) MaxABC = IIf(MaxAB C, MaxAB, C),5.2 條件函數(shù),23,5.2.2Choose函數(shù) 格式: Choo

14、se(, ,.,) 功能: 當?shù)闹禐?時,返回的值;當?shù)闹禐?時,返回的值;。如果的值不是整數(shù),則會先四舍五入為整數(shù)。 例: 將成績1分、2分、3分、4分和5分轉換成相應的等級: 不及格(1分,2分)、及格(3分),良(4分),優(yōu)(5分)。,Grade = Choose(Score, 不及格, 不及格, 及格, 良, 優(yōu)),24,1.用途 時鐘控件(Timer)又稱計時器、定時器控件,用于有規(guī)律地定時執(zhí)行指定的工作,適合編寫不需要與用戶進行交互就可直接執(zhí)行的代碼,如計時、倒計時、動畫等。在程序運行階段,時鐘控件不可見 2.屬 性 (1)Interval(事件間隔)屬性 取值范圍在0 到 647

15、67 之間(包括這兩個數(shù)值),單位為毫秒(0.001秒),表示計時間隔。若將Interval屬性設置為0或負數(shù),則計時器停止工作。 需要屏蔽計時器,將Interval設為0;需要每0.5s產(chǎn)生一個計時器事件,則將Interval設為500;若需要每1s產(chǎn)生一個計時器事件,則將Interval設為1000。 (2)Enabled屬性 無論何時,只要時鐘控件的Enabled屬性被設置為True而且Interval屬性值大于0,則計時器開始工作(以Interval屬性值為間隔,觸發(fā)Timer事件)。 通過把Enabled屬性設置為False可使時鐘控件無效,即計時器停止工作。,5.3 計時器控件Ti

16、mer,25,3. 方法: VB沒有為時鐘控件提供有關的方法。 4. 事件: 時鐘控件只能響應Timer事件,當Enabled屬性值為True且Interval屬性值大于0時,該事件以Interval屬性指定的時間間隔發(fā)生,需要定時執(zhí)行的操作即放在該事件過程中完成。,例5-14 在窗體上設計一個能按12小時格式和24小時格式進行轉換的數(shù)字時鐘。v5lt14 分析:本題目需要使用的函數(shù)有3個。 Time函數(shù):返回系統(tǒng)時間 Hour函數(shù):返回時間表達式中的小時數(shù) Format(time,form1.tag)函數(shù):按照指定格式返回系統(tǒng)當前時間。,26,設計步驟如下: 1.建立用戶界面,如圖所示。,2

17、.設置對象屬性 Form1.tag: hh:mm:ss Label1.caption: 00:00:00 Label1.color:白色 Label1.bordestyle: 1-fixed single label2.visible:false Terval:1000,27,3.編寫事件代碼,Private Sub Timer1_Timer() Label1.Caption = Format(Time, Form1.Tag) If Hour(Time) 12 Then Label2.Caption = 下午 Else Label2.Caption = 上午 End If

18、End Sub,28,3.編寫事件代碼,Private Sub Command1_Click() If Command1.Caption = 改為12小時制 Then Form1.Tag = hh:mm:ss AM/PM Command1.Caption = 改為24小時制 Label2.Visible = True Else Form1.Tag = hh:mm:ss Command1.Caption = 改為12小時制 Label2.Visible = False End If End Sub,29,5.4 單選鈕、復選框,5.4.1 單選鈕 1. 用途 單選鈕(OptionButton)也

19、稱作選擇按鈕。一組單選鈕控件可以提供一組彼此相互排斥的選項,任何時刻用戶只能從中選擇一個選項,實現(xiàn)一種“單項選擇”的功能,被選中項目左側圓圈中會出現(xiàn)一黑點。,單選按鈕,30,2. 重要屬性 (1) Caption:文本標題。設置單選鈕的文本注釋內(nèi)容。 (2) Alignment屬性: 0:Left Justify(缺省)控件鈕在左邊,標題顯示在右邊。 1:Right Justify 控件鈕在右邊,標題顯示在左邊。 (3)Value 屬性,True: 單選鈕被選定 False: 單選鈕未被選定(缺省設置),(4) Style 屬性 0-Standard: 標準方式 1-Graphical:圖形方

20、式 說 明: 在Style屬性設置為1時,可使用 Picture 屬性(未選定時的圖標或位圖)、DownPicture屬性( 選定時的圖標或位圖)、DisabledPicture屬性(禁止選擇時的圖標或位圖),(5) Enabled 屬性 要禁用某個單選按鈕,可將其Enabled屬性設置為假。程序運行時,那么就顯示為淺灰色,表示無法選取。,31,3. 方法 SetFocus方法是單選鈕控件最常用的方法,可以在代碼中通過該方法將Value屬性設置為True。 與命令按鈕相同,使用該方法之前,必須要保證單選鈕處于可見和可用狀態(tài)(即Visible與Enabled屬性值均為True)。,4. 事件 C

21、lick事件是單選鈕控件最基本的事件,一般情況用戶無需為單選鈕編寫Click事件過程,因為當用戶單擊單選鈕時,它會自動改變狀態(tài)。 例5-15 單選鈕示例 修改 例5-14。,32,例5-17 設計滾動字幕,使“歡迎使用學生成績管理系統(tǒng)”字樣自右向左反復移動。,設計步驟如下: 1。建立如圖所示界面,增加一個計時器控件,一個label1和一個command1,四個單選按鈕。 2. 設置屬性:四個單選按鈕的style屬性設為1-graphical。Terval=100,timer.enabled=false 3.事件代碼: Private Sub Command1_Click() I

22、f Command1.Caption = &s 暫停 Then Command1.Caption = &c 繼續(xù) Timer1.Enabled = False Else Command1.Caption = &s 暫停 Timer1.Enabled = True End If End Sub,33,Private Sub Timer1_Timer() If Label1.Left + Label1.Width 0 Then Label1.Move Label1.Left - 20 Else Label1.Left = Form1.ScaleWidth End If End Sub privat

23、e Sub Option1_Click() Label1.FontName = 宋體 End Sub Private Sub Option2_Click() Label1.FontName = 黑體 End Sub Private Sub Option3_Click() Label1.FontName = 隸書 End Sub Private Sub Option4_Click() Label1.FontName = 楷體_GB2312 End Sub,34,5.4.2 復選框或檢查框,1. 用途 復選框(CheckBox)也稱作檢查框、選擇框。一組復選框控件可以提供多個選項,它們彼此獨立工作,所以用戶可以同時選擇任意多個選項,實現(xiàn)一種“不定項選擇”的功能。選擇某一選項后,該控件將顯示,而清除此選項后,消失。,2. 重要屬性 Caption、Alignment、S

溫馨提示

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

最新文檔

評論

0/150

提交評論