国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Access > 正文

基于Access數(shù)據(jù)庫(kù)的抽獎(jiǎng)系統(tǒng)設(shè)計(jì)

2024-09-07 19:03:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

引言

當(dāng)今社會(huì),各種各樣的抽獎(jiǎng)活動(dòng)相當(dāng)普遍,抽獎(jiǎng)活動(dòng)的基本原則和主要特征是隨機(jī)性,但對(duì)于某一團(tuán)體內(nèi)部的抽獎(jiǎng)活動(dòng)來(lái)說(shuō),還有一個(gè)相對(duì)均衡的問(wèn)題,所謂相對(duì)均衡就是指讓各個(gè)部門的中獎(jiǎng)概率和其人數(shù)占總?cè)藬?shù)的比重大致相等。基于ACCESS,結(jié)合其內(nèi)置VBA語(yǔ)言,通過(guò)程序設(shè)計(jì)實(shí)現(xiàn)抽獎(jiǎng)的隨機(jī),通過(guò)算法研究實(shí)現(xiàn)抽獎(jiǎng)的相對(duì)均衡。本文主要介紹了系統(tǒng)原理以及主要程序的設(shè)計(jì)。

系統(tǒng)組成及原理

抽獎(jiǎng)系統(tǒng)主要由來(lái)賓登記、獎(jiǎng)票管理、幸運(yùn)抽獎(jiǎng)、獲獎(jiǎng)查詢四個(gè)基本模塊構(gòu)成,登記模塊登記參加抽獎(jiǎng)人員,獎(jiǎng)票管理模塊初始化參加抽獎(jiǎng)人員名單,抽獎(jiǎng)模塊實(shí)現(xiàn)抽獎(jiǎng)功能,獲獎(jiǎng)查詢模塊查詢獲獎(jiǎng)結(jié)果。其中,抽獎(jiǎng)模塊中可以實(shí)現(xiàn)獎(jiǎng)勵(lì)等級(jí)、總抽獎(jiǎng)數(shù)、每一次抽獎(jiǎng)數(shù)的控制。系統(tǒng)架構(gòu)框圖如圖1。

圖1 系統(tǒng)架構(gòu)

系統(tǒng)初始化

來(lái)賓登記模塊中已經(jīng)收錄了參加抽獎(jiǎng)的人員名單以及所屬部門,在獎(jiǎng)票管理模塊中,當(dāng)點(diǎn)擊初始化按鈕時(shí)通過(guò)內(nèi)部程序設(shè)計(jì)首先把上次的抽獎(jiǎng)結(jié)果清空,同時(shí)利用Rnd在參加抽獎(jiǎng)的人員名單前隨機(jī)生成一系列的序號(hào),為幸運(yùn)抽獎(jiǎng)模塊中的隨機(jī)抽獎(jiǎng)做準(zhǔn)備[1]。主要初始化程序代碼如下:

以下為引用的內(nèi)容:
DoCmd.SetWarnings False
DoCmd.OpenQuery "刪除對(duì)獎(jiǎng)票號(hào)", acNormal, acEdit
DoCmd.OpenQuery "追加對(duì)獎(jiǎng)票號(hào)", acNormal, acEdit
DoCmd.SetWarnings True
Set qrs = CurrentDb.OpenRecordset("對(duì)獎(jiǎng)票號(hào)")
qrs.MoveFirst
i = 1
Do While Not qrs.EOF
 qrs.Edit
 qrs!序號(hào) = Int((211 - 1) * Rnd)
 qrs!對(duì)獎(jiǎng)號(hào)碼 = i
 qrs.Update
 i = i 1
 qrs.MoveNext
Loop
MsgBox ("對(duì)獎(jiǎng)名單初始化完畢。")
qrs.Close


抽獎(jiǎng)功能的實(shí)現(xiàn)

通過(guò)抽獎(jiǎng)模塊實(shí)現(xiàn)最終抽獎(jiǎng)功能。

