版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
選擇結(jié)構(gòu)設(shè)計(jì)第一頁,共一百零六頁,編輯于2023年,星期三5.1選擇結(jié)構(gòu)的概念在日常生活和工作中,經(jīng)常需要根據(jù)給定的條件進(jìn)行分析、比較和判斷,以采取相應(yīng)的不同操作。第二頁,共一百零六頁,編輯于2023年,星期三選擇結(jié)構(gòu)是計(jì)算機(jī)科學(xué)用來描述自然界和社會生活中分支現(xiàn)象的重要手段。其特點(diǎn)是:根據(jù)所給定的條件為真(即條件成立)與否,而決定從各實(shí)際可能的不同分支中執(zhí)行某一分支的相應(yīng)操作,并且任何情況下總有“無論分支多寡,必?fù)衿湟?;縱然分支眾多,僅選其一”的特性。第三頁,共一百零六頁,編輯于2023年,星期三5.2條件表達(dá)式
5.2.1關(guān)系運(yùn)算符與關(guān)系表達(dá)式
1.關(guān)系運(yùn)算符關(guān)系運(yùn)算符的作用是對兩個(gè)表達(dá)式的值進(jìn)行比較,若關(guān)系成立,則返回True,否則返回False。VB提供了6種關(guān)系運(yùn)算符,如表5-1所示。第四頁,共一百零六頁,編輯于2023年,星期三表5-1關(guān)系運(yùn)算符第五頁,共一百零六頁,編輯于2023年,星期三
2.關(guān)系表達(dá)式關(guān)系表達(dá)式是指用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來的式子(例如2*3>2+3),關(guān)系表達(dá)式的格式為〈表達(dá)式1〉〈關(guān)系運(yùn)算符〉〈表達(dá)式2〉[〈關(guān)系運(yùn)算符〉〈表達(dá)式3〉...]第六頁,共一百零六頁,編輯于2023年,星期三
5.2.2布爾運(yùn)算符與布爾表達(dá)式布爾表達(dá)式是指用布爾運(yùn)算符連接若干關(guān)系表達(dá)式或布爾值而組成的式子。如不等式2≤x≤3可以表示為2<=xAndx<=3。布爾表達(dá)式的值也是一個(gè)布爾值。常用的布爾運(yùn)算符有And、Or、Not等3種,如表5-2所示。第七頁,共一百零六頁,編輯于2023年,星期三表5-2布爾運(yùn)算符第八頁,共一百零六頁,編輯于2023年,星期三表5-3布爾運(yùn)算真值表第九頁,共一百零六頁,編輯于2023年,星期三
5.2.3運(yùn)算符的優(yōu)先順序在一個(gè)表達(dá)式中進(jìn)行多種操作時(shí),VB會按一定的順序進(jìn)行求值,稱這個(gè)順序?yàn)檫\(yùn)算符的優(yōu)先順序。運(yùn)算符的優(yōu)先順序見表5-4。第十頁,共一百零六頁,編輯于2023年,星期三表5-4運(yùn)算符的優(yōu)先順序第十一頁,共一百零六頁,編輯于2023年,星期三
【例5-1】寫出VB表達(dá)式2+3>1+4AndNot6<8的值。在計(jì)算前,先要看清表達(dá)式中有哪些運(yùn)算符,再根據(jù)運(yùn)算符的優(yōu)先級進(jìn)行計(jì)算。本例中應(yīng)按下面的步驟進(jìn)行計(jì)算:①算術(shù)運(yùn)算: 5>5AndNot6<8②關(guān)系運(yùn)算: FalseAndNotTrue③非運(yùn)算: FalseAndFalse④結(jié)果: False第十二頁,共一百零六頁,編輯于2023年,星期三
【例5-2】根據(jù)下列所給條件,寫出VB布爾表達(dá)式:
(1)一元二次方程ax2+bx+c=0有實(shí)根的條件為:a≠0,并且b2-4ac≥0。
(2)閏年的條件是:年號(year)能被4整除,但不能被100整除;或者能被400整除。
第十三頁,共一百零六頁,編輯于2023年,星期三5.3If語句5.3.1單行結(jié)構(gòu)條件語句If...Then...Else
單行條件語句比較簡單,其語法格式為
If〈條件〉Then[〈語句序列1〉][Else〈語句序列2〉]
第十四頁,共一百零六頁,編輯于2023年,星期三【例5-3】輸入x,計(jì)算y的值。其中:第十五頁,共一百零六頁,編輯于2023年,星期三圖5.1計(jì)算分段函數(shù)y的值第十六頁,共一百零六頁,編輯于2023年,星期三設(shè)計(jì)步驟如下:
(1)建立應(yīng)用程序用戶界面并設(shè)置對象屬性,如圖5.1所示。
(2)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為PrivateSubCommand1_Click()DimxAsSingle,yAsSingle '定義x、y為單精度數(shù)
第十七頁,共一百零六頁,編輯于2023年,星期三x=Val(Text1.Text) '輸入x的值
Ifx>=0Theny=Sqr(x)Elsey=-x'判斷并計(jì)算
Text2.Text=y '輸出結(jié)果
Text2.Locked=TrueEndSub程序運(yùn)行結(jié)果如圖5.1所示。第十八頁,共一百零六頁,編輯于2023年,星期三圖5.2輸出兩數(shù)中的較大數(shù)第十九頁,共一百零六頁,編輯于2023年,星期三
【例5-4】已知兩個(gè)數(shù)x和y,比較它們的大小,輸出較大數(shù)。設(shè)計(jì)步驟如下:
(1)建立應(yīng)用程序用戶界面并設(shè)置對象屬性,如圖5.2所示。
(2)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為第二十頁,共一百零六頁,編輯于2023年,星期三PrivateSubCommand1_Click()DimxAsSingle,yAsSingle '定義變量數(shù)據(jù)類型為單精度數(shù)
x=Val(Text1.Text)y=Val(Text2.Text)Ifx<yThenLabel3.Caption="較大數(shù)為"&Str(y)Ifx>yThenLabel3.Caption="較大數(shù)為"&Str(x)EndSub第二十一頁,共一百零六頁,編輯于2023年,星期三或者編寫代碼為PrivateSubCommand1_Click()DimxAsSingle,yAsSingle '定義變量數(shù)據(jù)類型為單精度數(shù)
x=Val(Text1.Text)y=Val(Text2.Text)Ifx<yThent=x:x=y:y=t '如果x小,則交換x、y的值
Label3.Caption="較大數(shù)為"&Str(x) '輸出比較結(jié)果EndSub程序運(yùn)行結(jié)果如圖5.2所示。第二十二頁,共一百零六頁,編輯于2023年,星期三
5.3.2使用IIf函數(shù)使用IIf函數(shù)可以實(shí)現(xiàn)一些比較簡單的選擇結(jié)構(gòu)。IIf函數(shù)的語法結(jié)構(gòu)為
IIf(〈條件表達(dá)式〉,〈真部分〉,〈假部分〉)第二十三頁,共一百零六頁,編輯于2023年,星期三
5.3.3塊結(jié)構(gòu)條件語句If...Then...Else...EndIf
雖然單行If語句使用方便,可以滿足許多選擇結(jié)構(gòu)程序設(shè)計(jì)的需要,但是當(dāng)Then部分和Else部分包含較多內(nèi)容時(shí),在一行中就難以容納所有命令。為此,VB提供了塊If語句,將一個(gè)選擇結(jié)構(gòu)用多個(gè)語句行來實(shí)現(xiàn)。第二十四頁,共一百零六頁,編輯于2023年,星期三塊If語句又稱為多行If語句,其語法結(jié)構(gòu)為If〈條件〉Then[語句列1][Else[語句列2]]EndIf第二十五頁,共一百零六頁,編輯于2023年,星期三
【例5-5】將例5-3中命令按鈕Command1的單擊(Click)事件代碼改為多行If語句:
PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx>=0Theny=Sqr(x)Elsey=-xEndIfText2.Text=yText2.Locked=TrueEndSub第二十六頁,共一百零六頁,編輯于2023年,星期三
【例5-6】將例5-4中命令按鈕Command1的單擊(Click)事件代碼改為多行If語句:
PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)y=Val(Text2.Text)Ifx<yThen第二十七頁,共一百零六頁,編輯于2023年,星期三Label3.Caption="較大數(shù)為"&Str(y)ElseLabel3.Caption="較大數(shù)為"&Str(x)EndIfEndSub第二十八頁,共一百零六頁,編輯于2023年,星期三
5.3.4If語句的嵌套
1.If語句的嵌套
If語句的嵌套是指If或Else后面的語句塊中又包含If語句。語句形式如下:
If〈條件1〉ThenIf〈條件2〉ThenEndIEndIf第二十九頁,共一百零六頁,編輯于2023年,星期三
【例5-7】鍵盤輸入3個(gè)不同的數(shù),將它們從大到小排序。
(1)建立應(yīng)用程序用戶界面并設(shè)置對象屬性,如圖5.3所示。
(2)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為
第三十頁,共一百零六頁,編輯于2023年,星期三圖5.3從大到小排序第三十一頁,共一百零六頁,編輯于2023年,星期三PrivateSubCommand1_Click()DimxAsSingle,yAsSingle,zAsSinglex=Val(Text1.Text)'輸入數(shù)據(jù)
y=Val(Text2.Text)z=Val(Text3.Text)Ifx<yThen'將第1個(gè)數(shù)與第2個(gè)數(shù)進(jìn)行比較,使大數(shù)在前t=x:x=y:y=t '交換數(shù)據(jù)第三十二頁,共一百零六頁,編輯于2023年,星期三
EndIfIfy<zThent=y:y=z:z=t '使得y>zIfx<yThen '使得x>y,此時(shí)的x、y已不再是原x、y的值
t=x:x=y:y=tEndIfEndIfLabel4.Caption="從大到小排序結(jié)果:"&Str(x)&Str(y)&Str(z)EndSub第三十三頁,共一百零六頁,編輯于2023年,星期三
【例5-8】某百貨公司為了促銷,采用購物打折扣的優(yōu)惠辦法,即每位顧客一次購物:
(1)在1000元以上2000元以下者,按九五折優(yōu)惠;
(2)在2000元以上3000元以下者,按九折優(yōu)惠;
(3)在3000元以上5000元以下者,按八五折優(yōu)惠;
(4)在5000元以上者,按八折優(yōu)惠。第三十四頁,共一百零六頁,編輯于2023年,星期三設(shè)計(jì)步驟如下:
(1)建立應(yīng)用程序用戶界面并設(shè)置對象屬性,如圖5.4所示。
(2)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為第三十五頁,共一百零六頁,編輯于2023年,星期三圖5.4計(jì)算優(yōu)惠價(jià)第三十六頁,共一百零六頁,編輯于2023年,星期三PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx<1000Theny=x '不打折
ElseIfx<2000Then '九五折
y=0.95*xElseIfx<3000Then第三十七頁,共一百零六頁,編輯于2023年,星期三y=0.9*x '九折
ElseIfx<5000Theny=0.85*x '八五折Elsey=0.8*x '八折EndIf
第三十八頁,共一百零六頁,編輯于2023年,星期三EndIfEndIfEndIfText2.Text=yText2.Locked=TrueEndSub程序運(yùn)行結(jié)果如圖5.4所示。第三十九頁,共一百零六頁,編輯于2023年,星期三
2.If語句的嵌套格式ElseIf
如果出現(xiàn)多層If語句嵌套,將使程序冗長,不便閱讀。為此VB提供了帶ElseIf的塊If語句來處理當(dāng)條件為假時(shí)又內(nèi)嵌塊If語句的情形,以使程序簡化易寫。其語法結(jié)構(gòu)為第四十頁,共一百零六頁,編輯于2023年,星期三If〈條件1〉Then[語句列1]ElseIf〈條件2〉Then[語句列2]
[Else[其他語句列]]EndIf第四十一頁,共一百零六頁,編輯于2023年,星期三
【例5-9】在例5-8中使用帶ElseIf的塊If語句來計(jì)算出優(yōu)惠價(jià)。將命令按鈕Command1的單擊(Click)事件代碼改為
PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx<1000Theny=x '不打折
ElseIfx<2000Theny=0.95*x '九五折第四十二頁,共一百零六頁,編輯于2023年,星期三ElseIfx<3000Theny=0.9*x '九折
ElseIfx<5000Theny=0.85*x '八五折
Elsey=0.8*x '八折
EndIfText2.Text=yText2.Locked=TrueEndSub第四十三頁,共一百零六頁,編輯于2023年,星期三
【例5-10】編制命令按鈕代碼,要求每單擊一次命令按鈕,就會依次在窗體上顯示下面詩詞中的詩句。靜夜思床前明月光,疑是地上霜。舉頭望明月,低頭思故鄉(xiāng)。
(1)建立應(yīng)用程序用戶界面并設(shè)置對象屬性,如圖5.5所示。
(2)編寫事件代碼。命令按鈕Command1的單擊(Click)事件代碼為第四十四頁,共一百零六頁,編輯于2023年,星期三PrivateSubCommand1_Click()Label1.FontName="隸書"Label1.FontSize=14Label1.ForeColor=QBColor(4)Label1.Caption="靜夜思" '設(shè)置標(biāo)簽Label1的標(biāo)題
Command1.Caption="顯示" '設(shè)置命令按鈕的標(biāo)題屬性第四十五頁,共一百零六頁,編輯于2023年,星期三
StaticiAsInteger '聲明靜態(tài)變量i為整型數(shù)
i=i+1Mytext1="床前明月光,"Mytext2=Mytext1+Chr(13)+"疑是地上霜。" 'Chr(13)表示換行
Mytext3=Mytext2+Chr(13)+"舉頭望明月,"Mytext4=Mytext3+Chr(13)+"低頭思故鄉(xiāng)。"Ifi=1ThenLabel2.Caption=Mytext1ElseIfi=2Then第四十六頁,共一百零六頁,編輯于2023年,星期三Label2.Caption=Mytext2ElseIfi=3ThenLabel2.Caption=Mytext3ElseLabel2.Caption=Mytext4i=0EndIfEndSub程序運(yùn)行結(jié)果如圖5.5所示。第四十七頁,共一百零六頁,編輯于2023年,星期三圖5.5顯示詩句第四十八頁,共一百零六頁,編輯于2023年,星期三5.4多分支條件選擇語句SelectCase雖然使用嵌套的辦法可以利用If語句實(shí)現(xiàn)多分支選擇,但是最好還是使用VB提供的多分支選擇結(jié)構(gòu)(SelectCase語句)來實(shí)現(xiàn)。根據(jù)單一表達(dá)式來執(zhí)行多種可能的動作時(shí),SelectCase更為簡捷。多分支選擇結(jié)構(gòu)的特點(diǎn)是:從多個(gè)選擇結(jié)構(gòu)中,選擇第一個(gè)條件為真的路線作為執(zhí)行的路線。SelectCase語句的語法格式為第四十九頁,共一百零六頁,編輯于2023年,星期三SelectCase〈測試條件〉[Case〈表達(dá)式表1〉[〈語句列1〉]][Case〈表達(dá)式表2〉[〈語句列2〉]]
[CaseElse[〈其他語句列〉]]EndSelect第五十頁,共一百零六頁,編輯于2023年,星期三
【例5-11】在例5-8中使用SelectCase語句來計(jì)算優(yōu)惠價(jià),只需將其中命令按鈕Command1的單擊(Click)事件代碼改為
PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)SelectCasexCaseIs<1000y=xCaseIs<2000y=0.95*x第五十一頁,共一百零六頁,編輯于2023年,星期三CaseIs<3000y=0.9*xCaseIs<5000y=0.85*xCaseElsey=0.8*xEndSelectText2.Text=yText2.Locked=TrueEndSub第五十二頁,共一百零六頁,編輯于2023年,星期三表5-5表達(dá)式的形式第五十三頁,共一百零六頁,編輯于2023年,星期三【例5-12】用Select語句編制命令按鈕代碼完成例5-10。PrivateSubCommand1_Click()StaticiAsInteger '聲明靜態(tài)變量i為整型數(shù)
i=i+1Mytext1="床前明月光,"Mytext2=Mytext1+Chr(13)+"疑是地上霜。"Mytext3=Mytext2+Chr(13)+"舉頭望明月,"Mytext4=Mytext3+Chr(13)+"低頭思故鄉(xiāng)。"第五十四頁,共一百零六頁,編輯于2023年,星期三
SelectCaseiCase1Label2.Caption=Mytext1Case2Label2.Caption=Mytext2Case3Label2.Caption=Mytext3Case4Label2.Caption=Mytext4i=0EndSelectEndSub第五十五頁,共一百零六頁,編輯于2023年,星期三
【例5-13】編寫一個(gè)對輸入字符進(jìn)行轉(zhuǎn)換的程序。轉(zhuǎn)換規(guī)則為:將其中的大寫字母轉(zhuǎn)換成小寫字母,小寫字母轉(zhuǎn)換成大寫字母,空格不轉(zhuǎn)換,其余轉(zhuǎn)換成“*”。要求每輸入一個(gè)字符,馬上就進(jìn)行判斷和轉(zhuǎn)換。
(1)建立應(yīng)用程序用戶界面,如圖5.6所示。
(2)設(shè)置對象屬性,如圖5.7所示。第五十六頁,共一百零六頁,編輯于2023年,星期三圖5.6設(shè)置用戶界面第五十七頁,共一百零六頁,編輯于2023年,星期三圖5.7設(shè)置對象屬性第五十八頁,共一百零六頁,編輯于2023年,星期三
(3)編寫事件代碼。根據(jù)題中要求,當(dāng)在“輸入字符串”文本框中每輸入一個(gè)字符鍵時(shí),馬上就進(jìn)行判斷,這就要求對“輸入字符串”文本框?qū)ο骉ext1對應(yīng)的KeyPress事件進(jìn)行編程。第五十九頁,共一百零六頁,編輯于2023年,星期三PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimaaAsString*1aa=Chr$(KeyAscii) '將ASCII碼轉(zhuǎn)換成字符
SelectCaseaaCase"A"To"Z"aa=LCase(aa) '大寫轉(zhuǎn)換成小寫Case"a"To"z"aa=UCase(aa) '小寫轉(zhuǎn)換成大寫Case""第六十頁,共一百零六頁,編輯于2023年,星期三
aa=""CaseElseaa="*"EndSelectText2.Text=Text2.Text&aa '將轉(zhuǎn)換文本框已有的內(nèi)容與剛輸入并轉(zhuǎn)換的字符連接EndSub命令按鈕Command1的Click事件代碼為PrivateSubCommand1_Click()Text1.Text=""'清除文本框Text1的內(nèi)容第六十一頁,共一百零六頁,編輯于2023年,星期三Text2.Text=""'清除文本框Text2的內(nèi)容EndSub命令按鈕Command2的Click事件代碼為PrivateSubCommand2_Click()UnloadMeEndSub程序運(yùn)行結(jié)果如圖5.8所示。第六十二頁,共一百零六頁,編輯于2023年,星期三圖5.8大小寫字母轉(zhuǎn)換第六十三頁,共一百零六頁,編輯于2023年,星期三5.5計(jì)時(shí)器控件計(jì)時(shí)器(Timer)控件能有規(guī)律地以一定的時(shí)間間隔激發(fā)計(jì)時(shí)器事件(Timer)而執(zhí)行相應(yīng)的事件代碼。計(jì)時(shí)器控件在設(shè)計(jì)時(shí)顯示為一個(gè)小時(shí)鐘圖標(biāo),而在運(yùn)行時(shí)并不顯示在屏幕上,通常用標(biāo)簽來顯示時(shí)間。計(jì)時(shí)器控件的主要屬性如表5-6所示。第六十四頁,共一百零六頁,編輯于2023年,星期三表5-6Timer控件的屬性第六十五頁,共一百零六頁,編輯于2023年,星期三
【例5-14】在窗體上建立數(shù)字計(jì)時(shí)器。設(shè)計(jì)步驟如下:
(1)建立用戶界面。在窗體上建立一個(gè)計(jì)時(shí)器控件和兩個(gè)標(biāo)簽控件,如圖5.9所示。
(2)按表5-7所示設(shè)置對象屬性。第六十六頁,共一百零六頁,編輯于2023年,星期三圖5.9建立用戶界面第六十七頁,共一百零六頁,編輯于2023年,星期三表5-7屬性設(shè)置第六十八頁,共一百零六頁,編輯于2023年,星期三圖5.10程序運(yùn)行結(jié)果第六十九頁,共一百零六頁,編輯于2023年,星期三(3)編寫事件代碼。編寫計(jì)時(shí)器控件Timer1的Timer事件代碼:PrivateSubTimer1_Timer()Label2.Caption=Time$EndSub程序運(yùn)行結(jié)果如圖5.10所示。第七十頁,共一百零六頁,編輯于2023年,星期三5.6選擇性控件
5.6.1單選鈕單選鈕(OptionButton)的左邊有一個(gè)“○”。一般來說,單按鈕總是成組(單選按鈕組)出現(xiàn),用戶在一組單選鈕中必須選擇一項(xiàng),并且最多只能選擇一項(xiàng)。當(dāng)某一項(xiàng)被選定后,其左邊的圓圈中出現(xiàn)一個(gè)黑點(diǎn)。單選鈕主要用于在多種功能中由用戶選擇一種功能的情況。第七十一頁,共一百零六頁,編輯于2023年,星期三1.單選鈕的主要屬性單選鈕的主要屬性如表5-8所示。表5-8單選鈕的主要屬性第七十二頁,共一百零六頁,編輯于2023年,星期三
2.選擇單選鈕的方法選擇一個(gè)單選鈕可以用以下方法:●在運(yùn)行期間用鼠標(biāo)單擊單選鈕?!裼肨ab鍵定位到單選按鈕組,然后在組內(nèi)使用方向鍵(箭頭鍵)定位單選鈕。●用代碼將它的Value屬性設(shè)置為真:Option1.Value=True。●使用在OptionButton標(biāo)題中指定的快捷鍵。第七十三頁,共一百零六頁,編輯于2023年,星期三
3.使用單選按鈕組單選鈕和復(fù)選框都可以接受Click事件,但一般不需要編寫Click事件過程。因?yàn)楫?dāng)用戶單擊單選鈕和復(fù)選框時(shí),它們自動改變狀態(tài)。單選鈕的一個(gè)特點(diǎn)是當(dāng)選定其中一個(gè),其余就自動關(guān)閉。第七十四頁,共一百零六頁,編輯于2023年,星期三
【例5-15】單選按鈕用法示例。設(shè)計(jì)步驟如下:
(1)建立應(yīng)用程序用戶界面和設(shè)置對象屬性。在窗體中建立了兩組單選鈕,分別放在名稱為“字體”和“字號”的框架中,如圖5.11所示。第七十五頁,共一百零六頁,編輯于2023年,星期三圖5.11建立用戶界面和設(shè)置屬性第七十六頁,共一百零六頁,編輯于2023年,星期三(2)編寫事件代碼。下面是該窗體中涉及的兩個(gè)事件過程:PrivateSubCommand1_Click()IfOption1.ValueThenText1.FontName="宋體"ElseText1.FontName="黑體"EndIfIfOption3.ValueThen第七十七頁,共一百零六頁,編輯于2023年,星期三圖5.12單選鈕程序運(yùn)行結(jié)果第七十八頁,共一百零六頁,編輯于2023年,星期三Text1.FontSize=10ElseText1.FontSize=14EndIfEndSubPrivateSubCommand2_Click()UnloadMeEndSub程序運(yùn)行結(jié)果如圖5.12所示。第七十九頁,共一百零六頁,編輯于2023年,星期三
4.使用圖形選項(xiàng)按鈕可以將單選鈕設(shè)計(jì)成圖形按鈕的形式。
【例5-16】設(shè)計(jì)流動字幕板。使?jié)L動字幕內(nèi)容“海闊憑魚躍,天高任鳥飛”在窗體中從右向左反復(fù)地移動。設(shè)計(jì)步驟如下:
(1)建立應(yīng)用程序用戶界面。選擇“新建”工程,進(jìn)入窗體設(shè)計(jì)器,增加一個(gè)計(jì)時(shí)器控件Timer1、一個(gè)標(biāo)簽控件Label1和一個(gè)命令按鈕Command1,4個(gè)單選鈕Option1~Option4。其中,計(jì)時(shí)器控件Timer1可以放在窗體的任何位置,參見圖5.13所示。第八十頁,共一百零六頁,編輯于2023年,星期三圖5.13建立用戶界面第八十一頁,共一百零六頁,編輯于2023年,星期三
(2)設(shè)置對象屬性。修改Timer1的屬性:Interval改為100,Enabled改為False。修改Option1~Option4的Style屬性為:1-Graphical(圖形方式)。其他屬性修改參見圖5.14。第八十二頁,共一百零六頁,編輯于2023年,星期三圖5.14滾動字幕程序運(yùn)行結(jié)果第八十三頁,共一百零六頁,編輯于2023年,星期三(3)編寫事件代碼。命令按鈕Command1的Click事件代碼為PrivateSubCommand1_Click()IfCommand1.Caption="&S暫停"ThenCommand1.Caption="&C繼續(xù)"Timer1.Enabled=FalseElseCommand1.Caption="&S暫停"Timer1.Enabled=TrueEndIfEndSub第八十四頁,共一百零六頁,編輯于2023年,星期三通過在不斷激發(fā)的Timer事件中改變標(biāo)簽的Left屬性,可改變標(biāo)簽的位置。編寫Timer1的Timer事件代碼:PrivateSubTimer1_Timer()IfLabel1.Left+Label1.Width>0ThenLabel1.MoveLabel1.Left-20 '當(dāng)標(biāo)簽右邊位置>0時(shí),標(biāo)簽向左移
ElseLabel1.Left=Form1.ScaleWidth '標(biāo)簽從頭開始
EndIfEndSub第八十五頁,共一百零六頁,編輯于2023年,星期三依次編寫單選鈕Option1~Option4的Click事件代碼:PrivateSubOption1_Click()Label1.FontName="宋體"EndSubPrivateSubOption2_Click()Label1.FontName="隸書"EndSubPrivateSubOption3_Click()
第八十六頁,共一百零六頁,編輯于2023年,星期三Label1.FontName="黑體"EndSubPrivateSubOption4_Click()Label1.FontName="楷體_GB2312"EndSub程序運(yùn)行結(jié)果如圖5.14所示。第八十七頁,共一百零六頁,編輯于2023年,星期三
5.6.2復(fù)選框
1.復(fù)選框的常用屬性復(fù)選框的常用屬性與單選鈕基本相同,如復(fù)選框的Caption屬性可以指定出現(xiàn)在復(fù)選框旁邊的文本,而Picture屬性用來指定當(dāng)復(fù)選框被設(shè)計(jì)成圖形按鈕時(shí)的圖像。第八十八頁,共一百零六頁,編輯于2023年,星期三
2.復(fù)選框的使用
【例5-17】用復(fù)選框控制文本輸入是否加上“下劃線”和“斜體顯示”。設(shè)計(jì)步驟如下:
(1)建立應(yīng)用程序用戶界面。建立3個(gè)控件:一個(gè)文本框和兩個(gè)復(fù)選框。在文本框中顯示文本,由兩個(gè)復(fù)選框決定顯示的文本是否加下劃線或用斜體顯示。
(2)設(shè)置對象屬性。3個(gè)控件的屬性設(shè)置如圖5.15所示。第八十九頁,共一百零六頁,編輯于2023年,星期三圖5.15復(fù)選框應(yīng)用示例第九十頁,共一百零六頁,編輯于2023年,星期三(3)編寫事件代碼。編寫的事件代碼為PrivateSubText1_Change()IfCheck1.Value=1ThenText1.FontUnderline=TrueElseIfCheck2.Value=1ThenText1.FontItalic=TrueEndIfEndSubPrivateSubCheck1_Click()IfCheck1.Value=1ThenText1.FontUnderline=TrueElse第九十一頁,共一百零六頁,編輯于2023年,星期三Text1.FontUnderline=FalseEndIfEndSubPrivateSubCheck2_Click()IfCheck2.Value=1ThenText1.FontItalic=TrueElseText1.FontItalic=FalseEndIfEndSub程序運(yùn)行結(jié)果如圖5.15所示。第九十二頁,共一百零六頁,編輯于2023年,星期三習(xí)題五5.1寫出下列VB表達(dá)式的值。(1)4*10>=65(2)"ABCDE"<"ABCDF"(3)"456"<>"456"&"xyz" (4)Not10*20<>256(5)10=10And10>4+3 (6)10<>2OrNot5>20+5(7)10^3>10And2<2+3 (8)10>20And12=20第九十三頁,共一百零六頁,編輯于2023年,星期三5.2將下列命題用VB布爾表達(dá)式表示。(1)z比x,y都大 (2)|a|≤|b+2|或a>b+2(3)p是q的倍數(shù) (4)x([-5,-2],并且x([2,5](5)x,y其中有一個(gè)小于z (6)a是小于正整數(shù)b的偶數(shù)第九十四頁,共一百零六頁,編輯于2023年,星期三
5.3根據(jù)下面所給的條件,列出相應(yīng)的VB布爾表達(dá)式。
(1)分房的條件為:已婚(married),年齡(age)在26歲以上,工作年限(working_age)在5年以上。
(2)征兵的條件是:男性(sex)年齡(age)在18~20歲之間,身高(size)在1.65米以上;或者女性(sex)年齡(age)在16~18歲之間,身高(size)在1.60米以上。
5.4已知下面的分段函數(shù),要求輸入x,計(jì)算y的值:第九十五頁,共一百零六頁,編輯于2023年,星期三
5.5為鐵路編寫計(jì)算運(yùn)費(fèi)的程序。假設(shè)鐵路托運(yùn)行李,規(guī)定每張客票托運(yùn)費(fèi)計(jì)算方法是:行李重量不超過50kg時(shí),每千克0.25元;超過50kg而不超過100kg時(shí),其超過部分每千克0.35元;超過100kg時(shí),其超過部分每千克0.45元。要求輸入行李重量,計(jì)算并輸出托運(yùn)的費(fèi)用。
5.6編寫程序,任給3個(gè)實(shí)數(shù),求其中間數(shù)(即其值大小居中者)。
5.7編寫程序,輸入一個(gè)數(shù)字(0~6),用中英文顯示星期幾。第九十六頁,共一百零六頁,編輯于2023年,星期三
5.8編寫程序,求一元二次方程的根。
5.9編寫程序,任意輸入一個(gè)整數(shù),判定該整數(shù)的奇偶性。
5.10編寫程序,鍵盤輸入a、b、c的值,判斷它們能否構(gòu)成三角形的3個(gè)邊。如果能構(gòu)成一個(gè)三角形,則計(jì)算三角形的面積。
5.11編寫程序,利用文本框檢查用戶口令。提示:可以利用文本框的PasswordChar屬性來隱蔽
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年張家界大客車從業(yè)資格證考試
- 2024年鄭州客運(yùn)證模擬考試題庫
- 2024年海東客運(yùn)上崗證考試題庫
- 吉首大學(xué)《管理咨詢》2021-2022學(xué)年第一學(xué)期期末試卷
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》-試卷7
- 吉林藝術(shù)學(xué)院《唐楷與魏碑》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024年供應(yīng)鏈資金合同范本
- 吉林師范大學(xué)《中學(xué)歷史課堂教學(xué)藝術(shù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林師范大學(xué)《藝術(shù)工程投標(biāo)流程技巧與勞動實(shí)踐技能》2021-2022學(xué)年第一學(xué)期期末試卷
- 吉林師范大學(xué)《西方文化史》2021-2022學(xué)年第一學(xué)期期末試卷
- 拉曼光譜簡介課件
- 計(jì)算機(jī)解決問題的過程-優(yōu)質(zhì)課課件
- 非線性電路分析基礎(chǔ)講解課件
- 高中通用技術(shù)-閉環(huán)控制系統(tǒng)的工作過程與方式-優(yōu)質(zhì)課課件
- 第四單元課文復(fù)習(xí)(課件)部編版語文五年級上冊
- 2023年廣東南海產(chǎn)業(yè)集團(tuán)有限公司招聘筆試模擬試題及答案解析
- 領(lǐng)導(dǎo)力與團(tuán)隊(duì)管理課件
- 《基督徒知識禱讀》課件
- 12月4日全國法制宣傳日憲法日憲法知識科普宣教PPT教學(xué)課件
- 樂山市市中區(qū)2022-2023學(xué)年上期期中測試七年級生物試題及答案
- 綠化監(jiān)理實(shí)施細(xì)則
評論
0/150
提交評論