第4章選擇結(jié)構(gòu)程序設(shè)計(jì)_第1頁(yè)
第4章選擇結(jié)構(gòu)程序設(shè)計(jì)_第2頁(yè)
第4章選擇結(jié)構(gòu)程序設(shè)計(jì)_第3頁(yè)
第4章選擇結(jié)構(gòu)程序設(shè)計(jì)_第4頁(yè)
第4章選擇結(jié)構(gòu)程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(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)介

會(huì)計(jì)學(xué)1第4章選擇結(jié)構(gòu)程序設(shè)計(jì)2邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符:Not,And,OrXor第1頁(yè)/共68頁(yè)說(shuō)明:(1)邏輯運(yùn)算符的優(yōu)先級(jí)不相同,Not(邏輯非)最高,但它低于關(guān)系運(yùn)算。(2)VB中常用的邏輯運(yùn)算符是Not、And和Or。它們用于將多個(gè)關(guān)系表達(dá)式進(jìn)行邏輯判斷。例如:數(shù)學(xué)上表示某個(gè)數(shù)在某個(gè)區(qū)域時(shí)用表達(dá)式:10≤X<20

用VB程序中應(yīng)寫成:X>=10AndX<20

如果寫成如下形式將是錯(cuò)誤的:

10<=x<20或

10<=xOrx<20第2頁(yè)/共68頁(yè)3運(yùn)算符的優(yōu)先順序

算術(shù)運(yùn)算符--->字符串運(yùn)算符---關(guān)系運(yùn)算符--布爾運(yùn)算符【例4-1】設(shè)變量x=4,y=–1,a=7.5,b=–6.2,求表達(dá)式x+y>a+bAndNoty<b的值。分析:將按下面步驟計(jì)算:

(1)先作算術(shù)運(yùn)算:3>–1.3AndNoty<b(2)再作關(guān)系運(yùn)算:TrueAndNotFalse(3)作非運(yùn)算:TrueAndTrue(4)最后得:True第3頁(yè)/共68頁(yè)【例4-2】判斷某個(gè)年份是閏年的根據(jù)是年份數(shù)滿足下述條件之一。

(1)能被4整除,但不能被100整除的年份都是閏年。

(2)能被100整除,又能被400整除的年份都是閏年。設(shè)變量y表示年份,寫出判斷y是否閏年的布爾表達(dá)式。解:判斷y是否滿足條件(1)的布爾表達(dá)式是yMod4=0AndyMod100<>0

判斷y是否滿足條件(2)的布爾表達(dá)式是yMod100=0AndyMod400=0

兩者取“或”,即得判斷閏年的布爾表達(dá)式y(tǒng)Mod4=0AndyMod100<>0OryMod100=0AndyMod400=0第4頁(yè)/共68頁(yè)4.3單條件選擇語(yǔ)句IF

1.單行結(jié)構(gòu)條件語(yǔ)句IF…THEN…ELSEIf〈條件〉Then[〈語(yǔ)句序列1〉][Else〈語(yǔ)句序列2〉]【例4-3】輸入x,計(jì)算y的值。其中:第5頁(yè)/共68頁(yè)

設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。

(2)編寫程序代碼。寫出命令按鈕Command1的單擊(Click)事件代碼為PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx>=0Theny=1+xElsey=1–2*xText2.Text=yEndSub第6頁(yè)/共68頁(yè)【例4-4】學(xué)校對(duì)學(xué)習(xí)成績(jī)優(yōu)良的學(xué)生進(jìn)行獎(jiǎng)勵(lì),獲獎(jiǎng)的條件如下:

(1)所考5門課的總分超過(guò)450分。

(2)每門課的成績(jī)都在88分以上。

(3)前3門(主課)的成績(jī)都在95分以上,其他兩門(非主課)的成績(jī)都在80分以上。輸入某學(xué)生5門課的成績(jī)s1、s2、s3、s4、s5,判斷他是否能夠獲獎(jiǎng)。設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。

