用Visual Basic设计抽奖程序
2008-04-09 04:44:48来源:互联网 阅读 ()
一、设计界面
先打开VB,在Form1中定义六个命令按钮,分别用来显示中奖号码的各位数字。默认情况下,参加的人数应少于10万人(当然,可以通过增加或减少按钮的个数,扩大或缩小参加抽奖人数的范围)。再增加两个命令按钮,一个设置为“确定”键,当按下时,显示中奖号码。另一个设置为“继续”键,让计数器在选出中奖号码后接着继续滚动,直至再次按下“确定”键(界面如图)。
再新建一个窗体Form2,加入一个文本输入框,一个命令按钮,一个标签。其中文本框用于输入参加本次活动的人数;命令按钮用于确定和检验输入的字符串是否合法;标签用于显示本次活动参加的人数。
这个程序调用系统随机函数rnd来实现号码的随机产生,定义函数quwei()来显示号码的各位数字,通过Form2中的文本输入,来限制滚动时出现的最大号码。
具体代码实现如下:
Private Sub Command1_Click()
If Text1.Text = "" Then
Exit Sub
Text1.SetFocus
End If ‘如果为空,要求重新输入。
If Len(Text1.Text) > 5 Then
MsgBox "提示", vbOKOnly, "你输入的值太大"
Text1.Text = "": Text1.SetFocus
Exit Sub
End If ‘如果太大,清空后再重新输入
If Int(Text1.Text) < 6 Then
MsgBox "提示", vbOKOnly, "你输入的值太小"
Text1.Text = "":Text1.SetFocus
Exit Sub
End If ‘如果太小,清空后再重新输入
Form2.Hide ‘关闭Form2
Form1.Show ‘打开Form1
Load Me
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (48 <= KeyAscii And KeyAscii <= 57 ) Then
If KeyAscii <> 8 Then
KeyAscii = 0 ‘容错,使输入的整数值有效
End If
End If
End Sub
Const max = 100000 ‘范围设置
Dim d(0 To 5) As Integer ‘存储号码各位数字
Dim number(0 To 5) As Long ‘存储中奖号码
Dim ss, zhongjiang As Long
Dim stop_1 As Boolean ‘是否选定
Dim cishu As Integer ‘中奖次数
Public Function panduan(ByVal sa As Long)
panduan = False
Dim i
For i = 0 To 5
If sa = number(i) Then
panduan = True
GoTo dd
End If
Next
dd:
End Function ‘判断是否出现过此号码
Public Sub quwei(ByVal sa As Long)
Dim i As Integer
For i = 0 To 5
d(i) = sa Mod 10
sa = sa \ 10
Next
For i = 0 To 5
Me.Command1(i).Caption = d(5 - i) ‘显示各位数字
Next
End Sub
Private Sub Command2_Click(Index As Integer)
If Index = 0 Then
If cishu > 5 Then
MsgBox "提示", vbOKOnly, "中奖的次数已经超过六次了!"
Timer1.Enabled = False
Dim i
For i = 0 To 5
If i < 2 Then
Command1(i).Visible = False
Command2(i).Visible = False
End If
Command1(i).Visible = False
Next
Dim string1
string1 = "本轮中奖的号码为:" CStr(number(0)) " " CStr(number(1)) " " CStr(number(2))
string1 = string1 CStr(number(3)) " " CStr(number(4)) " " CStr(number(5))
Label1(0).Caption = string1 ‘显示中奖号码
Label1(0).Visible = True ‘提示性标签显示
Exit Sub
End If
number(cishu) = ss
cishu = cishu 1
stop_1 = True
Else
stop_1 = False
End If
End Sub
Private Sub Form_Load()
Randomize Timer ‘调用系统函数,保证产生的数是随机的
Label1(0).Visible = False
stop_1 = False
Dim i
cishu = 0
For i = 0 To 5
number(i) = 0
ss = (Int(Int(Form2.Text1.Text) * Rnd) 1) Mod Int(Form2.Text1.Text) 1
Next
End Sub ‘初始化变量
Private Sub Timer1_Timer()
If Not stop_1 Then
ss = (Int(Int(Form2.Text1.Text) * Rnd) 1) Mod Int(Form2.Text1.Text) 1
While (panduan(ss))
ss = (Int(Int(Form2.Text1.Text) * Rnd) 1) Mod Int(Form2.Text1.Text) 1
Wend
quwei ss
Else
Exit Sub
End If
End Sub
好了,至此我们已经完成了一个简单的电脑模拟抽奖程序的编写,希望你能设计出更好的模拟程序来。
以上程序在Windows2000,中文VB6.0企业版中顺利通过。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:利用VB学做“黑客”程序
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash