用VB编写抽奖程序
, m1 }+ j* H9 @8 @0 O9 p 一、界面设计
! i4 n& v; U9 n1 T3 d. U 新建一个标准的EXE工程。在Form1窗体中放置一个定时器(Timer1)、两个文本框(Label1,Label2)、两个命令按钮(Command1,Command2)和包含7个元素的控件数组(Label3(0)—Label3(6))。
4 \3 }, T0 W4 D 二、属性设置
& |# u$ I0 [( D- U" K$ @0 K Label3控件数组中的所有元素皆采用相同设置。/ C( {& m+ d. F r& A
三、代码编写) K- c( J6 P, Q/ T! H# q: {! M
本程序的实现原理是:当用户单击“开始”按钮时,打开定时器,利用定时器控件同时产生两个随机数sj1、sj2,sj1的范围是1~32,sj2的范围是0~49。当sj1=24的时侯,用sj2与前面产生的中奖号码作比较,若与前面的中奖相同,则退出本过程;若与前面的中奖号码不同,则将此随机数作为中奖号码。当产生了7个中奖号码时,关闭定时器控件,停止产生随机数。( c% H) f8 L+ z" M2 s! S
本程序用到的函数简介:
3 U# N; B1 O+ U g/ z (1)Randomize:初始化随机数的种子数。9 u% @; }! L: [# s: U8 v2 c% v
(2)Int():返回一个非整形数字取整后的整数。! h& J Y$ j) Y+ [3 s6 U& o
(3)Rnd:产生一个0~1之间的随机数(大于等于0,但小于1)。
8 m& j. A5 `5 f (4)Qbcolor():返回参数(0~15)对应的颜色。% z7 O5 D8 V8 z- \ H9 Y, N* F/ V, B: J1 i
(5)Val:将一个字符形变量转化为一个数值型变量。$ z4 J! E4 ^' T6 C
(6)Format:格式化一个表达式。6 Y; [. N9 x7 ]2 T2 ^- x6 N( A
以下是程序的完整代码:
3 Y' A) W5 T6 P; S& w! h& w+ }3 B Dim sy As Integer
% f3 H3 C8 `1 m8 D: b3 W ′命令按钮1的单击事件% Z `8 O3 @# P; d- V" D
Private Sub Command1_Click()
5 \& _4 Z8 D5 e% s ′清除Label3控件数组的内容: g9 c2 `- q) V+ w0 {6 C% R7 H* [
For i=0 To 6- R' s4 {' [' \! ?, b* Y
Label3(i).Caption=″″
" Z- }' T/ y9 m) Q/ G Next
" M/ }2 \6 A/ v3 D2 E/ l$ N- v Timer1.Enabled=True′打开定时器
& F3 s) T1 f2 f- u' ~2 Y" c& [7 J Command1.Enabled=False′使开始按钮失效1 q( J$ O! f: D4 X8 o, T
sy=-1′索引值初始化为-1
2 U/ C q* E( H8 I8 A8 B End Sub
5 P3 \5 D3 P. K. l8 F ′命令按钮2的单击事件
" W6 U" N" n/ p% x2 R Private Sub Command2_Click()* }2 l1 m* j0 Q
Unload Me ′卸载本窗体
1 J: _/ s# ~; ]. U$ V" q% c5 u" M End Sub
! ^3 o! M9 }# K0 s/ o/ d( [ ′定时器1的定时事件
! e7 ]! h: P; l4 j x7 x Private Sub Timer1_Timer()
& ~0 }: O& H9 O, m K Dim sj1,sj2,ys As Integer
2 J$ P/ X, a: a Randomize′初始化随机数+ ?+ U( E8 {1 f' t3 V0 e0 |/ ]8 O
sj1=Int(Rnd*32)+1 V- ]) b% @* v& R1 l+ E
sj2=Int(Rnd*50)! w) K4 f# X; Q, e
Label1.Caption=sj1′设置标签1的内容
) C$ x6 p8 r q0 T ys=Int(Rnd*6)+9
9 t# J. l' _0 X Label1.ForeColor=QBColor(ys)" K' e( b/ I0 x
If sj2=24 Then′如果sj2等于248 Y4 W1 U9 k; W' J$ U: V5 p1 n
sy=sy+1′索引值加1) G( ^* H Q4 e
For a=o To sy, d! X5 O, P5 C% Z4 G4 j8 {0 ^3 |
If sj1=Val(Label3(a).Caption) Then7 [# a8 R5 o% b8 x" B
sy=sy - 1
! W. @1 E5 Y! {$ Q. d" s- f) Z Exit Sub3 {# ]* N: Q; | B- t- @
End If. n* {1 y& Q3 |9 u; u' i6 W
Next* h: _* Y1 Q% F; X+ G A* X
Label3(sy).Caption=Format(sj1, ″00″)* B% b( t4 G8 d1 j& Y% h" C
Label3(sy).ForeColor=QBColor(ys)
+ Z2 y7 L9 s+ h$ j7 x( m5 z/ d End If$ I) d+ m: N7 K$ [
If sy=6 Then′如果索引值等于60 S% N$ p. e0 R+ p k, E/ ]5 }
Timer1.Enabled=False ′关闭定时器
3 V7 s% ?& Q4 f- ]) T Command1.Enabled=True ′使命令按钮有效(即可重新开始抽奖)
9 W- N1 E5 f {( g/ K5 N3 h End If3 X2 ?6 `( M2 T. v9 u3 x
End Sub
5 P: m# ~7 H- H) e) Q 单击工具栏上的“启动”按钮,启动抽奖程序。单击“开始”按钮,Label1控件将用五彩缤纷的颜色快速显示1~32之间的数字,并在Label3控件数组中产生一组7个数字的中奖号码。再次单击“开始”按钮,程序将自动清除Label3控件数组中的内容,并重新产生一组7个数字的中奖号码 |