vb-選擇結構程序設計課件_第1頁
vb-選擇結構程序設計課件_第2頁
vb-選擇結構程序設計課件_第3頁
vb-選擇結構程序設計課件_第4頁
vb-選擇結構程序設計課件_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章選擇結構程序設計第4章選擇結構程序設計1第4章選擇結構程序設計(分支結構)選擇結構是計算機科學用來描述自然界和社會生活中分支現(xiàn)象的重要手段。其特點是根據(jù)所給定的條件為真(即條件成立)與否,而決定從各實際可能的不同分支中執(zhí)行某一分支的相應操作,并且任何情況下總有:“無論分支多寡,必擇其一;縱然分支眾多,僅選其一”。第4章選擇結構程序設計(分支結構)選擇結構是計算4.1選擇結構程序設計的概念

在VB中,實現(xiàn)選擇結構的語句有:If...Then...Else、If...Then...ElseIf、SelectCase語句。這些語句又稱為條件語句,條件語句的功能都是根據(jù)表達式的值有選擇地執(zhí)行一組語句。4.2條件表達式在條件語句中作為判斷依據(jù)的表達式稱為“條件表達式”,條件表達式的取值為布爾值:真(True)或假(False)。在VB中,True的值等于–1,F(xiàn)alse的值等于0。根據(jù)“條件”的簡單或者復雜程度,條件表達式可以分為兩類:關系表達式以及布爾表達式。4.1選擇結構程序設計的概念4.2.1關系運算符與關系表達式關系表達式是指用關系運算符將兩個表達式連接起來的式子(例如a+b>0),關系運算符又稱比較運算符,用來對兩個表達式的值進行比較,比較的結果是一個布爾值(True或False),這個結果就是關系表達式的值。4.2.1關系運算符與關系表達式1.關系運算符

VB提供的關系運算符有以下6種,見表4-1。表4-1關系運算符運算符名稱例子說明<小于3<4值為:True,強制轉(zhuǎn)換為數(shù)值型<=小于或等于3<=4值為:True>大于0>(1>0)值為:True,強制轉(zhuǎn)換為數(shù)值型>=大于或等于"aa">="ab"值為:False=等于1=True值為:False,強制轉(zhuǎn)換為數(shù)值型<>不等于4<>5值為:True1.關系運算符運算符名稱例子說明<小于3<2.關系表達式關系表達式的格式為

〈表達式1〉〈關系運算符〉〈表達式2〉[〈關系運算符〉〈表達式3〉…]關系表達式的運算次序為:先分別求出關系運算符兩側(cè)表達式的值,然后再把二者進行比較,二者的關系若與關系運算符指示的一樣,則關系運算的結果為真True,否則為假False。2.關系表達式4.2.2布爾運算符與布爾表達式對于較為復雜的條件,必須使用布爾表達式。布爾表達式是指用布爾運算符連接若干關系表達式或布爾值而成的式子。布爾表達式的值也是一個布爾值。VB提供的布爾運算符有:And、Or、Not、Xor、Eqv、Imp等6種,其中常用的為前3種,見表4-2。4.2.2布爾運算符與布爾表達式表4-2布爾運算符說明:1)布爾運算符兩側(cè)若有數(shù)值數(shù)據(jù)出現(xiàn),則將數(shù)值數(shù)據(jù)轉(zhuǎn)換為二進制數(shù)(補碼形式)進行按位運算。此時,1為真,0為假。2)布爾運算真值表見表4-3。運算符名

稱例

子說

明And與(4>5)And(3<4)值為:False,兩個表達式的值均為真,結果才為真,否則為假Or或(4>5)Or(3<4)值為:True,兩個表達式中只要有一個值為真,結果就為真,只有兩個表達式的值均為假,結果才為假Not非Not(1>0)值為:False,由真變假或由假變真,進行取“反”操作表4-2布爾運算符運算符名稱例子說明And與表4-3布爾運算真值表 a b aAndb aOrb Nota