通過(guò)獎(jiǎng)勵(lì)等級(jí)組合框控制抽獎(jiǎng)等級(jí),通過(guò)抽獎(jiǎng)數(shù)量組合框控制每批次抽獎(jiǎng)數(shù)量,通過(guò)總抽獎(jiǎng)數(shù)組合框控制總抽獎(jiǎng)數(shù)。當(dāng)獎(jiǎng)勵(lì)等級(jí)分別為一、二、三等獎(jiǎng)時(shí),抽獎(jiǎng)數(shù)量和總抽獎(jiǎng)數(shù)默認(rèn)值分別為5、10、10和10、30、50。各組合框的具體數(shù)值也可以通過(guò)上下箭頭控制。抽獎(jiǎng)界面如圖2。

圖 2 抽 獎(jiǎng) 界 面

其程序設(shè)計(jì)比較簡(jiǎn)單,主要程序如下:

以下為引用的內(nèi)容:
……
If Me!獎(jiǎng)勵(lì)等級(jí).Value = 1 Then
 Me!總數(shù)量.Value = 10
End If
If Me!獎(jiǎng)勵(lì)等級(jí).Value = 2 Then
 Me!總數(shù)量.Value = 30
End If
If Me!獎(jiǎng)勵(lì)等級(jí).Value = 3 Then
 Me!總數(shù)量.Value = 50
End If
Forms!抽獎(jiǎng).Q_抽獎(jiǎng)統(tǒng)計(jì).Requery
If Me!獎(jiǎng)勵(lì)等級(jí).Value = 1 Then
 Me!抽獎(jiǎng)數(shù)量.Value = 5
End If
If Me!獎(jiǎng)勵(lì)等級(jí).Value = 2 Or Me!獎(jiǎng)勵(lì)等級(jí).Value = 3 Then
 Me!抽獎(jiǎng)數(shù)量.Value = 10
End If
……

通過(guò)點(diǎn)擊開始按鈕開始抽獎(jiǎng),同時(shí)按鈕標(biāo)題變?yōu)橥V梗俅吸c(diǎn)擊停止此批次抽獎(jiǎng),同時(shí)按鈕標(biāo)題變?yōu)殚_始,繼續(xù)點(diǎn)擊開始下一批次抽獎(jiǎng),如此反復(fù),直至完成總抽獎(jiǎng)數(shù),此時(shí)提示“抽獎(jiǎng)總數(shù)已到”,如果未完成總抽獎(jiǎng)數(shù)就開始另外一輪抽獎(jiǎng),則提示“抽獎(jiǎng)限制”。

內(nèi)部抽獎(jiǎng)主要解決隨機(jī)性和相對(duì)均衡兩個(gè)問(wèn)題。系統(tǒng)初始化在參加抽獎(jiǎng)人員名單前隨機(jī)生成了序號(hào),通過(guò)查詢“號(hào)碼重排序”將參加抽獎(jiǎng)人員名單按照序號(hào)升序排列,抽獎(jiǎng)時(shí)按照序號(hào)順序抽獎(jiǎng),實(shí)現(xiàn)了隨機(jī)的要求。相對(duì)均衡要求大致按照各個(gè)部門人數(shù)占總?cè)藬?shù)的百分比來(lái)分配中獎(jiǎng)人數(shù),本系統(tǒng)采用各個(gè)部門占總?cè)藬?shù)的百分比乘以抽獎(jiǎng)總數(shù)的方法來(lái)大致確定各個(gè)部門的中獎(jiǎng)人數(shù),有小數(shù)的數(shù)字通過(guò)程序設(shè)計(jì)進(jìn)行四舍五入處理。需要注意的是,若使所有的部門中獎(jiǎng)人數(shù)都要用四舍五入的方法進(jìn)行處理則可能出現(xiàn)錯(cuò)誤,為了避免這種情況需要選定一個(gè)部門,使其中獎(jiǎng)人數(shù)等于總抽獎(jiǎng)數(shù)減去其他各個(gè)部門中獎(jiǎng)人數(shù)之和[2]。抽獎(jiǎng)模塊的主要程序代碼如下:

