手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

用Visual Basic设计抽奖程序

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
  抽奖活动在生活中屡见不鲜,给我们日常生活也增添了不少乐趣。这里向大家介绍一种都很熟悉的电脑模拟抽奖游戏,就像各类晚会上经常使用的抽奖模式。抽奖程序操作要求方便直观,全体人员都可以清楚地观看抽奖全过程。

  一、设计界面

  先打开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企业版中顺利通过。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

[打印] [关闭]
Google
相关文章
上一篇:利用VB学做“黑客”程序
下一篇:VB编程控制Windows中文输入法
热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS