基于Access数据库的抽奖系统设计
来源:优易学  2010-1-15 17:42:55   【优易学:中国教育考试门户网】   资料下载   IT书店

 

 其程序设计比较简单,主要程序如下:

……
If Me!奖励等级.Value = 1 Then
 Me!总数量.Value = 10
End If
If Me!奖励等级.Value = 2 Then
 Me!总数量.Value = 30
End If
If Me!奖励等级.Value = 3 Then
 Me!总数量.Value = 50
End If
Forms!抽奖.Q_抽奖统计.Requery
If Me!奖励等级.Value = 1 Then
 Me!抽奖数量.Value = 5
End If
If Me!奖励等级.Value = 2 Or Me!奖励等级.Value = 3 Then
 Me!抽奖数量.Value = 10
End If
……

  通过点击开始按钮开始抽奖,同时按钮标题变为停止,再次点击停止此批次抽奖,同时按钮标题变为开始,继续点击开始下一批次抽奖,如此反复,直至完成总抽奖数,此时提示“抽奖总数已到”,如果未完成总抽奖数就开始另外一轮抽奖,则提示“抽奖限制”。

  内部抽奖主要解决随机性和相对均衡两个问题。系统初始化在参加抽奖人员名单前随机生成了序号,通过查询“号码重排序”将参加抽奖人员名单按照序号升序排列,抽奖时按照序号顺序抽奖,实现了随机的要求。相对均衡要求大致按照各个部门人数占总人数的百分比来分配中奖人数,本系统采用各个部门占总人数的百分比乘以抽奖总数的方法来大致确定各个部门的中奖人数,有小数的数字通过程序设计进行四舍五入处理。需要注意的是,若使所有的部门中奖人数都要用四舍五入的方法进行处理则可能出现错误,为了避免这种情况需要选定一个部门,使其中奖人数等于总抽奖数减去其他各个部门中奖人数之和[2]。抽奖模块的主要程序代码如下:

……
N = 0
cnt = Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value + Me!退休.Value
Do While Me!抽奖数量.Value > N And Not qrs.EOF And cnt < Me!总数量.Value
 '电科抽奖
 ’四舍五入确定电科中奖数

 If Me!电科.Value < (Int(((unit1.姓名之Count / cnt1) * Me!总数量.Value + 0.5))) And N < Me!抽奖数量.Value And cnt < Me!总数量.Value Then
  If qrs.单位 = "电科" And qrs!批次.Value = 0 Then
   Me!电科.Value = Me!电科.Value + 1
   qrs.Edit
   qrs!奖励等级.Value = Me!奖励等级.Value
   qrs!批次.Value = Me!批次.Value
   qrs.Update
   N = N + 1
  End If
 Else
 End If
 ……
 '退休抽奖
 cnt = Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value + Me!退休.Value
 cnt2= Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value
 '剩余数量分配给退休
 If Me!退休.Value < Int((Me!总数量.Value – cnt2) And N < Me!抽奖数量.Value And cnt < Me!总数量.Value Then
  If qrs22.单位 = "退休" And qrs!批次.Value = 0 Then
   Me!退休.Value = Me!退休.Value + 1
   qrs.Edit
   qrs22!奖励等级.Value = Me!奖励等级.Value
   qrs22!批次.Value = Me!批次.Value
   qrs22.Update
   N = N + 1
  End If
 Else
 End If
 ……
 ’判断是否完成抽奖
 cnt = Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value + Me!退休.Value
 If cnt = Me!总数量.Value Then
  MsgBox ("抽奖总数已到。")
  Me.可抽奖.Value = 0
 Else
  MsgBox ("抽奖限制。")
 End If
 ……

  结论

  本系统利用Access数据库,结合其内置VBA语言,探讨了系统初始化、抽奖的随机性和相对均衡性等关键问题,满足了抽奖的要求。进行适当调整,该系统可以应用于多种抽奖场合。

上一页  [1] [2] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训