True True True True False True False False True False False True False True True False False False False True Not由真變假,由假變真。And對兩個布爾值進行比較,如果兩個值均為真,則結果為真,否則為假。Or對兩個布爾值進行比較,如果其中一個值為真,則結果為真,只有兩個值都為假時,結果才為假。運算布爾表達式時,先運算關系表達式,再運算布爾表達式。表4-3布爾運算真值表邏輯運算的運算規(guī)則ABNotAAAndBAorBAXorBTTFTTFTFFFTTFTTFTTFFTFFF邏輯運算的運算規(guī)則ABNotAAAndBAorBA按二進制進行的邏輯運算規(guī)則ABNotAAAndBAorBAXorB110110100011011011001000按二進制進行的邏輯運算規(guī)則ABNotAAAndBAoPrint12and8=81100and1000=1000Print12or16=281100and10000=11100Print12Xor7=111100Xor111=1011Print11Xor7=121011xor111=1100注:先把數(shù)字轉(zhuǎn)換為二進制數(shù),再進行運算。(AXorB)XorB=APrint12and8=811004.2.3運算符的優(yōu)先順序

在一個表達式中進行多種操作時,VB會按一定的順序進行求值,稱這個順序為運算符的優(yōu)先順序。運算符的優(yōu)先順序見表4-4。表4-4運算符的優(yōu)先順序優(yōu)先順序運算符類型運算符1算術運算符^(指數(shù)運算)2–(負數(shù))3*、/(乘法和除法)4\(整數(shù)除法)5Mod(求模運算)6+、–(加法和減法)7字符串運算符&(字符串連接)8關系運算符=、<>、<、>、<=、>=9布爾運算符Not10And11Or4.2.3運算符的優(yōu)先順序優(yōu)先順序運算符類型運算符1算術【例4-1】設變量x=4,y=–1,a=7.5,b=–6.2,求表達式x+y>a+bAndNoty<b的值。分析:將按下面步驟計算:1)先作算術運算:3>–1.3AndNoty<b2)再作關系運算:TrueAndNotFalse3)作非運算: TrueAndTrue4)最后得: True【例4-1】設變量x=4,y=–1,a=7.5,【例4-2】判斷某個年份是閏年的根據(jù)是年份數(shù)滿足下述條件之一。條件1:能被4整除,但不能被100整除的年份都是閏年。條件2:能被100整除,又能被400整除的年份都是閏年。設變量y表示年份,寫出判斷y是否閏年的布爾表達式。解:判斷y是否滿足條件1的布爾表達式是 yMod4=0 AndyMod100<>0判斷y是否滿足條件2的布爾表達式是 yMod100=0AndyMod400=0兩者取“或”,即得判斷閏年的布爾表達式: yMod4=0AndyMod100<>0OryMod100=0AndyMod400=0【例4-2】判斷某個年份是閏年的根據(jù)是年份數(shù)滿足下述條件之一4.3單條件選擇語句IF

單條件選擇結構是最常用的雙分支選擇結構,其特點是:所給定條件(條件表達式)的值如果為真,則執(zhí)行a1塊;如果為假則執(zhí)行a2塊。其一般形式如圖4-1所示。 圖4-1單條件選擇結構的流程圖實現(xiàn)單條件選擇結構的語句是If語句,在VB中有行If語句和塊If語句兩種。如果

條件{該(選擇)條件成立嗎?}

真a1塊{條件成立時所執(zhí)行的操作塊,它一般為非空塊}假a2塊{條件不成立時所執(zhí)行的操作塊,它可為空塊}4.3單條件選擇語句IF如果條件{該(選擇)條件成立4.3.1單行結構條件語句IF…THEN…ELSE單行If語句的語法格式為If〈條件〉Then[〈語句序列1〉][Else〈語句序列2〉]說明:1)〈條件〉可以是關系表達式、布爾表達式或數(shù)值表達式。如果以數(shù)值表達式作條件,則非0值為真,0為假。2)如果沒有Else子句,〈語句序列1〉為必要參數(shù),在〈條件〉為True時執(zhí)行。4.3.1單行結構條件語句IF…THEN…ELSE【例4-3】輸入x,計算y的值。其中:【例4-3】輸入x,計算y的值。其中:

