a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 57|回复: 0

[Visual Basic] 计算机二级辅导:用VB编写抽奖程序

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
  用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个数字的中奖号码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-9 06:56 , Processed in 0.300073 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表