以下為引用的內(nèi)容:

……
N = 0
cnt = Me!電科.Value Me!電氣.Value Me!自動(dòng)化.Value Me!通信.Value Me!院辦.Value Me!退休.Value
Do While Me!抽獎(jiǎng)數(shù)量.Value > N And Not qrs.EOF And cnt < Me!總數(shù)量.Value
 '電科抽獎(jiǎng)
 ’四舍五入確定電科中獎(jiǎng)數(shù)

 If Me!電科.Value < (Int(((unit1.姓名之Count / cnt1) * Me!總數(shù)量.Value 0.5))) And N < Me!抽獎(jiǎng)數(shù)量.Value And cnt < Me!總數(shù)量.Value Then
  If qrs.單位 = "電科" And qrs!批次.Value = 0 Then
   Me!電科.Value = Me!電科.Value 1
   qrs.Edit
   qrs!獎(jiǎng)勵(lì)等級(jí).Value = Me!獎(jiǎng)勵(lì)等級(jí).Value
   qrs!批次.Value = Me!批次.Value
   qrs.Update
   N = N 1
  End If
 Else
 End If
 ……
 '退休抽獎(jiǎng)
 cnt = Me!電科.Value Me!電氣.Value Me!自動(dòng)化.Value Me!通信.Value Me!院辦.Value Me!退休.Value
 cnt2= Me!電科.Value Me!電氣.Value Me!自動(dòng)化.Value Me!通信.Value Me!院辦.Value
 '剩余數(shù)量分配給退休
 If Me!退休.Value < Int((Me!總數(shù)量.Value – cnt2) And N < Me!抽獎(jiǎng)數(shù)量.Value And cnt < Me!總數(shù)量.Value Then
  If qrs22.單位 = "退休" And qrs!批次.Value = 0 Then
   Me!退休.Value = Me!退休.Value 1
   qrs.Edit
   qrs22!獎(jiǎng)勵(lì)等級(jí).Value = Me!獎(jiǎng)勵(lì)等級(jí).Value
   qrs22!批次.Value = Me!批次.Value
   qrs22.Update
   N = N 1
  End If
 Else
 End If
 ……
 ’判斷是否完成抽獎(jiǎng)
 cnt = Me!電科.Value Me!電氣.Value Me!自動(dòng)化.Value Me!通信.Value Me!院辦.Value Me!退休.Value
 If cnt = Me!總數(shù)量.Value Then
  MsgBox ("抽獎(jiǎng)總數(shù)已到。")
  Me.可抽獎(jiǎng).Value = 0
 Else
  MsgBox ("抽獎(jiǎng)限制。")
 End If
 ……

結(jié)論

本系統(tǒng)利用ACCESS數(shù)據(jù)庫(kù),結(jié)合其內(nèi)置VBA語(yǔ)言,探討了系統(tǒng)初始化、抽獎(jiǎng)的隨機(jī)性和相對(duì)均衡性等關(guān)鍵問(wèn)題,滿足了抽獎(jiǎng)的要求。進(jìn)行適當(dāng)調(diào)整,該系統(tǒng)可以應(yīng)用于多種抽獎(jiǎng)場(chǎng)合。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 万年县| 金山区| 张北县| 新巴尔虎左旗| 凤山市| 措勤县| 孝义市| 焉耆| 信丰县| 麻栗坡县| 宝坻区| 新昌县| 成安县| 齐齐哈尔市| 宁化县| 韶山市| 古蔺县| 马山县| 临澧县| 云梦县| 太保市| 友谊县| 乌恰县| 海伦市| 夹江县| 怀宁县| 青河县| 广南县| 宁阳县| 平昌县| 文山县| 凤山县| 札达县| 博罗县| 井研县| 黎川县| 泽州县| 社旗县| 昭苏县| 紫云| 同仁县|