流程圖4-2所示。 圖4-2計算y值的流程圖

根據(jù)流程圖,寫出命令按鈕Command1的單擊(Click)事件代碼為:輸入x{給出x的值}如果x>=0

真y←1+x{x>=0時的y值}假y←1–2*x{x<0時的y值}輸出y{輸出y的值}流程圖4-2所示。輸入x{給出x的值}如果x>=圖4-3計算函數(shù)的值PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx>=0Theny=1+xElsey=1–2*xText2.Text=yEndSubvb-選擇結構程序設計ppt課件【例4-4】學校對學習成績優(yōu)良的學生進行獎勵,獲獎的條件如下:1)所考5門課的總分超過450分;2)每門課的成績都在88分以上;3)前3門(主課)的成績都在95分以上,其他兩門(非主課)的成績都在80分以上。輸入某學生5門課的成績s1、s2、s3、s4、s5,判斷他是否能夠獲獎。分析:依題意列出3個條件表達式:1)s1+s2+s3+s4+s5>=4502)s1>=88ANDs2>=88ANDs3>=88ANDs4>=88ANDs5>=883)s1>=95ANDs2>=95ANDs3>=95ANDs4>=80ANDs5>=80【例4-4】學校對學習成績優(yōu)良的學生進行獎勵,獲獎的條件如下

圖4-4判斷能否獲獎命令按鈕Command1的單擊(Click)事件代碼為: PrivateSubCommand1_Click() Dims1AsSingle,s2AsSingle,s3AsSingle,s4AsSingle,s5AsSingle DimpAsString s1=Val(InputBox("請輸入第1門課的成績:","輸入框",0)) s2=Val(InputBox("請輸入第2門課的成績:","輸入框",0)) s3=Val(InputBox("請輸入第3門課的成績:","輸入框",0)) s4=Val(InputBox("請輸入第4門課的成績:","輸入框",0)) s5=Val(InputBox("請輸入第5門課的成績:","輸入框",0))

