Access数据库的抽奖系统设计_第1页
Access数据库的抽奖系统设计_第2页
Access数据库的抽奖系统设计_第3页
Access数据库的抽奖系统设计_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Access数据库的抽奖系统设计引言当今社会,各种各样的抽奖活动相当普遍,抽奖活动的基本原则和主要特征是随机性,但对于某一团体内部的抽奖活动来说,还有一个相对均衡的问题,所谓相对均衡就是指让各个部门的中奖概率和其人数占总人数的比重大致相等。基于Access,结合其内置VBA语言,通过程序设计实现抽奖的随机,通过算法研究实现抽奖的相对均衡。本文主要介绍了系统原理以及主要程序的设计。系统组成及原理抽奖系统主要由来宾登记、奖票管理、幸运抽奖、获奖查询四个基本模块构成,登记模块登记参加抽奖人员,奖票管理模块初始化参加抽奖人员名单,抽奖模块实现抽奖功能,获奖查询模块查询获奖结果。其中,抽奖模块中可以实现

2、奖励等级、总抽奖数、每一次抽奖数的控制。系统架构框图如图1。图1 系统架构系统初始化来宾登记模块中已经收录了参加抽奖的人员名单以及所属部门,在奖票管理模块中,当点击初始化按钮时通过内部程序设计首先把上次的抽奖结果清空,同时利用Rnd在参加抽奖的人员名单前随机生成一系列的序号,为幸运抽奖模块中的随机抽奖做准备1。主要初始化程序代码如下:DoCmd.SetWarnings FalseDoCmd.OpenQuery "删除对奖票号", acNormal, acEditDoCmd.OpenQuery "追加对奖票号", acNormal, acEditDoCmd

3、.SetWarnings TrueSet qrs = CurrentDb.OpenRecordset("对奖票号")qrs.MoveFirsti = 1Do While Not qrs.EOFqrs.Editqrs!序号 = Int(211 - 1) * Rnd)qrs!对奖号码 = iqrs.Updatei = i + 1qrs.MoveNextLoopMsgBox ("对奖名单初始化完毕。")qrs.Close抽奖功能的实现通过抽奖模块实现最终抽奖功能。通过奖励等级组合框控制抽奖等级,通过抽奖数量组合框控制每批次抽奖数量,通过总抽奖数组合框控制总抽奖

4、数。当奖励等级分别为一、二、三等奖时,抽奖数量和总抽奖数默认值分别为5、10、10和10、30、50。各组合框的具体数值也可以通过上下箭头控制。抽奖界面如图2。图 2 抽 奖 界 面其程序设计比较简单,主要程序如下:If Me!奖励等级.Value = 1 ThenMe!总数量.Value = 10End IfIf Me!奖励等级.Value = 2 ThenMe!总数量.Value = 30End IfIf Me!奖励等级.Value = 3 ThenMe!总数量.Value = 50End IfForms!抽奖.Q_抽奖统计.RequeryIf Me!奖励等级.Value = 1 Then

5、Me!抽奖数量.Value = 5End IfIf Me!奖励等级.Value = 2 Or Me!奖励等级.Value = 3 ThenMe!抽奖数量.Value = 10End If通过点击开始按钮开始抽奖,同时按钮标题变为停止,再次点击停止此批次抽奖,同时按钮标题变为开始,继续点击开始下一批次抽奖,如此反复,直至完成总抽奖数,此时提示“抽奖总数已到”,如果未完成总抽奖数就开始另外一轮抽奖,则提示“抽奖限制”。内部抽奖主要解决随机性和相对均衡两个问题。系统初始化在参加抽奖人员名单前随机生成了序号,通过查询“号码重排序”将参加抽奖人员名单按照序号升序排列,抽奖时按照序号顺序抽奖,实现了随机的

6、要求。相对均衡要求大致按照各个部门人数占总人数的百分比来分配中奖人数,本系统采用各个部门占总人数的百分比乘以抽奖总数的方法来大致确定各个部门的中奖人数,有小数的数字通过程序设计进行四舍五入处理。需要注意的是,若使所有的部门中奖人数都要用四舍五入的方法进行处理则可能出现错误,为了避免这种情况需要选定一个部门,使其中奖人数等于总抽奖数减去其他各个部门中奖人数之和2。抽奖模块的主要程序代码如下:N = 0cnt = Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value + Me!退休.ValueDo While Me

7、!抽奖数量.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 ThenIf qrs.单位 = "电科" And qrs!批次.Value = 0 ThenMe!电科.Value = Me!电科.Value + 1qrs.Editqrs!奖励

8、等级.Value = Me!奖励等级.Valueqrs!批次.Value = Me!批次.Valueqrs.UpdateN = N + 1End IfElseEnd If'退休抽奖cnt = Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value + Me!退休.Valuecnt2= Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value'剩余数量分配给退休If Me!退休.Value < Int(Me!总数量

9、.Value cnt2) And N < Me!抽奖数量.Value And cnt < Me!总数量.Value ThenIf qrs22.单位 = "退休" And qrs!批次.Value = 0 ThenMe!退休.Value = Me!退休.Value + 1qrs.Editqrs22!奖励等级.Value = Me!奖励等级.Valueqrs22!批次.Value = Me!批次.Valueqrs22.UpdateN = N + 1End IfElseEnd If判断是否完成抽奖cnt = Me!电科.Value + Me!电气.Value + Me!自动化.Value + Me!通信.Value + Me!院办.Value + Me!退休.ValueIf cnt = Me!总数量.Value ThenMsgBox ("抽奖总数已到。"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论