(2)編寫程序代碼。第7頁(yè)/共68頁(yè)圖4-5判斷能否獲獎(jiǎng)可以寫出命令按鈕Command1的單擊(Click)事件代碼為:PrivateSubCommand1_Click()Dims1AsSingle,s2AsSingle,s3AsSingle,s4AsSingle,s5AsSingleDimpAsStrings1=Val(InputBox("請(qǐng)輸入第1門課的成績(jī):","輸入框",0))s2=Val(InputBox("請(qǐng)輸入第2門課的成績(jī):","輸入框",0))s3=Val(InputBox("請(qǐng)輸入第3門課的成績(jī):","輸入框",0))第8頁(yè)/共68頁(yè)s4=Val(InputBox("請(qǐng)輸入第4門課的成績(jī):","輸入框",0))s5=Val(InputBox("請(qǐng)輸入第5門課的成績(jī):","輸入框",0))t1=(s1+s2+s3+s4+s5>=450)t2=(s1>=88Ands2>=88Ands3>=88Ands4>=88Ands5>=88)t3=(s1>=95Ands2>=95Ands3>=95Ands4>=80Ands5>=80)Ift1Ort2Ort3Thenp="可以獲獎(jiǎng)!"Elsep="不能獲獎(jiǎng)!"p=Str(s1)&","&Str(s2)&","&Str(s3)&","&Str(s4)&","&Str(s5)&Chr(13)&pLabel1.Caption="該生五門課的成績(jī)分別是:"&Chr(13)&pEndSub第9頁(yè)/共68頁(yè)【例4-5】利用輸入框函數(shù)輸入3個(gè)不同的數(shù),選出其中最大的數(shù)。設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。

(2)編寫程序代碼。第10頁(yè)/共68頁(yè)可以寫出命令按鈕Command1的單擊(Click)事件代碼為PrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSinglea=Val(InputBox("請(qǐng)輸入第1個(gè)數(shù):","輸入框",0))b=Val(InputBox("請(qǐng)輸入第2個(gè)數(shù):","輸入框",0))c=Val(InputBox("請(qǐng)輸入第3個(gè)數(shù):","輸入框",0))p=""&a&","&b&","&cp=p&"三個(gè)數(shù)中最大的數(shù)是:"Ifa>bAnda>cThenp=p&aIfb>aAndb>cThenp=p&bIfc>aAndc>bThenp=p&cLabel1.Caption=pEndSub第11頁(yè)/共68頁(yè)2使用IIF函數(shù)IIf函數(shù)可用來(lái)執(zhí)行簡(jiǎn)單的條件判斷操作,它相當(dāng)于IF…Then….Else結(jié)構(gòu)。

IIf函數(shù)的語(yǔ)法結(jié)構(gòu)為

IIf(〈條件表達(dá)式〉,〈表達(dá)式1〉,〈表達(dá)式2〉)說(shuō)明:(1)<條件表達(dá)式>與IF語(yǔ)句中的表達(dá)式相同,通常是關(guān)系表達(dá)式、邏輯表達(dá)式,也可為算術(shù)表達(dá)式。如果是算術(shù)表達(dá)式,其值按非0為True,0為False進(jìn)行判斷。(2)當(dāng)<條件表達(dá)式>為真時(shí),函數(shù)返回<表達(dá)式1>的值,當(dāng)<條件表達(dá)式>為假時(shí),函數(shù)返回<表達(dá)式2>的值。(3)<表達(dá)式1>、<表達(dá)式2>可以是任何表達(dá)式。第12頁(yè)/共68頁(yè)【例4-6】例4-3中命令按鈕Command1的單擊(Click)事件代碼可以改為PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)y=IIf(x>=0,1+x,1–2*x)Text2.Text=yEndSub第13頁(yè)/共68頁(yè)3.塊結(jié)構(gòu)條件語(yǔ)句IF…THEN…ELSE…ENDIF其語(yǔ)法結(jié)構(gòu)為If〈條件1〉Then[語(yǔ)句列1][Else[語(yǔ)句列2]]EndIf第14頁(yè)/共68頁(yè)【例4-7】將例4-3中命令按鈕Command1的單擊(Click)事件代碼改為多行If語(yǔ)句:PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx>=0Theny=1+xElsey=1–2*xEndIfText2.Text=yEndSub第15頁(yè)/共68頁(yè)4.IF語(yǔ)句的嵌套1)IF語(yǔ)句的嵌套【例4-8】鐵路托運(yùn)行李,從甲地到乙地,規(guī)定每張客票托運(yùn)費(fèi)計(jì)算方法是行李重量不超過(guò)50kg時(shí),0.25元/kg,超過(guò)50kg而不超過(guò)100kg時(shí),其超過(guò)部分按0.35元/kg收費(fèi),超過(guò)100kg時(shí),其超過(guò)部分按0.45元/kg收費(fèi)。編寫程序,輸入行李重量,計(jì)算并輸出托運(yùn)的費(fèi)用。設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。圖4-9計(jì)算托運(yùn)費(fèi)第16頁(yè)/共68頁(yè)(2)編寫程序代碼??梢詫懗雒畎粹oCommand1的單擊(Click)事件代碼為PrivateSubCommand1_Click()DimwAsSingle,xAsSinglew=Val(Text1.Text)Ifw<=50Thenx=0.25*wElseIfw<=100Thenx=0.25*50+0.35*(w–50)Else第17頁(yè)/共68頁(yè)x=0.25*50+0.35*50+0.45*(w–100)EndIfEndIfText2.Text=xEndSub可以將上例中命令按鈕Command1的單擊(Click)事件代碼改為:PrivateSubCommand1_Click()DimwAsSingle,xAsSinglew=Val(Text1.Text)x=IIf(w<=50,0.25*w,0.25*50+IIf(w<=100,0.35*(w–50),0.35*50+0.45*(w–100)))Text2.Text=xEndSub第18頁(yè)/共68頁(yè)【例4-9】某百貨公司為了促銷,采用購(gòu)物打折扣的優(yōu)惠辦法:每位顧客一次購(gòu)物