t1=(s1+s2+s3+s4+s5>=450) t2=(s1>=88Ands2>=88Ands3>=88Ands4>=88Ands5>=88) t3=(s1>=95Ands2>=95Ands3>=95Ands4>=80Ands5>=80) Ift1Ort2Ort3Thenp="可以獲獎!"Elsep="不能獲獎!" p=Str(s1)&","&Str(s2)&","&Str(s3)&","&Str(s4)&","&Str(s5)&Chr(13)&p Label1.Caption="該生五門課的成績分別是:"&Chr(13)&p EndSub t1=(s1+s2+s3+s4+

【例4-5】利用輸入框函數(shù)輸入3個不同的數(shù),選出其中最大的數(shù)。命令按鈕Command1的單擊(Click)事件代碼為: PrivateSubCommand1_Click() DimaAsSingle,bAsSingle,cAsSingle a=Val(InputBox("請輸入第1個數(shù):","輸入框",0)) b=Val(InputBox("請輸入第2個數(shù):","輸入框",0)) c=Val(InputBox("請輸入第3個數(shù):","輸入框",0)) p=""&a&","&b&","&c p=p&"三個數(shù)中最大的數(shù)是:" Ifa>bAnda>cThenp=p&a Ifb>aAndb>cThenp=p&b Ifc>aAndc>bThenp=p&c Label1.Caption=p EndSub【例4-5】利用輸入框函數(shù)輸入3個不同的數(shù),選出其中最大圖4-5求3個數(shù)中最大數(shù)4.3.2使用IIF函數(shù)還可以使用IIf函數(shù)來實現(xiàn)一些比較簡單的選擇結構。IIf函數(shù)的語法結構為: IIf(〈條件表達式〉,〈真部分〉,〈假部分〉)語句y=IIf(〈條件表達式〉,〈真部分〉,〈假部分〉)相當于: If〈條件表達式〉theny=〈真部分〉Elsey=〈假部分〉vb-選擇結構程序設計ppt課件【例4-6】例4-3中命令按鈕Command1的單擊(Click)事件代碼可以改為: PrivateSubCommand1_Click() DimxAsSingle,yAsSingle x=Val(Text1.Text) y=IIf(x>=0,1+x,1–2*x) Text2.Text=y EndSub【例4-6】例4-3中命令按鈕Command1的單擊(Cli4.3.3塊結構條件語句IF…THEN…ELSE…ENDIFVB提供的塊If語句,將一個選擇結構用多個語句行來實現(xiàn)。其語法結構為: If〈條件1〉Then [〈語句序列1〉] [Else [〈語句序列2〉]] EndIf在塊形式中,If語句必須是第1行語句。If塊必須以一個EndIf語句結束。4.3.3塊結構條件語句IF…THEN…ELSE…END【例4-7】將例4-3中命令按鈕Command1的單擊(Click)事件代碼改為多行If語句: PrivateSubCommand1_Click() DimxAsSingle,yAsSingle x=Val(Text1.Text) Ifx>=0Then y=1+x Else y=1–2*x EndIf Text2.Text=y EndSub【例4-7】將例4-3中命令按鈕Command1的單擊(Cl4.3.4IF語句的嵌套1.IF語句的嵌套如果在If語句中操作塊a1塊(語句序列1)或a2塊(語句序列2)本身又是一個If語句,則稱為If語句的嵌套。

4.3.4IF語句的嵌套If語句的嵌套If<表達式1>thenIf<表達式1>thenif<表達式2>then<語句組1>if<表達式3>thenElse<語句組1>if<表達式2>thenElse<語句組2><語句組2>Elseif<表達式3>thenEndif<語句組3>ElseElseif<表達式4>then<語句組3><語句組4>EndifElse<語句組4><語句組5>EndifEndifEndifIf語句的嵌套【例4-8】鐵路托運行李,從甲地到乙地,規(guī)定每張客票托運費計算方法是行李重量不超過50kg時,0.25元/kg,超過50kg而不超過100kg時,其超過部分按0.35元/kg收費,超過100kg時,其超過部分按0.45元/kg收費。編寫程序,輸入行李重量,計算并輸出托運的費用。分析:設行李重量為wkg,應付運費為x元,則運費公式為:【例4-8】鐵路托運行李,從甲地到乙地,規(guī)定每張客票托運費計命令按鈕Command1的單擊(Click)事件代碼為: PrivateSubCommand1_Click() DimwAsSingle,xAsSingle w=Val(Text1.Text) Ifw<=50Then x=0.25*w Else Ifw<=100Then x=0.25*50+0.35*(w–50) Else x=0.25*50+0.35*50+0.45*(w–100)圖4-7計算托運費 EndIf EndIf Text2.Text=x EndSub命令按鈕Command1的單擊(Click)事件代碼為:圖4-8計算優(yōu)惠價【例4-9】某百貨公司為了促銷,采用購物打折扣的優(yōu)惠辦法:每位顧客一次購物1)在1000元以上者,按九五折優(yōu)惠;2)在2000元以上者,按九折優(yōu)惠;3)在3000元以上者,按八五折優(yōu)惠;4)在5000元以上者,按八折優(yōu)惠。輸入購物款數(shù),計算并輸出優(yōu)惠價,如圖4-8所示。分析:設購物款數(shù)為x元,優(yōu)惠價為y元,付款公式為:圖4-8計算優(yōu)惠價命令按鈕Command1的單擊(Click)事件代碼為: PrivateSubCommand1_Click() DimxAsSingle,yAsSingle x=Val(Text1.Text) Ifx<1000Then y=x Else Ifx<2000Then y=0.95*x Else Ifx<3000Then y=0.9*x ElseIfx<5000Theny=0.85*xElsey=0.08*xEndIfEndIfEndIfEndIfText2.Text=yEndSub 圖4-8計算優(yōu)惠價命令按鈕Command1的單擊(Click)事件代碼2.IF語句的嵌套格式ELSEIF例4.8中出現(xiàn)的多層If語句嵌套,使程序冗長,不便閱讀。為此VB提供了帶ElseIf的塊If語句來處理當條件為假時又內(nèi)嵌塊If語句的情形,以使程序簡化易寫。其語法結構為: If〈條件1〉Then [〈語句序列1〉] ElseIf〈條件2〉Then [〈語句序列2〉] ... [Else [〈其他語句序列〉]] EndIf2.IF語句的嵌套格式ELSEIF【例4-10】在例4-9中使用帶ElseIf的塊If語句來計算出優(yōu)惠價,只需將其中命令按鈕Command1的單擊(Click)事件代碼改為: PrivateSubCommand1_Click() DimxAsSingle,yAsSingle x=Val(Text1.Text) Ifx<1000Then y=x ElseIfx<2000Then y=0.95*x ElseIfx<3000Then y=0.9*x ElseIfx<5000Then y=0.85*x Else y=0.08*x EndIf Text2.Text=y EndSub【例4-10】在例4-9中使用帶ElseIf的塊If語句來計4.4多分支條件選擇語句SELECTCASE

