Design of lottery system based on Access database

Source: Internet
Author: User
Tags ticket access database

This paper introduces the design idea and basic principle of lottery information management system, combining access, through software system development, realizes the lottery with randomness and relative equalization.

Keyword lottery system Access VBA random relative equalization

Introduction

Today's society, a wide variety of lottery activities are quite common, the basic principles of lottery and the main characteristics of randomness, but for a group within the lottery, there is a relatively balanced problem, the so-called relative equilibrium means that the probability of winning each department and its number of the total number of shares roughly equal. Based on access, combined with its built-in VBA language, through the program design to achieve the random lottery, through the algorithm research to achieve the relative balance of the lottery. This paper mainly introduces the system principle and the design of the main program.

System composition and principle

Lottery system mainly by the guest registration, ticket management, Lucky Draw, award-winning query four basic modules, registration module registration to participate in the lottery, ticket management module initialization to participate in the draw list, lottery module to achieve the lottery function, the award-winning Query Module query award results. Among them, the lottery module can realize the reward level, the total draw number, each lottery number control. The system architecture diagram is shown in Figure 1.

Figure 1 System architecture

System initialization

Guest Registration module has included the list of people to participate in the lottery and the department, in the award management module, when the click of the initialization button through the internal program design first of the last lottery results empty, while using Rnd in the lottery before the list of people randomly generated a series of serial numbers, Prepare for the random draw in the lucky draw module [1]. The main initialization program code is as follows:

Docmd.setwarnings False

Docmd.openquery "Delete to the prize ticket", Acnormal, Acedit

Docmd.openquery "Append to the Prize Ticket", Acnormal, Acedit

Docmd.setwarnings True

Set QRS = Currentdb.openrecordset ("To the prize Ticket")

Qrs. MoveFirst

i = 1

Do-not-QRS. Eof

Qrs. Edit

qrs! ordinal = Int ((211-1) * Rnd)

Qrs! to award number = I

Qrs. Update

i = i + 1

Qrs. MoveNext

Loop

MsgBox ("The list of prizes is initialized.") ")

Qrs. Close

The realization of lottery function

Through the lottery module to achieve the final lottery function.

Through the reward Level combo box to control the draw level, through the lottery number combo box to control the number of lottery, through the total Draw Number combo box control total draw number. When the reward grade is one or two, the third prize, the lottery number and the total draw number default value respectively

are 5, 10, 10 and 10, 30, 50. The specific values of each combo box can also be controlled by up and down arrows. Draw the interface as shown in Figure 2.

Figure 2 Lottery interface

Its program design is comparatively simple, the main procedure is as follows:

......

If me! award level. Value = 1 Then

Total number of me!. Value = 10

End If

If me! award level. Value = 2 Then

Total number of me!. Value = 30

End If

If me! award level. Value = 3 Then

Total number of me!. Value = 50

End If

forms! lottery. Q_ Lottery statistics. Requery

If me! award level. Value = 1 Then

me! lottery number. Value = 5

End If

If me! award level. Value = 2 Or me! award level. Value = 3 Then

me! lottery number. Value = 10

End If

......

Start the lottery by clicking the Start button, and the button title turns to stop, click again to stop the lottery, at the same time the button title into the beginning, continue to click to start the next batch of lottery, so repeatedly, until the completion of the total draw number, at this time prompted the "total lottery has arrived", if not completed the total draw number on the start of another round of draw, then Lottery limit. "

The internal lottery mainly solves two problems of randomness and relative equilibrium. System initialization in the lottery to participate in the list of randomly generated serial number, through the query "number reordering" will participate in the lottery draw list in ascending order, in order to draw the lottery in accordance with the serial number of the lottery, to achieve a random request. Relative equilibrium requirements roughly according to the percentage of the total number of people in each sector to allocate the number of winners, the system uses the total number of departments in the percentage of the lottery number by the total number of methods to roughly determine the winning numbers of each department, a number of decimal numbers through the design of the rounding process. It should be noted that the number of winners in all departments should be rounded to deal with the method may be wrong, in order to avoid this situation needs to select a department, so that its number of winners equals total draw number of other departments won the number of winners and [2]. The main program code for the Lottery module is as follows:

......

N = 0

CNT = me! Electric Branch. Value + me! Electric. Value + me! Automation. Value + me! communication. Value + me! Hospital office. Value + me! retirement. Value

Does while me! lottery number. Value > N and not QRS. Total number of EOF and CNT < me!. Value

' Electric Science Lottery

' Rounding to determine the number of winners in the division

If me! Electrical Division. Value < ((unit1. Name count/cnt1) * me! Total quantity. Value + 0.5)) and N < me! lottery number. Total quantity of Value and CNT < me!. Value Then

If QRS. Unit = "Electrical Division" and qrs! batches. Value = 0 Then

me! Electric Department. Value = me! Electrical division. Value + 1

Qrs. Edit

Qrs! award level. Value = me! reward level. Value

qrs! batches. Value = me! lot. Value

Qrs. Update

n = n + 1

End If

Else

End If

......

' Retirement Lottery

CNT = me! Electric Branch. Value + me! Electric. Value + me! Automation. Value + me! communication. Value + me! Hospital office. Value + me! retirement. Value

cnt2= me! Electric Department. Value + me! Electric. Value + me! Automation. Value + me! communication. Value + me! Hospital office. Value

' Surplus quantity allocated to retirement

If me! retires. Value < Int (me! total quantity. Value–cnt2) and N < me! lottery number. Total quantity of Value and CNT < me!. Value Then

If qrs22. Unit = "retired" and qrs! batches. Value = 0 Then

Me! retired. Value = me! retire. Value + 1

Qrs. Edit

qrs22! award level. Value = me! reward level. Value

qrs22! batches. Value = me! lot. Value

Qrs22. Update

n = n + 1

End If

Else

End If

......

' Decide whether to finish the lottery

CNT = me! Electric Branch. Value + me! Electric. Value + me! Automation. Value + me! communication. Value + me! Hospital office. Value + me! retirement. Value

If cnt = total number of me!. Value Then

MsgBox ("The total number of lottery draws has arrived.") ")

Me. Can draw. Value = 0

Else

MsgBox ("Lottery limit.") ")

End If

......

Conclusion

This system uses Access database, combined with its built-in VBA language, discusses the key problems such as system initialization, lottery's randomness and relative balance, and satisfies the requirement of lottery. The system can be applied to a variety of lottery occasions with appropriate adjustments.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.