VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 用VB编写接近实际的抽奖程序
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:8034, 日期:2001-06-17
用VB编写接近实际的抽奖程序
王建华
--------------------------------------------------------------------------------

  近来彩票风行全国,普通人将他作为改变生活的希望,国家将他作为创收的一个项目。笔者设计了一个颇有味道的彩票程序,希望能帮助您重奖,如果您中奖请通知我,呵呵。

  注释:本程序以"江苏风采福利彩票"(36选7)为例

  注释:由于福利彩票是从36个球中选出7个球,有一些资料上介绍是用随机函数产生一个数,为了避产生重复的数故而进行比较,重复时舍弃重选。或者做7个变量使它们不同。

  注释:本程序特点接近实际,ListBox作为数据容器,每产生一个数将其移去(RemoveItem方法)。产的数放在数组中,最后再排序。

  注释:在窗体中放置两个命令按钮(CmdRnd,CmdExit);包含5个元素的控件数(text1(0)~text1(4));一个组合框控件List1,将其Visible属性设置为False。

  注释:注:可以用ComboBox控件代替ListBox控件,只要将程序中的ListBox控件(list1)改
为ComboBox控件(combo1)即可。

  注释:声明

  Private Const AllData = 36 注释:总数为36

  Private Const Choose = 7 注释:要选出的数为7个

  Dim Num(Choose - 1) As Byte 注释:数组用来存放选出的数

  Private Sub CmdRnd_Click() 注释:产生随机数

  Dim i, j, RndData

  For j = 0 To 4 注释:产生5组数据

   For i = 1 To AllData

    List1.AddItem i

   Next i

   For i = 0 To Choose - 1

    Randomize 注释:初始化随机数的种子数

    RndData = Int(((AllData - i) * Rnd) + 1)

    Num(i) = List1.List(RndData - 1)

    List1.RemoveItem (RndData - 1)

   Next i

   PopSort 注释:调用冒泡排序

   Text1(j) = " "

   For i = 0 To Choose - 1

    If Num(i) < 10 Then

     Text1(j) = Text1(j) & "0" & Num(i) & " " 注释:小于10的数在前面补“0”

    Else

     Text1(j) = Text1(j) & Num(i) & " "

    End If

   Next i

   List1.Clear 注释:清除总数容器

  Next j

  End Sub

  Sub PopSort() 注释:冒泡排序

    Dim i, j, Temp As Byte

    For i = Choose - 1 To 1 Step -1

     For j = Choose - 1 To 1 Step -1

      If i >= Choose - 1 - j Then

       If Num(j) < Num(j - 1) Then

         Temp = Num(j - 1)

         Num(j - 1) = Num(j)

         Num(j) = Temp

       End If

      End If

     Next j

    Next i

   End Sub

  Private Sub CmdExit_Click() 注释:退出程序

   Unload Me

  End

 End Sub