(1)在1000元以上者,按九五折優(yōu)惠;

(2)在2000元以上者,按九折優(yōu)惠;

(3)在3000元以上者,按八五折優(yōu)惠;

(4)在5000元以上者,按八折優(yōu)惠。

設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。

(2)編寫程序代碼。第19頁(yè)/共68頁(yè)可以寫出命令按鈕Command1的單擊(Click)事件代碼為PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx<1000Theny=xElseIfx<2000Theny=0.95*xElseIfx<3000Then第20頁(yè)/共68頁(yè)y=0.9*xElseIfx<5000Theny=0.85*xElsey=0.08*xEndIfEndIfEndIfEndIfText2.Text=yEndSub第21頁(yè)/共68頁(yè)2)IF語(yǔ)句的嵌套格式ELSEIF

其語(yǔ)法結(jié)構(gòu)為If〈條件1〉Then[語(yǔ)句列1]ElseIf〈條件2〉Then[語(yǔ)句列2]...[Else[其他語(yǔ)句列]]EndIf第22頁(yè)/共68頁(yè)【例4-10】在例4-9中使用帶ElseIf的塊If語(yǔ)句來(lái)計(jì)算出優(yōu)惠價(jià),只需將其中命令按鈕Command1的單擊(Click)事件代碼改為PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx<1000Theny=xElseIfx<2000Theny=0.95*x第23頁(yè)/共68頁(yè)ElseIfx<3000Theny=0.9*xElseIfx<5000Theny=0.85*xElsey=0.08*xEndIfText2.Text=yEndSub第24頁(yè)/共68頁(yè)4.4多分支條件選擇語(yǔ)句SELECTCASESELECTCASE結(jié)構(gòu)與語(yǔ)法語(yǔ)句的語(yǔ)法格式為:SelectCase變量或表達(dá)式

Case表達(dá)式列表1

語(yǔ)句塊1Case表達(dá)式列表2

語(yǔ)句塊2 …[CaseElse

語(yǔ)句塊n+1]EndSelect數(shù)值型或字符串表達(dá)式第25頁(yè)/共68頁(yè)說(shuō)明:

<表達(dá)式列表>:與<變量或表達(dá)式>同類型的下面四種形式之一:表達(dá)式如:A+5

一組枚舉表達(dá)式(用逗號(hào)分隔)如:2,4,6,8

表達(dá)式1To表達(dá)式2 如:60to100

Is關(guān)系運(yùn)算符表達(dá)式如;Is<60第26頁(yè)/共68頁(yè)2.SELECTCASE結(jié)構(gòu)的應(yīng)用

【例4-11】在例4-9中使用SelectCase語(yǔ)句來(lái)計(jì)算優(yōu)惠價(jià),只需將其中命令按鈕Command1的單擊(Click)事件代碼改為PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)SelectCasexCaseIs<1000y=x

第27頁(yè)/共68頁(yè)CaseIs<2000y=0.95*xCaseIs<3000y=0.9*xCaseIs<5000y=0.85*xCaseElsey=0.8*xEndSelectText2.Text=yEndSub第28頁(yè)/共68頁(yè)【例4-12】某航空公司規(guī)定在旅游的旺季7~9月份,如果訂票數(shù)超過(guò)20張,票價(jià)優(yōu)惠15%,20張以下,優(yōu)惠5%;在旅游的淡季1~5月份、10月份、11月份,如果訂票數(shù)超過(guò)20張,票價(jià)優(yōu)惠30%,20張以下,優(yōu)惠20%;其他情況一律優(yōu)惠10%。設(shè)計(jì)程序,根據(jù)月份和訂票張數(shù)決定票價(jià)的優(yōu)惠率。設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。第29頁(yè)/共68頁(yè)(2)編寫程序代碼。根據(jù)流程圖,可以寫出命令按鈕Command1的單擊(Click)事件代碼為:PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,rAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)SelectCasemCaseIs<=5,10,11Ifn<20Thenr=20Elser=30第30頁(yè)/共68頁(yè)Case7To9Ifn<20Thenr=5Elser=15CaseElser=10EndSelectLabel4.Caption="所訂機(jī)票的優(yōu)惠率為:"&Str(r)&"%"EndSub

為了使用更加方便,再增加如下代碼。窗體的Load事件代碼:第31頁(yè)/共68頁(yè)P(yáng)rivateSubForm_Load()Text1.Text=Month(Date) 'Text1中的默認(rèn)值為當(dāng)前月份EndSub

文本框Text1的GotFocus事件代碼:PrivateSubText1_GotFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSub第32頁(yè)/共68頁(yè)

文本框Text1的按健(KeyPress)事件代碼:PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then'在Text1按回車鍵,光標(biāo)跳到Text2IfText1.Text>0AndText1.Text<13ThenText2.SetFocusEndIfEndIfEndSub

文本框Text2的GotFocus事件代碼:PrivateSubText2_GotFocus()第33頁(yè)/共68頁(yè)Text2.SelStart=0Text2.SelLength=Len(Text2.Text)EndSub

文本框Text2的按?。↘eyPress)事件代碼:PrivateSubText2_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then'在Text2按回車鍵,光標(biāo)跳到Command1IfText2.Text>0ThenCommand1.SetFocusEndIfEndSub第34頁(yè)/共68頁(yè)4.5使用計(jì)時(shí)器控件

1.用途計(jì)時(shí)器控件(Timer)又稱時(shí)鐘、定時(shí)器控件,用于有規(guī)律地定時(shí)執(zhí)行指定的工作,常常用于編寫不需要與用戶進(jìn)行交互就可直接執(zhí)行的代碼,如計(jì)時(shí)、倒計(jì)時(shí)、動(dòng)畫等。在程序運(yùn)行階段,時(shí)鐘控件不可見(jiàn)。2屬性(1)Interval屬性取值范圍在0~64767,單位:為毫秒(0.001秒),表示計(jì)時(shí)間隔。若將Interval屬性設(shè)置為0或負(fù)數(shù),則計(jì)時(shí)器停止工作。缺省設(shè)置為0(2)Enabled屬性設(shè)置為True,而且Interval屬性值大于0,則計(jì)時(shí)器開(kāi)始工(以Interval屬性值為間隔,觸發(fā)Timer事件)。設(shè)置為False可使時(shí)鐘控件無(wú)效,即計(jì)時(shí)器停止工作。缺省設(shè)置為True第35頁(yè)/共68頁(yè)3方法

Timer控件沒(méi)有方法。4事件

時(shí)鐘控件只有Timer事件

當(dāng)Enabled屬性值為True且Interval屬性值大于0時(shí),該事件以Interval屬性指定的時(shí)間間隔發(fā)生常常將需要定時(shí)執(zhí)行的操作放在Timer事件過(guò)程中第36頁(yè)/共68頁(yè)計(jì)時(shí)器控件應(yīng)用舉例1.設(shè)計(jì)一個(gè)電子表【例4-13】在窗體上設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘,如圖4-15所示。

