《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目五_第1頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目五_第2頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目五_第3頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目五_第4頁
《Visual Basic程序設(shè)計(jì)》課件項(xiàng)目五_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論