多分支選擇結構的特點是:從多個選擇結構中,選擇第1個條件為真的路線作為執(zhí)行的路線。即所給定的選擇條件1為真時,執(zhí)行a1塊;如果為假則繼續(xù)檢查下一個條件。如果條件都不為真,就執(zhí)行其他操作塊,如果沒有其他操作塊,則不作任何操作就結束選擇。如圖4-9所示。圖4-9多條件多分支選擇結構的流程圖情形

條件1a1塊{條件1成立時所執(zhí)行的操作塊}條件2a2塊{條件2成立時所執(zhí)行的操作塊}……

條件nan塊{條件n成立時所執(zhí)行的操作塊}其他an+1塊{條件都不成立時所執(zhí)行的操作塊}4.4多分支條件選擇語句SELECTCASE情形條4.4.1SELECTCASE結構與語法雖然使用嵌套的辦法可以利用If語句實現(xiàn)多分支選擇,但是最好還是使用VB提供的多分支選擇結構(SelectCase語句)來實現(xiàn)多分支選擇。根據(jù)單一表達式來執(zhí)行多種可能的動作時,SelectCase更為簡捷,它根據(jù)表達式的值,來決定執(zhí)行幾組語句中的一組。4.4.1SELECTCASE結構與語法4.4.1SELECTCASE結構與語法SelectCase語句的語法格式為 SelectCase〈測試條件〉 [Case〈表達式表1〉 [〈語句序列1〉]] [Case〈表達式表2〉 [〈語句序列2〉]] ... [CaseElse [〈其他語句序列〉]] EndSelect4.4.1SELECTCASE結構與語法其中:<測試表達式>為數(shù)值型或字符串表達式;每個<表達式列表>是一個或幾個值的列表,可以是表達式、枚舉值表達式1To表達式2,Is關系運算表達式等幾種形式。如果在一個列表中有多個值,就用逗號把值隔開;每個語句組中含有零個到多個語句。SelectCase語句執(zhí)行過程:1、計算<測試表達式>的值2、將<測試表達式>的值與Case語句中的<表達式列表>中的每一個值逐一比較。如果與其中一個相匹配,則執(zhí)行相應的語句組。如果不止一個,則只執(zhí)行第一個相匹配的語句組。如果沒有相匹配的,則執(zhí)行CaseElse子句(可選)。最后執(zhí)行EndSelect語句。其中:<測試表達式>為數(shù)值型或字符串表達式;每個<表達式列表SelectCase語句表達式的值有如下規(guī)定:1)可以是一個值,也可以是幾個值的列表;2)如果列表中的值不連續(xù),就用逗號把值隔開.如:Case1,3,7,10.3)如果列表中的值是連續(xù)的,可用TO表達式,如:Case1to5,表示1到5這5個數(shù).4)列表中還可以包含Is關系表達式,如caseIs>79.表示大于79的值5)表達式值的類型必須與測試表達式的類型相同.If結構和selectcase結構相互間的轉(zhuǎn)換小結:SelectCase語句表達式的值有如下規(guī)定:Case子句中的〈表達式表〉是一個或多個如表4-5所示形式表達式的列表。表4-5表達式的形式當使用多個表達式的列表時,表達式與表達式之間要用逗號“,”隔開。形式示例說明表達式Case100*a數(shù)值或字符串表達式表達式To表達式Case1000To2000Case"a"To"n"用來指定一個值范圍,較小的值要出現(xiàn)在To之前Is關系運算表達式CaesIs<3000可配合比較運算符來指定一個數(shù)值范圍。如果沒有提供,則Is關鍵字會被自動插入Case子句中的〈表達式表〉是一個或多個如表4-5所4.4.2SELECTCASE結構的應用【例4-11】在例4-9中使用SelectCase語句來計算優(yōu)惠價,只需將其中命令按鈕Command1的單擊(Click)事件代碼改為:PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)SelectCasexCaseIs<1000y=xCaseIs<2000y=0.95*xCaseIs<3000y=0.9*xCaseIs<5000y=0.85*xCaseElsey=0.08*xEndSelectText2.Text=yEndSub4.4.2SELECTCASE結構的應用Private【例4-12】某航空公司規(guī)定在旅游的旺季7~9月份,如果訂票數(shù)超過20張,票價優(yōu)惠15%,20張以下,優(yōu)惠5%;在旅游的淡季1~5月份、10月份、11月份,如果訂票數(shù)超過20張,票價優(yōu)惠30%,20張以下,優(yōu)惠20%;其他情況一律優(yōu)惠10%。設計程序,根據(jù)月份和訂票張數(shù)決定票價的優(yōu)惠率。圖4-11計算優(yōu)惠價【例4-12】某航空公司規(guī)定在旅游的旺季7~9月份,如果訂票命令按鈕Command1的單擊(Click)事件代碼為: PrivateSubCommand1_Click() DimmAsInteger,nAsInteger,rAsInteger m=Val(Text1.Text) n=Val(Text2.Text) SelectCasem CaseIs<=5,10,11 Ifn<20Thenr=20Elser=30 Case7To9 Ifn<20Thenr=5Elser=15 CaseElse r=10 EndSelect Label4.Caption="所訂機票的優(yōu)惠率為:"&Str(r)&"%" EndSub命令按鈕Command1的單擊(Click)事件代碼為了使用更加方便,再增加如下代碼。窗體的Load事件代碼: PrivateSubForm_Load() Text1.Text=Month(Date) 'Text1中的默認值為當前月份 EndSub文本框Text1的GotFocus事件代碼: PrivateSubText1_GotFocus() Text1.SelStart=0 Text1.SelLength=Len(Text1.Text) EndSub為了使用更加方便,再增加如下代碼。文本框Text1的按健(KeyPress)事件代碼: PrivateSubText1_KeyPress(KeyAsciiAsInteger) IfKeyAscii=13Then'在Text1按〈Enter〉鍵,光標跳到Text2 IfText1.Text>0AndText1.Text<13Then Text2.SetFocus EndIf EndIf EndSub文本框Text1的按?。↘eyPress)事件代碼:文本框Text2的GotFocus事件代碼: PrivateSubText2_GotFocus() Text2.SelStart=0 Text2.SelLength=Len(Text2.Text) EndSub文本框Text2的按?。↘eyPress)事件代碼: PrivateSubText2_KeyPress(KeyAsciiAsInteger) IfKeyAscii=13Then'在Text2按〈Enter〉鍵,光標跳到Command1 IfText2.Text>0ThenCommand1.SetFocus EndIf EndSub文本框Text2的GotFocus事件代碼:4.5使用計時器控件

