用VB編寫抽獎(jiǎng)程序教學(xué)設(shè)計(jì)
一、界面設(shè)計(jì)
新建一個(gè)標(biāo)準(zhǔn)的exe工程。在form1窗體中放置一個(gè)定時(shí)器(timer1)、兩個(gè)文本框(label1,label2)、兩個(gè)命令按鈕(command1,command2)和包含7個(gè)元素的控件數(shù)組(label3(0)—label3(6))。
二、屬性設(shè)置
label3控件數(shù)組中的所有元素皆采用相同設(shè)置。
三、代碼編寫
本程序的實(shí)現(xiàn)原理是:當(dāng)用戶單擊“開始”按鈕時(shí),打開定時(shí)器,利用定時(shí)器控件同時(shí)產(chǎn)生兩個(gè)隨機(jī)數(shù)sj1、sj2,sj1的范圍是1~32,sj2的范圍是0~49。當(dāng)sj1=24的時(shí)侯,用sj2與前面產(chǎn)生的中獎(jiǎng)號(hào)碼作比較,若與前面的中獎(jiǎng)相同,則退出本過程;若與前面的中獎(jiǎng)號(hào)碼不同,則將此隨機(jī)數(shù)作為中獎(jiǎng)號(hào)碼。當(dāng)產(chǎn)生了7個(gè)中獎(jiǎng)號(hào)碼時(shí),關(guān)閉定時(shí)器控件,停止產(chǎn)生隨機(jī)數(shù)。
本程序用到的函數(shù)簡(jiǎn)介:
(1)randomize:初始化隨機(jī)數(shù)的種子數(shù)。
(2)int():返回一個(gè)非整形數(shù)字取整后的整數(shù)。
(3)rnd:產(chǎn)生一個(gè)0~1之間的隨機(jī)數(shù)(大于等于0,但小于1)。
(4)qbcolor():返回參數(shù)(0~15)對(duì)應(yīng)的顏色。
(5)val:將一個(gè)字符形變量轉(zhuǎn)化為一個(gè)數(shù)值型變量。
(6)format:格式化一個(gè)表達(dá)式。
以下是程序的完整代碼:
dim sy as integer
′命令按鈕1的單擊事件
private sub command1_click()
′清除label3控件數(shù)組的內(nèi)容
for i=0 to 6
label3(i).caption=′′
next
timer1.enabled=true′打開定時(shí)器
command1.enabled=false′使開始按鈕失效
sy=-1′索引值初始化為-1
end sub
′命令按鈕2的單擊事件
private sub command2_click()
unload me ′卸載本窗體
end sub
′定時(shí)器1的定時(shí)事件
private sub timer1_timer()
dim sj1,sj2,ys as integer
randomize′初始化隨機(jī)數(shù)
sj1=int(rnd*32)+1
sj2=int(rnd*50)
label1.caption=sj1′設(shè)置標(biāo)簽1的內(nèi)容
ys=int(rnd*6)+9
label1.forecolor=qbcolor(ys)
if sj2=24 then′如果sj2等于24
sy=sy+1′索引值加1
for a=o to sy
if sj1=val(label3(a).caption) then
sy=sy - 1
exit sub
end if
next
label3(sy).caption=format(sj1, ′00′)
label3(sy).forecolor=qbcolor(ys)
end if
if sy=6 then′如果索引值等于6
timer1.enabled=false ′關(guān)閉定時(shí)器
command1.enabled=true ′使命令按鈕有效(即可重新開始抽獎(jiǎng))
end if
end sub
單擊工具欄上的“啟動(dòng)”按鈕,啟動(dòng)抽獎(jiǎng)程序。單擊“開始”按鈕,label1控件將用五彩繽紛的顏色快速顯示1~32之間的數(shù)字,并在label3控件數(shù)組中產(chǎn)生一組7個(gè)數(shù)字的中獎(jiǎng)號(hào)碼。再次單擊“開始”按鈕,程序?qū)⒆詣?dòng)清除label3控件數(shù)組中的內(nèi)容,并重新產(chǎn)生一組7個(gè)數(shù)字的中獎(jiǎng)號(hào)碼(與前面的不相同)。
<