版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目五循環(huán)結(jié)構(gòu)程序設(shè)計(jì)任務(wù)5.1Do循環(huán)語句任務(wù)5.2For循環(huán)語句任務(wù)5.3列表框和組合框控件
任務(wù)5.1
Do循環(huán)語句
任務(wù)導(dǎo)入
Do語句有兩種語法形式:前測型循環(huán)結(jié)構(gòu)和后測型循環(huán)結(jié)構(gòu)。本任務(wù)將學(xué)習(xí)使用Do語句進(jìn)行程序設(shè)計(jì)的方法。學(xué)習(xí)目標(biāo)
(1)理解前測型循環(huán)結(jié)構(gòu)、后測型循環(huán)結(jié)構(gòu)的特點(diǎn)。
(2)能熟練使用Do循環(huán)語句進(jìn)行程序設(shè)計(jì)。任務(wù)實(shí)施
1.掌握前測型Do語句的語法格式
前測型Do循環(huán)結(jié)構(gòu)的循環(huán)特點(diǎn)是:先判斷循環(huán)條件,根據(jù)條件決定是否執(zhí)行循環(huán)體,執(zhí)行循環(huán)體的最少次數(shù)為0。其語法格式為
Do[{While|Until}〈條件〉]
[〈語句組1〉]
[ExitDo]
[〈語句組2〉]
Loop
2.理解前測型Do語句的執(zhí)行過程
前測型循環(huán)語句是先判斷條件,再執(zhí)行循環(huán)體。根據(jù)條件不同,可分為當(dāng)型和直到型循環(huán)結(jié)構(gòu)。
當(dāng)型DoWhile...Loop:當(dāng)條件為真時(shí)執(zhí)行循環(huán)體,條件為假時(shí)終止循環(huán)。
直到型DoUntil…Loop:當(dāng)條件為假時(shí)執(zhí)行循環(huán)體,直到條件為真時(shí)終止循環(huán)。在Do…Loop循環(huán)體中,可以放置任意個(gè)數(shù)的ExitDo語句,以隨時(shí)跳出Do…Loop循環(huán)。ExitDo語句通常位于條件判斷之后,如If…Then語句,在這種情況下,ExitDo語句將控制權(quán)轉(zhuǎn)移到緊接在Loop命令之后的語句。如果ExitDo被使用在嵌套的Do…Loop語句中,則ExitDo會(huì)將控制權(quán)轉(zhuǎn)移到ExitDo所在位置的外層循環(huán)。
【課堂演練】
【實(shí)例5-1】用Do…Loop語句計(jì)算1+2+3+…+100
的值。
【實(shí)現(xiàn)步驟】
(1)建立用戶界面,如圖5.1所示。
(2)設(shè)置對象屬性,參見圖5.1。圖5.1建立用戶界面
(3)編寫事件代碼。采用當(dāng)型循環(huán)結(jié)構(gòu)編寫“計(jì)算”命令按鈕Command1的Click事件代碼:
PrivateSubCommand1_Click()
DimSAsInteger,nAsInteger
S=0:n=1 '累加器S賦初值0,計(jì)數(shù)器n賦初值1DoWhilen<=100 '當(dāng)型循環(huán)
S=S+n '累加和
n=n+1 '計(jì)數(shù)器累加1
Loop
Label2.Caption=S
EndSub“計(jì)算”命令按鈕Command1的Click事件代碼還可以改為直到型循環(huán)結(jié)構(gòu):
PrivateSubCommand1_Click()
DimSAsInteger,nAsInteger
S=0:n=1
DoUntiln>100 ‘直到型循環(huán)
S=S+n
n=n+1
Loop
Label2.Caption=S
EndSub該事件代碼還可以利用ExitDo語句來編寫:
PrivateSubCommand1_Click()
DimSAsInteger,nAsInteger
S=0:n=1
Do
S=S+n
n=n+1
Ifn>100ThenExitDo‘如果n>100,則跳出循環(huán)
Loop
Label2.Caption=S
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.2所示。圖5.2程序運(yùn)行結(jié)果
【實(shí)例5-2】設(shè)有一張厚為x毫米,面積足夠大的紙,將它不斷地對折。試問對折多少次后,其厚度可達(dá)珠穆朗瑪峰的高度(8848m)。
【實(shí)現(xiàn)步驟】
(1)問題分析。設(shè)對折后紙的厚度為h毫米,計(jì)數(shù)器為n。在沒有對折時(shí),紙厚為x毫米,每對折一次,其厚度是上一次的2倍,在未到達(dá)8848m時(shí),重復(fù)進(jìn)行對折。
(2)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖5.3
所示。
(3)編寫程序代碼。命令按鈕Command1的Click事件代
碼為
PrivateSubCommand1_Click()
n=0 ‘對折次數(shù)初值
h=Text1.Text ’紙的厚度
DoWhileh<8848000
n=n+1 ‘累計(jì)對折次數(shù)
h=2*h ’對折
Loop
Text2.Text=n
Text2.Locked=True
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.3所示。圖5.3用戶界面及程序運(yùn)行結(jié)果
【實(shí)例5-3】設(shè)s=1×2×3×…×n,求s不大于400000時(shí)最大的n。
【實(shí)現(xiàn)步驟】
(1)問題分析。本題是利用循環(huán)進(jìn)行累乘運(yùn)算。設(shè)計(jì)數(shù)器為n,累乘器s=s*n,其循環(huán)條件是s<=400000。由于求的是最大的n值,因而輸出語句應(yīng)在循環(huán)體外。
(2)建立用戶界面并設(shè)置對象屬性,如圖5.4所示。圖5.4程序界面與運(yùn)行結(jié)果
(3)編寫事件代碼。命令按鈕的Click事件代碼為
PrivateSubCommand1_Click()
DimnAsInteger,sAsLong
CurrentY=Label1.Height+200
n=1
s=1
DoWhiles<=400000
n=n+1
s=s*n
Printn,s ‘通過本行可以看到循環(huán)過程
Loop
Label2.Caption=“n=”&Str(n–1)
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.4所示。
4.掌握后測型Do語句的語法格式
后測型Do循環(huán)結(jié)構(gòu)的執(zhí)行特點(diǎn)是:先執(zhí)行循環(huán)體,然后判斷條件,根據(jù)條件決定是否繼續(xù)執(zhí)行循環(huán),因此執(zhí)行循環(huán)的最少次數(shù)為1。后測型Do循環(huán)結(jié)構(gòu)的語法格式:
Do
[〈語句組1〉]
[ExitDo]
[〈語句組2〉]
Loop[{While|Until}〈條件〉]
【說明】
(1)〈條件〉是條件表達(dá)式,為循環(huán)的條件,其值為True或False。
(2)〈語句組〉是一條或多條命令(循環(huán)體),當(dāng)或直到條件為真時(shí),被重復(fù)執(zhí)行。
5.理解后測型Do語句的執(zhí)行過程
后測型Do語句是先執(zhí)行一次循環(huán)體后,再進(jìn)行條件判斷,分為當(dāng)型和直到型兩種:
當(dāng)型Do…WhileLoop:當(dāng)條件為真時(shí)繼續(xù)執(zhí)行循環(huán)體,若條件為假,則終止循環(huán)。
直到型Do…UntilLoop:當(dāng)條件為假時(shí)繼續(xù)執(zhí)行循環(huán)體,直到條件為真時(shí),終止循環(huán)。
在Do…Loop循環(huán)體中,可以放置任意個(gè)ExitDo語句,隨時(shí)跳出Do…Loop循環(huán)。
【課堂演練】
【實(shí)例5-4】將華氏溫度轉(zhuǎn)換為攝氏溫度。
【實(shí)現(xiàn)步驟】
(1)問題分析。設(shè)華氏溫度為hs,攝氏溫度為ss,則華氏溫度轉(zhuǎn)換為攝氏溫度的公式為當(dāng)輸入的華氏溫度不為空時(shí),進(jìn)行計(jì)算,并顯示出攝氏溫度。
(2)本例不用建立用戶界面,可直接在窗體上載入。
(3)窗體Form1的裝入(Load)事件代碼:
PrivateSubForm_Load()
DimhsAsString,ssAsSingle,tsAsString
Form1.Visible=False ‘隱藏窗體
ts="輸入華氏溫度"Do
hs=InputBox(ts,"輸入華氏溫度","華氏溫度")'利用輸入對話框輸入華氏溫度
Ifhs<>""Then
ss=Int((hs–32)*5/9)'計(jì)算攝氏溫度
MsgBoxStr(ss),,"攝氏溫度"'利用消息框輸出攝氏溫度
EndIf
LoopWhilehs<>""'當(dāng)輸入框中的值不為空時(shí),反復(fù)計(jì)算輸出
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.5所示。圖5.5華氏溫度轉(zhuǎn)換為攝氏溫度
【實(shí)例5-5】輸入兩個(gè)正整數(shù),用“輾轉(zhuǎn)相除法”求它們的最大公約數(shù)。
【實(shí)現(xiàn)步驟】
(1)問題分析。用“輾轉(zhuǎn)相除法”求最大公約數(shù)的方法如下:
①以大數(shù)m做被除數(shù),小數(shù)n做除數(shù),相除后余數(shù)為r。②若r≠0,則m←n,n←r,繼續(xù)相除得到新的r。若仍有r≠0,則重復(fù)此過程,直到r=0為止。
③最后的n就是最大公約數(shù)。
(2)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖5.6
所示。圖5.6求最大公約數(shù)
(3)編寫事件代碼。命令按鈕的Click事件代碼為
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger
m=Val(Text1.Text)
n=Val(Text2.Text)
Ifn<=0Orm<=0Then
'若數(shù)據(jù)不在范圍內(nèi),則程序結(jié)束運(yùn)行
MsgBox“數(shù)據(jù)出錯(cuò)!” ‘消息框提示數(shù)據(jù)出錯(cuò)
UnloadMe
EndIf
Ifm<nThen ’使得大數(shù)在前
t=m:m=n:n=t
EndIf
Do '求最大公約數(shù)
r=mModn
m=n
n=r
LoopWhiler<>0 ‘當(dāng)r<>0時(shí)輾轉(zhuǎn)相除
Text3.Text=m ’輸出結(jié)果
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.6所示。
任務(wù)5.2For循環(huán)語句
任務(wù)導(dǎo)入
Do循環(huán)主要用在不知道循環(huán)次數(shù)的情況下。若事先知道循環(huán)次數(shù),或通過簡單的計(jì)算就可以知道循環(huán)次數(shù),則使用For循環(huán)會(huì)很方便。
學(xué)習(xí)目標(biāo)
(1)掌握For循環(huán)語句的格式,理解For循環(huán)的執(zhí)行過程。
(2)會(huì)計(jì)算For循環(huán)的執(zhí)行次數(shù)。
(3)能熟練使用For循環(huán)進(jìn)行程序設(shè)計(jì)。任務(wù)實(shí)施
1.掌握For循環(huán)語句的語法格式
For循環(huán)按指定次數(shù)執(zhí)行循環(huán)體,它在循環(huán)體中使用一個(gè)循環(huán)變量(計(jì)數(shù)器),每重復(fù)一次循環(huán)后,循環(huán)變量的值就會(huì)自動(dòng)增加或者減少。
For循環(huán)語句的語法格式為
For〈循環(huán)變量〉=〈初值〉To〈終值〉[Step〈步長〉]
[〈語句組1〉]
[Exit
For]
[〈語句組2〉]
Next[〈循環(huán)變量〉]
【說明】
(1)〈循環(huán)變量〉為必要參數(shù),是用做循環(huán)計(jì)數(shù)器的數(shù)值變量,該變量不能是數(shù)組元素。
(2)〈初值〉和〈終值〉都是必要參數(shù)?!床介L〉可以是正數(shù)或負(fù)數(shù)。當(dāng)步長的值為1時(shí),可以省略。
(3)可以省略Next語句中的〈循環(huán)變量〉,但寫上〈循環(huán)變量〉將提高程序的可讀性。
2.理解For循環(huán)語句的執(zhí)行過程
進(jìn)入For…Next循環(huán)后,首先把〈初值〉賦給〈循環(huán)變量〉,檢查〈循環(huán)變量〉的值是否超過〈終值〉。如果超過就停止執(zhí)行循環(huán)體,跳出循環(huán),執(zhí)行Next后面的語句;否則執(zhí)行一次循環(huán)體,然后把〈循環(huán)變量〉+〈步長〉的值賦給〈循環(huán)變量〉,重復(fù)上述過程。這里所說的“超過”有兩種含義,即大于或小于:
當(dāng)〈步長〉為正值時(shí),檢查〈循環(huán)變量〉的值是否大于〈終值〉。
當(dāng)〈步長〉為負(fù)值時(shí),檢查〈循環(huán)變量〉的值是否小于〈終值〉。
可以在循環(huán)中的任何位置放置任意個(gè)ExitFor語句,以隨時(shí)退出循環(huán)。
3.掌握For循環(huán)的循環(huán)次數(shù)的計(jì)算方法
For…Next循環(huán)遵循“先檢查,后執(zhí)行”的原則,即先檢查〈循環(huán)變量〉是否超過〈終值〉,然后決定是否執(zhí)行循環(huán)體。因此,在下列兩種情況下,循環(huán)體不被執(zhí)行:
當(dāng)〈步長〉為正數(shù)時(shí),〈初值〉大于〈終值〉。
當(dāng)〈步長〉為負(fù)數(shù)時(shí),〈初值〉小于〈終值〉。因此,循環(huán)的最少執(zhí)行次數(shù)為0。
當(dāng)〈初值〉等于〈終值〉時(shí),不管〈步長〉是正數(shù)還是負(fù)數(shù),均執(zhí)行一次循環(huán)體。
循環(huán)次數(shù)由〈初值〉、〈終值〉和〈步長〉三個(gè)因素決定,可以通過下式計(jì)算:
循環(huán)次數(shù)=INT((終值–初值)/步長+1)
如果計(jì)算出的循環(huán)次數(shù)小于或者等于0,則循環(huán)次數(shù)為0,這時(shí)系統(tǒng)將不執(zhí)行循環(huán)體。
【課堂演練】
【實(shí)例5-6】用For…Next語句求1+2+3+…+100的值。
【實(shí)現(xiàn)步驟】
(1)問題分析。用i作為循環(huán)計(jì)數(shù)器。用戶界面參見圖5.1。
(2)改寫Command1的Click事件代碼:PrivateSubCommand1_Click()
DimsAsInteger,nAsInteger
s=0
Forn=1To100 '初值為1,終值為100,步長為1(省略)
s=s+n '進(jìn)行累加
Nextn
Text1.Text=s'輸出累加結(jié)果
EndSub【實(shí)例5-7】用Print方法在窗體上輸出如圖5.7所示的圖形。圖5.7利用For循環(huán)輸出圖形
【實(shí)現(xiàn)步驟】
(1)問題分析。本圖形共5行,可看做3個(gè)小圖形,每行的字符數(shù)可以利用String()函數(shù)來輸出,例如輸出5個(gè)★,可以用String(5,"★")實(shí)現(xiàn)。輸出位置的控制利用Tab()和Spc()來實(shí)現(xiàn)。
(2)編寫窗體Form1的Load(裝入)事件代碼:
PrivateSubForm_Load()
Print:Print:Print‘輸出空行
Show’使Print輸出在窗體上可顯示
Fori=1To5 ‘共5行
PrintTab(5+i);String(6–i,“★”);Spc(6);String(i,“▲”);
Spc(6);String(6–i,“★”)
Nexti
EndSub
5.掌握For語句的嵌套方法
For…Next循環(huán)語句可以嵌套使用,嵌套層數(shù)沒有具體限制,其基本要求是:
每個(gè)循環(huán)必須有一個(gè)唯一的變量作為控制變量。
內(nèi)層循環(huán)必須完全放在外循環(huán)體內(nèi),且內(nèi)外循環(huán)不得互相交叉騎跨。例如,下面的嵌套是錯(cuò)誤的:
Fora=1To5
Forb=3To9
Nexta
Nextb
For…Next循環(huán)的嵌套通常有以下三種形式:
(1)一般嵌套形式。
Fora1=…
Fora2=…
Fora3=…
Nexta3
Nexta2
Nexta1
(2)上式中Next后面的a1、a2、a3可以省略不寫。
(3)當(dāng)內(nèi)層循環(huán)與外層循環(huán)有相同的終點(diǎn)時(shí),可共用一個(gè)Next語句,但是,控制變量名不能省略。例如:
Fora=1To2
Forb=2To3
Forc=3To4
Printa,b,c
Nextc,b,a
【課堂演練】
【實(shí)例5-8】打印乘法“九九表”。
【實(shí)現(xiàn)步驟】
(1)問題分析?!熬啪疟怼笔且粋€(gè)9行9列的二維表,行和列都要變化,而且在變化中相互約束。這是一個(gè)二重循環(huán)問題。
(2)直接在窗體上輸出。事件代碼如下:
PrivateSubForm_Load()
Show
FontSize=12 ‘設(shè)置字號
PrintTab(25);“九九表” ’輸出標(biāo)題
Print ‘輸出空行
Print"*";
Fori=1To9‘輸出第一行數(shù)字(1~9)
PrintTab(i*6);i;
Nexti
Print ’換行
Forj=1To9 ‘外層循環(huán)
Printj;“”;
Fork=1Toj '內(nèi)層循環(huán)
m=j*k ‘計(jì)算乘積
PrintTab(k*6);m;“”; ’定位輸出
Nextk
Print ‘換行
Nextj
EndSub
(3)運(yùn)行程序,輸出結(jié)果如圖5.8所示。圖5.8打印乘法“九九表”任務(wù)5.3列表框和組合框控件
任務(wù)導(dǎo)入
如果需要向用戶提供包含一些選項(xiàng)和信息的列表,由用戶從中進(jìn)行選擇,可使用列表框或組合框控件。列表框與組合框在使用時(shí)是不相同的。列表框任何時(shí)候都能看到多個(gè)選項(xiàng);組合框平時(shí)只能看到一個(gè)選項(xiàng),單擊組合框右端的下拉箭頭按鈕可以打開具有多個(gè)選項(xiàng)的列表。學(xué)習(xí)目標(biāo)
(1)會(huì)使用列表框控件進(jìn)行界面設(shè)計(jì)和程序設(shè)計(jì)。
(2)會(huì)使用組合框控件進(jìn)行界面設(shè)計(jì)和程序設(shè)計(jì)。任務(wù)實(shí)施
1.掌握列表框的屬性
列表框(ListBox)通過顯示多個(gè)選擇項(xiàng),供用戶選擇其中一項(xiàng),達(dá)到與用戶對話的目的。當(dāng)有較多選項(xiàng)而不能一次全部顯示時(shí),VB會(huì)自動(dòng)加上垂直滾動(dòng)條,如圖5.9所示。圖5.9列表框項(xiàng)目的設(shè)置列表框的常用屬性除了Name、Enabled、Visible、Index外,還有表5-1所列屬性。
2.掌握列表框的方法
列表框中的選擇項(xiàng)可以簡單地在設(shè)計(jì)狀態(tài)通過List屬性設(shè)置,也可以在程序中用AddItem方法來添加,用Clear或RemoveItem方法刪除。
1)AddItem方法
AddItem方法把一個(gè)項(xiàng)目加入列表框中,其語法格式如下:
〈對象〉.AddItem〈字符串表達(dá)式〉[,〈位置〉]
【說明】
(1)?AddItem方法適用于列表框或組合框。
(2)〈字符串表達(dá)式〉是要加入列表框或組合框的項(xiàng)目。
(3)〈位置〉決定新增項(xiàng)目在列表框或組合框中的位置。如果省略,則新增項(xiàng)目添加在最后。對于第一個(gè)項(xiàng)目,位置
為0。
2)?Clear方法
Clear方法可清除列表框的所有內(nèi)容,其語法格式如下:
〈對象〉.Clear
【說明】
Clear方法中的對象可以是列表框、組合框或剪貼板。
3)?RemoveItem方法
RemoveItem方法可以從列表框中除去一個(gè)項(xiàng)目,其語法格式如下:
〈對象〉.RemoveItem〈位置〉
【說明】
該方法適用于列表框或組合框。〈位置〉是被刪除項(xiàng)目在列表框或組合框中的位置。對于第一個(gè)項(xiàng)目,位置為0。
【課堂演練】
【實(shí)例5-9】編寫一個(gè)對本學(xué)期選修課程進(jìn)行項(xiàng)目添加、修改和刪除操作的應(yīng)用程序,如圖5.10所示。圖5.10添加、修改、刪除選修課程
【實(shí)現(xiàn)步驟】
(1)問題分析。因?yàn)椴荒苤苯訉α斜砜蛑械捻?xiàng)目進(jìn)行添加、修改和刪除操作,所以利用一個(gè)文本框。列表框的項(xiàng)目在Form1_Load中用AddItem方法添加?!疤砑印卑粹o的功能是將文本框中的內(nèi)容添加到列表框,“刪除”按鈕的功能是刪除列表框中選定的項(xiàng)目。如果要修改列表框,則首先選定項(xiàng)目,然后按“修改”按鈕,所選的項(xiàng)目就顯示在文本框中,在文本框中修改完之后再按“修改確定”按鈕就可更新列表框。
(2)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖5.11所示。圖5.11用戶界面和對象屬性
(3)編寫事件代碼。窗體Form的Load事件代碼:
PrivateSubForm_Load()
‘在列表框中加入“鄧小平理論”等課程項(xiàng)目
List1.AddItem“鄧小平理論”
List1.AddItem“體育”
List1.AddItem“英語”
List1.AddItem“應(yīng)用文寫作”
List1.AddItem"VB程序設(shè)計(jì)"
List1.AddItem“高等數(shù)學(xué)”
List1.AddItem“工程制圖”
List1.AddItem“工程測量”
List1.AddItem“計(jì)算機(jī)應(yīng)用基礎(chǔ)”
List1.AddItem“美學(xué)欣賞”
Command4.Enabled=False
EndSub“添加”按鈕Command1的單擊Click事件代碼如下:
PrivateSubCommand1_Click()
List1.AddItemText1.Text
‘將文本框中的內(nèi)容添加到列表框
Text1.Text=“” ’清空文本框
EndSub“刪除”按鈕Command2的單擊Click事件代碼如下:
PrivateSubCommand2_Click()
List1.RemoveItemList1.ListIndex
‘除去列表框中選定的項(xiàng)目
EndSub“修改”按鈕Command3的單擊Click事件代碼如下:
PrivateSubCommand3_Click()
Text1.Text=List1.Text ‘將列表框中當(dāng)前選中的項(xiàng)目內(nèi)容賦值給文本框
Text1.SetFocus ’設(shè)置焦點(diǎn)
Command1.Enabled=False‘使得“添加”按鈕不可用
Command2.Enabled=False'使得“刪除”按鈕不可用Command3.Enabled=False '使得“修改”按鈕不可用
Command4.Enabled=True '使得“修改確定”按鈕可用
EndSub
“修改確定”按鈕Command4的單擊Click事件代碼如下:PrivateSubCommand4_Click()
List1.List(List1.ListIndex)=Text1.Text'將文本框中的內(nèi)容返還入列表框
Command4.Enabled='使“修改確定”按鈕不可用
Command1.Enabled=True'使得“添加”按鈕可用
Command2.Enabled=True'使得“刪除”按鈕可用
Command3.Enabled=True'使得“修改”按鈕可用
Text1.Text=""'清空文本框內(nèi)容
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.12~圖5.15所示。圖5.12添加課程圖5.13刪除課程圖5.14修改課程圖5.15修改確定
【實(shí)例5-10】利用For循環(huán)顯示100以內(nèi)所有能被3整除的自然數(shù)。
【實(shí)現(xiàn)步驟】
(1)問題分析。某數(shù)n能被3整除,即nMod3=0。
(2)窗體界面的設(shè)計(jì)與屬性設(shè)置。在新建的窗體中增加一個(gè)列表框List1、一個(gè)標(biāo)簽Lable1和一個(gè)命令按鈕Command1。其中各對象的屬性設(shè)置參見圖5.16。圖5.16建立用戶界面
(3)編寫代碼。命令按鈕的Click事件代碼為
PrivateSubCommand1_Click()
List1.Clear ‘清空列表框的內(nèi)容
Forn=1To100
IfnMod3=0ThenList1.AddItemn ’如果n能被3整除,則添加到列表框中
Nextn
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.17所示。圖5.17求100以內(nèi)能被3整除的數(shù)
【實(shí)例5-11】找出1~1000之間的全部“同構(gòu)數(shù)”。如果一個(gè)數(shù)出現(xiàn)在其平方數(shù)的右端,則稱此數(shù)為同構(gòu)數(shù),如1在12=1的右端,5在52=25的右端,25在252=625的右端等。
【實(shí)現(xiàn)步驟】
(1)問題分析。一個(gè)1位數(shù)是同構(gòu)數(shù)的條件是x=x^2Mod10為True,一個(gè)2位數(shù)是同構(gòu)數(shù)的條件是x=x^2Mod100為True,等等。
(2)設(shè)計(jì)用戶界面,并設(shè)置對象屬性,如圖5.18所示。
(3)編寫事件代碼?!伴_始”命令按鈕的Click事件代碼:
PrivateSubCommand1_Click()
DimnAsLong
DimL1AsBoolean,L2AsBoolean,L3AsBoolean ‘定義L1、L2、L3為布爾型數(shù)據(jù)
List1.Clear’清空列表框中的內(nèi)容
Forn=1To1000
L1=n=n^2Mod10 ‘1位同構(gòu)數(shù)
L2=n=n^2Mod100
'2位同構(gòu)數(shù)
L3=n=n^2Mod1000 ‘3位同構(gòu)數(shù)
IfL1OrL2OrL3Then
List1.AddItemn’將n添加到列表框
EndIf
Next
EndSub
(4)運(yùn)行程序,結(jié)果如圖5.18所示。圖5.18程序界面與程序運(yùn)行結(jié)果
【實(shí)例5-12】利用循環(huán)結(jié)構(gòu)和列表框控件,設(shè)計(jì)“選項(xiàng)移動(dòng)”窗體。所謂“選項(xiàng)移動(dòng)”窗體,是指由兩個(gè)列表框和四個(gè)命令按鈕所構(gòu)成的界面,在Windows程序中常見到此類窗口(如圖5.19所示)。圖5.19“選項(xiàng)移動(dòng)”窗體
【實(shí)現(xiàn)步驟】
(1)建立應(yīng)用程序用戶界面,并設(shè)置對象屬性,如圖5.20所示。其中,列表框的屬性設(shè)置如表5-2所示。圖5.20建立用戶界面和設(shè)置對象屬性
(2)編寫事件代碼。窗體Form1的裝入Load事件代碼:
PrivateSubForm_Load()
‘添加項(xiàng)目
List1.AddItem“鄧小平理論”:List1.AddItem“體育”
List1.AddItem“英語”:List1.AddItem“應(yīng)用文寫作”
List1.AddItem"VB程序設(shè)計(jì)":List1.AddItem"高等數(shù)學(xué)"
List1.AddItem“工程制圖”:List1.AddItem“工程測量”
List1.AddItem“計(jì)算機(jī)應(yīng)用基礎(chǔ)”:List1.AddItem“美學(xué)欣賞”
EndSub
“>”(復(fù)制)命令按鈕的Click事件代碼:
PrivateSubCommand1_Click()
i=0
DoWhilei<List1.ListCountIfList1.Selected(i)=TrueThen '選中預(yù)選課程
List2.AddItemList1.List(i) '追加在List2中
List1.RemoveItemi '在List1中移除
i=i+1 '下一序號
EndIf
Loop
EndSub“>>”(全部復(fù)制)命令按鈕的Click事件代碼:
PrivateSubCommand2_Click()
Fori=0ToList1.ListCount–1‘依次選中List1的各項(xiàng)
List2.AddItemList1.List(i)’在List2中追加List1的項(xiàng)目
Next
List1.Clear ‘刪除List1中的各項(xiàng)
EndSub“<”(移除)命令按鈕的Click事件代碼:
PrivateSubCommand3_Click()
i=0
DoWhilei<List2.List(i)
IfList2.Selected(i)=TrueThen‘選中List2中的項(xiàng)目
List1.AddItemList2.List(i)
'在List1中追加List2中選定的項(xiàng)目
List2.RemoveItemi‘移除List2中的項(xiàng)目
i=i+1
EndIf
Loop
EndSub
“<<”(全部移除)命令按鈕的Click事件代碼:
PrivateSubCommand4_Click()
Fori=0ToList2.ListCount–1‘依次選定List2中的各項(xiàng)
List1.AddItemList2.List(i)
’在List1中追加在List2中選定的項(xiàng)目
Nex
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土建建設(shè)工程合同范例
- 整體轉(zhuǎn)讓飯店合同范例
- 南京 前期物業(yè)合同范例
- 拆除工程勞務(wù)合同范例
- 美容院第三方合作合同范例
- 2025合同樣例小產(chǎn)權(quán)房買賣合同買方范本
- 樹木砍伐安全合同范例
- 商鋪用電安全合同范例
- 導(dǎo)游聘用勞動(dòng)合同范例
- 廣州代理公司注冊合同范例
- 福維克直銷獎(jiǎng)金制度完整版
- JCT 2789-2023 涂料用長石粉 (正式版)
- DB11-T 1832.22-2023 建筑工程施工工藝規(guī)程 第22部分:裝配式裝修工程
- 四川省成都市成華區(qū)2023-2024學(xué)年七年級上學(xué)期期末語文試題
- 醫(yī)療陪護(hù)行業(yè)前景分析報(bào)告
- 個(gè)體診所藥品清單模板
- 有機(jī)更新工作總結(jié)
- eviews操作說明課件
- 教師法律法規(guī)講座課件
- 戰(zhàn)場偵察課件
- 2023年道德與法治的教學(xué)個(gè)人工作總結(jié)
評論
0/150
提交評論