計時器(Timer)是VisualBasic提供的一個用于定時的特殊控件,當?shù)竭_預定時間時,系統(tǒng)會自動觸發(fā)其Timer事件,以便完成指定的操作。計時器控件在設計時顯示為一個小時鐘圖標,而在運行時則不可見,常用來做一些后臺處理。計時器的屬性和事件都相當少,能響應的事件只有自身特有的一個Timer事件,其主要屬性見表4-6。表4-6Timer控件的屬性屬性說明Enabled該屬性為True時,定時器開始工作,為False時暫停Interval該屬性用來設置定時器觸發(fā)的周期(以毫秒計)取值范圍為0~647674.5使用計時器控件屬性說明Enabled該屬性【例4-13】為一個應用系統(tǒng)設計流動字幕板,如圖4-12所示,標題“欲窮千里目,更上一層樓”在窗體中自右至左地反復移動。圖4-12電子標題板

【例4-13】為一個應用系統(tǒng)設計流動字幕板,如圖4-12所示命令按鈕Command1的Click事件代碼: PrivateSubCommand1_Click() IfCommand1.Caption="&S暫停"Then Command1.Caption="&C繼續(xù)" Timer1.Enabled=False Else Command1.Caption="&S暫停" Timer1.Enabled=True EndIf EndSub命令按鈕Command1的Click事件代碼:編寫Timer1的Timer事件代碼: PrivateSubTimer1_Timer() IfLabel1.Left+Label1.Width>0Then Label1.MoveLabel1.Left–20 Else Label1.Left=Form1.ScaleWidth EndIf EndSub編寫Timer1的Timer事件代碼:4.6提供簡單選擇的控件成組使用的選項按鈕以及復選框可以為用戶提供簡單的、事先準備的選項。4.6.1選項按鈕選項按鈕(OptionButton)又稱單選按鈕。一般來說,選項按鈕總是作為一個組(選項按鈕組)的組成部分工作的。選項按鈕組是一組相互排斥的選項按鈕,選擇一個選項按鈕就會立即清除該組中的其他按鈕。在選項按鈕組中只能單擊一個選項,即選項按鈕組只允許用戶從選擇菜單中選擇一個選項。4.6提供簡單選擇的控件1.使用選項按鈕組在窗體中定義的若干選項按鈕可以組成一個選項組,一般常用框架(Frame)控件來組織一個選項組?!纠?-14】設銀行定期存款年利率為:1年期2.25%,2年期2.70%,3年期3.24%,5年期3.60%(不計復利)。今有本金a元,5年以后使用,共有以下6種存法:存一次5年期;存一次3年期,一次2年期;存一次3年期,兩次1年期;存兩次2年期,一次1年期;存一次2年期,三次1年期;存五次1年期。 圖4-14計算利息1.使用選項按鈕組分別計算各種存法5年后到期時的本息合計,如圖4-14所示。分析:設x1、x2、x3、x5分別表示1年、2年、3年、5年定期儲蓄的利息,a表示本金,則定期的本息計算公式分別為:(1+x1)a、(1+2x2)a、(1+3x3)a、(1+5x5)a。vb-選擇結構程序設計ppt課件編寫命令按鈕Command1的單擊(Click)事件代碼:PrivateSubCommand1_Click()DimaAsSingle,yAsSingleDimx1AsSingle,x2AsSingleDimx3AsSingle,x5AsSinglea=Val(Text1.Text)x1=0.0225:x2=0.0270x3=0.0324:x5=0.0360SelectCaseTrueCaseOption1.Valuey=(1+5*x5)*aCaseOption2.Valuey=(1+3*x3)*(1+2*x2)*aCaseOption3.Valuey=(1+3*x3)*(1+x1)^2*aCaseOption4.Valuey=(1+2*x2)^2*(1+x1)*aCaseOption5.Valuey=(1+2*x2)*(1+x1)^3*aCaseOption6.Valuey=(1+x1)^5*aEndSelectText2.Text=yText1.SetFocusEndSub編寫命令按鈕Command1的單擊(Click)事件編寫文本框Text1的GotFocus事件代碼: PrivateSubText1_GotFocus() Text1.SelStart=0 Text1.SelLength=Len(Text1.Text) EndSub編寫文本框Text1的GotFocus事件代碼:2.使用圖形選項按鈕可以將選項按鈕設計成圖形按鈕的形式?!纠?-15】用圖形選項按鈕組控制流動字幕中的字體,如圖4-15所示。在例4-13中增加4個選項按鈕Option1~Option4,并修改Option1~Option4的Style屬性為:1–Graphical(圖形方式),再依次修改其Caption屬性,如圖4-15所示。圖4-15圖形選項按鈕組