圖4-16建立界面與設(shè)置屬性圖4-15數(shù)字時(shí)鐘第37頁(yè)/共68頁(yè)設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面。

(2)設(shè)置對(duì)象屬性,

(3)編寫程序代碼。編寫計(jì)時(shí)器控件Timer1的Timer事件代碼:PrivateSubTimer1_Timer()Label1.Caption=Format(Time,Form1.Tag)Label2.Caption=IIf(Hour(Time)>12,"下午","上午")EndSub第38頁(yè)/共68頁(yè)編寫命令按鈕Command1的Click事件代碼:PrivateSubCommand1_Click()IfCommand1.Caption="改為12小時(shí)"ThenForm1.Tag="hh:mm:ssAM/PM"Command1.Caption="改為24小時(shí)"Label2.Visible=TrueElseForm1.Tag="hh:mm:ss"Command1.Caption="改為12小時(shí)"Label2.Visible=FalseEndIfEndSub

第39頁(yè)/共68頁(yè)2.設(shè)計(jì)一個(gè)計(jì)時(shí)器【例4-14】一個(gè)簡(jiǎn)單計(jì)時(shí)器。如圖4-17所示。

圖4-17簡(jiǎn)單計(jì)時(shí)器圖4-18計(jì)時(shí)器的設(shè)計(jì)第40頁(yè)/共68頁(yè)設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。

(2)編寫程序代碼。編寫Command1(開(kāi)始)的Click事件代碼:PrivateSubCommand1_Click()IfCommand1.Caption="&S暫停"ThenCommand1.Caption="&C繼續(xù)"Timer1.Enabled=FalseElseCommand1.Caption="&S暫停"IfLabel1.Caption="00:00:00:0"ThenForm1.Tag=TimerTimer1.Enabled=TrueEndIfEndSub第41頁(yè)/共68頁(yè)編寫Command2(重置)的Click事件代碼:PrivateSubCommand2_Click()Form1.Tag=TimerLabel1.Caption="00:00:00:0"EndSub

編寫Timer1的Timer事件代碼:PrivateSubTimer1_Timer()m=Timer–Form1.Tagn0=(m*10)Mod10m=Int(m)n1=Format(mMod60,"00.")n2=Format((m\60)Mod60,"00:")n3=Format(m\3600,"00:")Label1.Caption=n3&n2&n1&n0EndSub第42頁(yè)/共68頁(yè)3.設(shè)計(jì)一個(gè)流動(dòng)字幕板【例4-15】為一個(gè)應(yīng)用系統(tǒng)設(shè)計(jì)流動(dòng)字幕板,如圖4-19所示,標(biāo)題“欲窮千里目,更上一層樓”在窗體中自右至左地反復(fù)移動(dòng)。

圖4-19電子標(biāo)題板圖4-20用戶界面的設(shè)計(jì)第43頁(yè)/共68頁(yè)設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性

(2)編寫程序代碼。編寫命令按鈕Command1的Click事件代碼:PrivateSubCommand1_Click()IfCommand1.Caption="&S暫停"ThenCommand1.Caption="&C繼續(xù)"Timer1.Enabled=FalseElseCommand1.Caption="&S暫停"Timer1.Enabled=TrueEndIfEndSub第44頁(yè)/共68頁(yè)編寫Timer1的Timer事件代碼:PrivateSubTimer1_Timer()IfLabel1.Left+Label1.Width>0ThenLabel1.MoveLabel1.Left–20ElseLabel1.Left=Form1.ScaleWidthEndIfEndSub第45頁(yè)/共68頁(yè)4.6提供簡(jiǎn)單選擇的控件4.6.1選項(xiàng)按鈕

1用途單選鈕(OptionButton)也稱作選擇按鈕。一組單選鈕控件可以提供一組彼此相互排斥的選項(xiàng),任何時(shí)刻用戶只能從中選擇一個(gè)選項(xiàng),實(shí)現(xiàn)一種“單項(xiàng)選擇”的功能,被選中項(xiàng)目左側(cè)圓圈中會(huì)出現(xiàn)一黑點(diǎn)。2.重要屬性(1)Caption:文本標(biāo)題。設(shè)置單選鈕的文本注釋內(nèi)容。(2)Alignment屬性:

0:LeftJustify(缺省設(shè)置)控件鈕在左邊,標(biāo)題顯示在右邊。

