首页 数据库 mysql教程 Access设计抽奖系统

Access设计抽奖系统

Jun 07, 2016 pm 04:23 PM
access 抽奖 系统 设计

一、系统组成及原理 抽奖系统主要由来宾登记、奖票管理、幸运抽奖、获奖查询四个基本模块构成,登记模块登记参加抽奖人员,奖票管理模块初始化参加抽奖人员名单,抽奖模块实现抽奖功能,获奖查询模块查询获奖结果。其中,抽奖模块中可以实现奖励等级、总抽奖

   一、系统组成及原理

  抽奖系统主要由来宾登记、奖票管理、幸运抽奖、获奖查询四个基本模块构成,登记模块登记参加抽奖人员,奖票管理模块初始化参加抽奖人员名单,抽奖模块实现抽奖功能,获奖查询模块查询获奖结果。其中,抽奖模块中可以实现奖励等级、总抽奖数、每一次抽奖数的控制。系统架构框图如图1。

Access设计抽奖系统 三联

  图1 系统架构

  二、系统初始化

  来宾登记模块中已经收录了参加抽奖的人员名单以及所属部门,在奖票管理模块中,,当点击初始化按钮时通过内部程序设计首先把上次的抽奖结果清空,同时利用Rnd在参加抽奖的人员名单前随机生成一系列的序号,为幸运抽奖模块中的随机抽奖做准备[1]。主要初始化程序代码如下:

  以下为引用的内容:

  DoCmd.SetWarnings False

  DoCmd.OpenQuery "删除对奖票号", acNormal, acEdit

  DoCmd.OpenQuery "追加对奖票号", acNormal, acEdit

  DoCmd.SetWarnings True

  Set qrs = CurrentDb.OpenRecordset("对奖票号")

  qrs.MoveFirst

  i = 1

  Do While Not qrs.EOF

  qrs.Edit

  qrs!序号 = Int((211 - 1) * Rnd)

  qrs!对奖号码 = i

  qrs.Update

  i = i + 1

  qrs.MoveNext

  Loop

  MsgBox ("对奖名单初始化完毕。")

  qrs.Close

  抽奖功能的实现

  通过抽奖模块实现最终抽奖功能。

  通过奖励等级组合框控制抽奖等级,通过抽奖数量组合框控制每批次抽奖数量,通过总抽奖数组合框控制总抽奖数。当奖励等级分别为一、二、三等奖时,抽奖数量和总抽奖数默认值分别为5、10、10和10、30、50。各组合框的具体数值也可以通过上下箭头控制。抽奖界面如图2。

Access设计抽奖系统

  图 2 抽 奖 界 面

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

  以下为引用的内容:

  ……

  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

  '电科抽奖

  ’四舍五入确定电科中奖数

  If Me!电科.Value

  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

  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语言,探讨了系统初始化、抽奖的随机性和相对均衡性等关键问题,满足了抽奖的要求。进行适当调整,该系统可以应用于多种抽奖场合。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1313
25
PHP教程
1266
29
C# 教程
1239
24
sql if语句怎么用 sql if语句怎么用 Apr 09, 2025 pm 06:12 PM

SQL IF 语句用于有条件地执行 SQL 语句,语法为: IF (condition) THEN {语句} ELSE {语句} END IF;。条件可以是任何有效的 SQL 表达式,如果条件为真,执行 THEN 子句;如果条件为假,执行 ELSE 子句。IF 语句可以嵌套,允许更复杂的条件检查。

如何解决Vue Axios跨域导致的"Network Error" 如何解决Vue Axios跨域导致的"Network Error" Apr 07, 2025 pm 10:27 PM

解决 Vue Axios 跨域问题的方法包括:服务器端配置 CORS 头使用 Axios 代理使用 JSONP使用 WebSocket使用 CORS 插件

apache怎么配置zend apache怎么配置zend Apr 13, 2025 pm 12:57 PM

如何在 Apache 中配置 Zend?在 Apache Web 服务器中配置 Zend Framework 的步骤如下:安装 Zend Framework 并解压到 Web 服务器目录中。创建 .htaccess 文件。创建 Zend 应用程序目录并添加 index.php 文件。配置 Zend 应用程序(application.ini)。重新启动 Apache Web 服务器。

c#多线程的好处有哪些 c#多线程的好处有哪些 Apr 03, 2025 pm 02:51 PM

多线程的好处在于能提升性能和资源利用率,尤其适用于处理大量数据或执行耗时操作。它允许同时执行多个任务,提高效率。然而,线程过多会导致性能下降,因此需要根据 CPU 核心数和任务特性谨慎选择线程数。另外,多线程编程涉及死锁和竞态条件等挑战,需要使用同步机制解决,需要具备扎实的并发编程知识,权衡利弊并谨慎使用。

无法以 root 身份登录 mysql 无法以 root 身份登录 mysql Apr 08, 2025 pm 04:54 PM

无法以 root 身份登录 MySQL 的原因主要在于权限问题、配置文件错误、密码不符、socket 文件问题或防火墙拦截。解决方法包括:检查配置文件中 bind-address 参数是否正确配置。查看 root 用户权限是否被修改或删除,并进行重置。验证密码是否准确无误,包括大小写和特殊字符。检查 socket 文件权限设置和路径。检查防火墙是否阻止了 MySQL 服务器的连接。

如何在Debian上监控Nginx SSL性能 如何在Debian上监控Nginx SSL性能 Apr 12, 2025 pm 10:18 PM

本文介绍如何在Debian系统上有效监控Nginx服务器的SSL性能。我们将使用NginxExporter将Nginx状态数据导出到Prometheus,再通过Grafana进行可视化展示。第一步:配置Nginx首先,我们需要在Nginx配置文件中启用stub_status模块来获取Nginx的状态信息。在你的Nginx配置文件(通常位于/etc/nginx/nginx.conf或其包含文件中)中添加以下代码段:location/nginx_status{stub_status

phpmyadmin漏洞汇总 phpmyadmin漏洞汇总 Apr 10, 2025 pm 10:24 PM

PHPMyAdmin安全防御策略的关键在于:1. 使用最新版PHPMyAdmin及定期更新PHP和MySQL;2. 严格控制访问权限,使用.htaccess或Web服务器访问控制;3. 启用强密码和双因素认证;4. 定期备份数据库;5. 仔细检查配置文件,避免暴露敏感信息;6. 使用Web应用防火墙(WAF);7. 进行安全审计。 这些措施能够有效降低PHPMyAdmin因配置不当、版本过旧或环境安全隐患导致的安全风险,保障数据库安全。

使用DICR/YII2-Google将Google API集成在YII2中 使用DICR/YII2-Google将Google API集成在YII2中 Apr 18, 2025 am 11:54 AM

vProcesserazrabotkiveb被固定,мнелостольностьстьс粹馏标д都LeavallySumballanceFriablanceFaumDoptoMatification,Čtookazalovnetakprosto,kakaožidal.posenesko

See all articles