2.使用圖形選項按鈕編寫選項按鈕Option1~Option4的Click事件代碼: PrivateSubOption1_Click() Text1.FontName="宋體" EndSub PrivateSubOption2_Click() Text1.FontName="隸書" EndSub PrivateSubOption3_Click() Text1.FontName="黑體" EndSub PrivateSubOption4_Click() Text1.FontName="楷體_GB2312" EndSub說明:可以為圖形按鈕添加圖形文件,以創(chuàng)建真正的“圖形按鈕”。編寫選項按鈕Option1~Option4的Clic4.6.2復選框選項按鈕組屬于多項中選擇一項的選擇,若需要選擇多項的情況,可以采用多個復選框(CheckBox)控件。當復選框被選定時,復選框中出現(xiàn)一個“”。復選框的Caption屬性可以指定出現(xiàn)在復選框旁邊的文本,而Picture屬性用來指定當復選框被設計成圖形按鈕時的圖像。復選框的狀態(tài)由其Value屬性決定:0–假,1–真,2–暗。4.6.2復選框1.使用單個復選框單個的復選框是讓用戶在兩個選項之間進行選擇,如是或否,真或假。這有點兒像兩個按鈕的選項組,只是形式上要簡單一些,操作更方便一些?!纠?-16】在上例中,增加復選框,控制選項按鈕組的顯示,如圖4-16所示。圖4-16利用復選框控制選項按鈕組的顯示

1.使用單個復選框

復選框控件Check1的Click事件代碼: PrivateSubCheck1_Click() Option1.Visible=Check1.Value Option2.Visible=Check1.Value Option3.Visible=Check1.Value Option4.Visible=Check1.Value EndSub復選框控件Check1的Click事件代碼:2.使用多個復選框一般情況下,復選框總是成組出現(xiàn),用戶可以從中選擇一個或多個選項。【例4-17】設計一個個人資料輸入窗口,使用選項按鈕組輸入性別與民族,使用復選框輸入個人愛好,如圖4-17所示。圖4-17使用多個復選框 2.使用多個復選框編寫命令按鈕Command1的Click事件代碼: PrivateSubCommand1_Click() IfText1.Text=""Then a=InputBox("您忘了輸入姓名!","注意","請在此輸入姓名") Ifa=""Ora="請在此輸入姓名"ThenExitSub Text1.Text=a EndIf p1=Text1.Text+"," p2=IIf(Option1,"男","女")+"," p3=IIf(Option3,"漢族","少數(shù)民族") p4=",喜歡:" IfCheck1.Value=1Thenp4=p4+Check1.Caption+"、" IfCheck2.Value=1T

溫馨提示

  • 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

提交評論