1:—RightJustify控件鈕在右邊,標(biāo)題顯示在左邊。(3)Value屬性 True:單選鈕被選定

False:單選鈕未被選定(缺省設(shè)置)(4)Style屬性

0--Standard:標(biāo)準(zhǔn)方式 1--Graphical:圖形方式第46頁(yè)/共68頁(yè)3方法

SetFocus方法是單選鈕控件最常用的方法,可以在代碼中通過(guò)該方法將Value屬性設(shè)置為True。與命令按鈕相同,使用該方法之前,必須要保證單選鈕處于可見(jiàn)和可用狀態(tài)(即Visible與Enabled屬性值均True)。4事件

Click事件是單選鈕控件最基本的事件,一般情況用戶無(wú)需為單選鈕編寫Click事件過(guò)程,因?yàn)楫?dāng)用戶單擊單選鈕時(shí),它會(huì)自動(dòng)改變狀態(tài)。第47頁(yè)/共68頁(yè)選項(xiàng)按鈕組應(yīng)用舉例【例4-16】在例4-13中使用選項(xiàng)按鈕組來(lái)選擇時(shí)間的格式編寫新增控件的事件代碼。編寫選項(xiàng)按鈕Option1的Click事件代碼:PrivateSubOption1_Click()Form1.Tag="hh:mm:ssAM/PM"Label2.Visible=TrueEndSub

編寫選項(xiàng)按鈕Option2的Click事件代碼:PrivateSubOption2_Click()Form1.Tag="hh:mm:ss"Label2.Visible=FalseEndSub第48頁(yè)/共68頁(yè)例4-17】設(shè)銀行定期存款年利率為:1年期2.25%,2年期2.43%,3年期2.70%,5年期2.88%(不計(jì)復(fù)利)。今有本金a元,5年以后使用,共有以下6種存法:l

存一次5年期。l

存一次3年期,一次2年期。l

存一次3年期,兩次1年期。l

存兩次2年期,一次1年期。l

存一次2年期,三次1年期。l

存五次1年期。分別計(jì)算各種存法5年后到期時(shí)的本息合計(jì)

第49頁(yè)/共68頁(yè)

編寫命令按鈕Command1的單擊(Click)事件代碼:PrivateSubCommand1_Click()DimaAsSingle,yAsSingleDimx1AsSingle,x2AsSingleDimx3AsSingle,x5AsSinglea=Val(Text1.Text)x1=0.0225:x2=0.0243x3=0.027:x5=0.0288SelectCaseTrueCaseOption1.Valuey=(1+5*x5)*a第50頁(yè)/共68頁(yè)CaseOption2.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*aEndSelect第51頁(yè)/共68頁(yè)Text2.Text=yText1.SetFocusEndSub

編寫文本框Text1的GotFocus事件代碼:PrivateSubText1_GotFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSub第52頁(yè)/共68頁(yè)圖形選項(xiàng)按鈕應(yīng)用舉例將選項(xiàng)按鈕設(shè)計(jì)成圖形按鈕的形式【例4-18】用圖形選項(xiàng)按鈕組控制流動(dòng)字幕中的字體,如圖4-23所示。設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面與設(shè)置對(duì)象屬性。

(2)編寫程序代碼。依次編寫選項(xiàng)按鈕Option1~Option4的Click事件代碼:PrivateSubOption1_Click()第53頁(yè)/共68頁(yè)Text1.FontName="宋體"EndSubPrivateSubOption2_Click()Text1.FontName="隸書"EndSubPrivateSubOption3_Click()Text1.FontName="黑體"EndSubPrivateSubOption4_Click()Text1.FontName="楷體_GB2312"EndSub第54頁(yè)/共68頁(yè)4.6.2復(fù)選框

1用途復(fù)選框(CheckBox)也稱作檢查框、選擇框。一組復(fù)選框控件可以提供多個(gè)選項(xiàng),它們彼此獨(dú)立工作,所以用戶可以同時(shí)選擇任意多個(gè)選項(xiàng),實(shí)現(xiàn)一種“不定項(xiàng)選擇”的功能。選擇某一選項(xiàng)后,該控件將顯示√,而清除此選項(xiàng)后,√消失。檢查框被選中第55頁(yè)/共68頁(yè)2.重要屬性

