찾다
데이터 베이스MySQL 튜토리얼基于Access数据库的抽奖系统设计
基于Access数据库的抽奖系统设计Jun 07, 2016 pm 04:21 PM
access기반으로데이터 베이스체계설계

摘 要 介绍了抽奖信息管理系统的设计思路和基本原理,结合Access,通过软件系统开发,实现了具有随机性和相对均衡性的抽奖。 关键词 抽奖系统 Access VBA 随机 相对均衡性 引言 当今社会,各种各样的抽奖活动相当普遍,抽奖活动的基本原则和主要特征是随机性

  摘 要 介绍了抽奖信息管理系统的设计思路和基本原理,结合Access,通过软件系统开发,实现了具有随机性和相对均衡性的抽奖。

  关键词 抽奖系统 Access VBA 随机 相对均衡性

  引言

  当今社会,各种各样的抽奖活动相当普遍,抽奖活动的基本原则和主要特征是随机性,但对于某一团体内部的抽奖活动来说,还有一个相对均衡的问题,所谓相对均衡就是指让各个部门的中奖概率和其人数占总人数的比重大致相等。基于Access,结合其内置VBA语言,通过程序设计实现抽奖的随机,通过算法研究实现抽奖的相对均衡。本文主要介绍了系统原理以及主要程序的设计。

  系统组成及原理

  抽奖系统主要由来宾登记、奖票管理、幸运抽奖、获奖查询四个基本模块构成,登记模块登记参加抽奖人员,奖票管理模块初始化参加抽奖人员名单,抽奖模块实现抽奖功能,获奖查询模块查询获奖结果。其中,抽奖模块中可以实现奖励等级、总抽奖数、每一次抽奖数的控制。系统架构框图如图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으로 문의하세요.
access如何设置验证规则access如何设置验证规则Apr 10, 2024 am 10:59 AM

Access 验证规则是一种数据验证工具,用于确保数据符合特定条件,防止输入无效数据。设置验证规则的步骤:1. 选择要设置验证规则的字段;2. 打开“字段属性”对话框并切换到“查找”选项卡;3. 在“验证规则”字段中输入验证规则;4. 在“验证文本”字段中输入不符合规则时的错误消息;5. 单击“确定”保存更改。

microsoft access是什么软件microsoft access是什么软件Mar 03, 2023 am 11:37 AM

microsoft access是由微软发布的关系数据库管理系统;它结合了MicrosoftJet Database Engine和图形用户界面两项特点,是Microsoft Office的系统程序之一。

access和trunk端口的区别是什么access和trunk端口的区别是什么Oct 31, 2023 pm 05:59 PM

access和trunk端口的区别:1、Access端口用于连接终端设备,提供单个VLAN的接入,而Trunk端口用于连接交换机之间,提供多个VLAN的传输;2、Access端口只传输属于指定VLAN的数据,而Trunk端口可以传输多个VLAN的数据,并使用VLAN标签进行区分。

vb中怎么连接access数据库vb中怎么连接access数据库Oct 09, 2023 am 11:38 AM

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。详细介绍:1、引用必要的命名空间,在VB项目中,首先需要引用“System.Data`和`Microsoft.Office.Interop.Access”命名空间,以便使用ADO.NET和Access相关的类和方法,可以在VB项目的引用中添加这些命名等等。

access中如何导入excel数据access中如何导入excel数据Apr 10, 2024 pm 01:44 PM

将 Excel 数据导入 Access 的步骤:1. 打开 Access 数据库。2. 创建链接的表,选择 Excel 工作簿。3. 选择 Excel 表格。4. 映射字段。5. 选择数据选项。6. 导入数据。7. 管理链接的数据。

access数据库的扩展名是什么access数据库的扩展名是什么Apr 10, 2024 am 11:10 AM

Access 数据库文件的扩展名为 .accdb,自 Microsoft Access 2007 起开始使用,用于识别包含结构化数据的容器文件,如表、查询和窗体。

access是什么软件access是什么软件Apr 10, 2024 am 10:55 AM

Microsoft Access 是一款关系型数据库管理系统 (RDBMS),用于存储、管理和分析数据。它主要用于数据管理、导入/导出、查询/报表生成、用户界面设计和应用程序开发。Access 优势包括易用性、集成数据库管理、强大灵活、与 Office 集成和可扩展性。

access数据库sql语言中如何把数字1显示为01access数据库sql语言中如何把数字1显示为01Apr 10, 2024 pm 01:17 PM

在 Access SQL 中,使用 FORMAT 函数,并将格式指定为 "00",可以将数字 1 显示为文本格式 "01"。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.