Caption、Alignment、Style與單選鈕相同復(fù)選框的Value屬性與單選按鈕不同,其值為數(shù)值型數(shù)據(jù),可取0,1,2復(fù)選框與單選按鈕Value屬性的比較

檢查框0--Unchecked:未被選定1--Checked:選定2--Grayed:灰色,禁止選擇

單選鈕True:單選鈕被選定False:單選鈕未被選定,缺省設(shè)置 第56頁(yè)/共68頁(yè)4事件

Click事件是檢查框控件最基本的事件。用戶一般無(wú)需為檢查框編寫Click事件過(guò)程,但其對(duì)Value屬性值的改變遵循以下規(guī)則:?jiǎn)螕粑催x中的檢查框時(shí),Value屬性值變?yōu)?;單擊已選中的檢查框時(shí),Value屬性值變?yōu)?;單擊變灰的檢查框時(shí),Value屬性值變?yōu)?。第57頁(yè)/共68頁(yè)復(fù)選框應(yīng)用舉例1.使用單個(gè)復(fù)選框【例4-19】在上例中,增加復(fù)選框,控制選項(xiàng)按鈕組的顯示。增加復(fù)選框控件Check1的Click事件代碼:PrivateSubCheck1_Click()Option1.Visible=Check1.ValueOption2.Visible=Check1.ValueOption3.Visible=Check1.ValueOption4.Visible=Check1.ValueEndSub第58頁(yè)/共68頁(yè)2.使用多個(gè)復(fù)選框

【例4-20】設(shè)計(jì)一個(gè)個(gè)人資料輸入窗口,使用選項(xiàng)按鈕組輸入性別與民族,使用復(fù)選框輸入個(gè)人愛(ài)好,如圖4-25所示。.

圖4-25使用多個(gè)復(fù)選框圖4-26建立用戶界面

第59頁(yè)/共68頁(yè)設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面。

(2)設(shè)置對(duì)象屬性。

(3)編寫程序代碼。編寫命令按鈕Command1的Click事件代碼:PrivateSubCommand1_Click()IfText1.Text=""Thena=InputBox("您忘了輸入姓名!","注意","請(qǐng)?jiān)诖溯斎胄彰?)Ifa=""Ora="請(qǐng)?jiān)诖溯斎胄彰?ThenExitSubText1.Text=aEndIf第60頁(yè)/共68頁(yè)p1=Text1.Text+","p2=IIf(Option1,"男","女")+","p3=IIf(Option3,"漢族","少數(shù)民族")p4=",喜歡:"IfCheck1.Value=1Thenp4=p4+Check1.Caption+"、"IfCheck2.Value=1Thenp4=p4+Check2.Caption+"、"IfCheck3.Value=1Thenp4=p4+Check3.Caption+"、"IfCheck4.Value=1Thenp4=p4+Check4.Caption+"、"aa=p1+p2+p3+IIf(p4=",喜歡:",",無(wú)愛(ài)好。",p4)Label4.Caption=Left(aa,Len(aa)–1)+"。"Text1.SetFocusEndSub

編寫文本框Text1的Change事件代碼:PrivateSubText1_Change()Label4.Caption=""EndSub第61頁(yè)/共68頁(yè)3.復(fù)選框的圖形方式【例4-21】利用圖形復(fù)選框來(lái)控制文本的字體風(fēng)格,如圖4-27所示。

設(shè)計(jì)步驟如下:

(1)建立應(yīng)用程序用戶界面。

(2)設(shè)置對(duì)象屬性。(3)編寫代碼。復(fù)選框控件Check1的Click事件代碼:PrivateSubCheck1_Click()Check2.Enabled=Check1.ValueCheck3.Enabled=Check1.ValueCheck4.Enabled=Check1.ValueCheck1.Caption=IIf(Check4.Caption="鎖上","打開(kāi)","鎖上")EndSub第62頁(yè)/共68頁(yè)復(fù)選框控件Check2的Click事件代碼:PrivateSubCheck2_Click()Text1.FontBold=Check2.ValueEndSub

復(fù)選框控件Check3的Click事件代碼:PrivateSubCheck3_Click()Text1.FontItalic=Check3.ValueEndSub

復(fù)選框控件Check4的Click事件代碼:Priva

溫馨提示

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