¿Cómo implementar la selección de números aleatorios?
Utilice principalmente la función Rnd en VB para realizar las funciones de búsqueda aleatoria y clasificación desordenada, logrando así el propósito de la lotería aleatoria. La estructura de sintaxis de la función Rnd es Rnd[(número)] y el parámetro numérico opcional es una expresión única o cualquier expresión numérica válida. La función Rnd devuelve un valor menor que 1 pero mayor o igual a 0. El valor del número determina cómo Rnd genera números aleatorios. Para generar un número entero aleatorio dentro de un rango, use la siguiente fórmula:
Int((límite superior - límite inferior + 1) × Rnd + límite inferior)
Aquí, el límite superior es el rango de números aleatorios números El límite superior de , mientras que el límite inferior es el límite inferior del rango de números aleatorios.
Además, el programa también utiliza archivos INI, archivos INI de Windows, que pueden interpretarse como archivos de inicialización de Windows. Es un archivo de texto especialmente utilizado para guardar información de inicialización de aplicaciones e información del entorno de ejecución. El archivo ini es un archivo de texto que se puede editar con un editor de texto como el Bloc de notas. Los archivos ini tienen un formato específico. Un archivo INI se compone de varias secciones, cada sección contiene varias palabras clave (claves) y valores correspondientes (valores). Cree el propio archivo INI de la aplicación, guarde cierta información del entorno de ejecución de la aplicación a través del archivo INI y luego lea la información de configuración en el archivo INI en el programa y procese en consecuencia. Una vez que es necesario cambiar el entorno de ejecución del programa, la disponibilidad del programa se puede garantizar modificando directamente el archivo INI o modificando indirectamente el archivo INI proporcionando una interfaz especial en el programa.
El programa fuente y los comentarios son los siguientes:
'Formulario del programa fuente
Opción explícita
Dim m_strNameArray() As MyName
Dim m_bIsStart como booleano
Dim m_nNameIndex como entero
Dim MAX_INDEX como entero
Dim m_nSelectNum como entero
'Se seleccionará el número
Dim nScrollStep As Integer
Dim nScrollWidth As Integer
Dim bScrollState As Boolean
Dim nEnableSecond As Integer p >
Dim m_strTitle como cadena
Dim m_strAppTitle como cadena
Dim m_strScrollTitleLeft como cadena
Dim m_strScrollTitleRight como cadena
Privado Sub Command_Start_Stop_Click()
Si m_bIsStart = True Entonces
'Presione el botón de detener
m_bIsStart = False
Command_Start_Stop.Caption =
"Inicio"
Label_FlashName.Visible = True
Timer_FlashName.Enabled = True
Timer_ScrollName.Enabled = False
Label_FlashName =
m_strNameArray(m_nNameIndex).strName + “¡Gana! "
m_strNameArray(m_nNameIndex).bIsSelect = True
m_nSelectNum = m_nSelectNum + 1
Atenuar temperatura como mi nombre
Temp =m_strNameArray( MAX_INDEX)
m_str Name Array(MAX-INDEX) = m_strNameArray(m_nNameIndex)
m_strNameArray(m_nNameIndex) = Temp
MAX_INDEX = MAX_INDEX - 1
Si MAX_INDEX = 0 Entonces
MsgBox "Muchas gracias por usar este software"
End If
Else 'Presiona el botón de inicio
m_bIsStart = True
Command_Start_Stop.Caption = "Detener"
Command_Start_Stop.Enabled = False
Timer_ScrollName.Enabled = True
Timer_FlashName.Enabled = False
Label_FlashName.Caption = ""
Finalizar si
Finalizar sub
Sub privado Form_Load()
Form_Bouns.ScaleMode = 3
m_nNameIndex = 0
m_bIsStart = False
Timer_ScrollName.Enabled = True
Timer_ScrollTitle.Enabled = True
Label_FlashName.Visible = False
Label_ScrollName.Caption = ""
nEnableSecond = 0
'Definir segundos iniciales
ReDimNameArray
'Obtiene los nombres en el texto y codifica el orden de los nombres
nScrollStep = 5 'Establece el tamaño del paso de las palabras en desplazamiento
nScrollWidth = Label_Congruation.Left
'Establece el ancho de movimiento del título
bScrollState = False
'Establece la dirección de desplazamiento inicial predeterminada hacia la izquierda
m_nSelectNum = 0
'Inicializa el número seleccionado en 0
Init
'Inicializa la interfaz de este programa
End Sub
Private Sub Timer_FlashName_Timer() 'Mostrar el nombre del ganador
Si Label_FlashName.Visible = True Entonces
Label_FlashName.Visible = False < / p>
Else
Label_FlashName.Visible = True
End If
End Sub
Private Sub Timer_ScrollName_Timer() ' Desplazamiento para que aparezcan nombres
Si m_bIsStart = True Entonces
Si m_nNameIndex gt; = MAX_INDEX Entonces
m_nNameIndex = 0
Fin Si
p> p>m_nNameIndex =m_nNameIndex + 1
Si m_strNameArray(m_nNameIndex).bIsSelect = True Entonces
Si m_nNameIndex lt; MAX-INDEX Entonces
m_nNameIndex =
m_nNameIndex + 1
Else
m_nNameIndex = 0
Finalizar si
Finalizar si
Label_ScrollName.Caption = m_str
NameArray(m_nNameIndex).strName
'End If
End If
End Sub
Private Sub Timer_ScrollTitle_Timer() 'Desplaza las palabras "Gong Xi Fa Cai"
Si bScrollState = False Entonces 'Desplázate hacia la izquierda
nScrollStep = 10
Label_Congruation.Caption = m_strScrollTitleLeft
Si nScrollWidth gt; 0 Entonces
nScrollWidth =
nScrollWidth - nScrollStep
Else
bScrollState = True
Finalizar si
Else 'Desplazarse hacia la derecha
nScrollStep = -10
Label_Congruation.Caption =
m_strScrollTitleRight
If nScrollWidth lt; Form_Bouns.ScaleWidth -
Label_Congruation.Width Then
nScrollWidth =
nScrollWidth - nScrollStep
Else
bScrollState = False
Finalizar si
Finalizar si
Label_Congruation.Left = nScrollWidth
'Lo siguiente es habilitar el botón "Detener" en 8 segundos
Si nEnableSecond lt;= 49 Entonces
Si m_bIsStart = True Entonces
nEnableSecond =nEnableSecond + 1
Fin si
Si no
Si m_bIsStart = True Entonces
Command_Start_Stop.Enabled = True
nEnableSecond = 0
Finalizar si
Finalizar si
Finalizar sub p>
p>
'Definición dinámica de matriz
Private Sub ReDimNameArray()
Dim nMaxIndex As Integer
Dim strMaxIndex As String
Dim nIndex como entero
Dim bIsBegin como booleano
bIsBegin = False
nIndex = 0
Abrir aplicación .Path + “\name .txt" Para entrada como #1 'Leer archivo
D
o Hasta EOF(1)
Si bIsBegin = False Entonces
Entrada de línea #1, strMaxIndex
nMaxIndex = Val(strMaxIndex)
MAX_INDEX = nMaxIndex - 1
ReDim m_strNameArray(0 To nMaxIndex - 1)
bIsBegin = True
Else
Entrada de línea # 1. m_strNameArray(nIndex).strName
m_strNameArray(nIndex).bIsSelect = False
nIndex = nIndex + 1
Fin si
Bucle
'Lo siguiente es alterar el orden de las personas 10 veces
Dim i As Integer
Dim j As Integer
Dim Temp As String
Dim nRandomNum As Integer
Para j = 0 a 10
Para i = 0 a nMaxIndex - 1
nRandomNum = ( (nMaxIndex - 1) × Rnd) 'Usar función Rnd
Temp = m_strNameArray(i).strName
m_strNameArray(i).strName = m_strNameArray(nRandomNum).strName
m_strNameArray(nRandomNum).strName = Temp
Siguiente i
Siguiente j
Fin Sub
Privado Sub Init( ) 'Leer archivo INI
Dim X As Long
Dim lpFileName
Dim Temp As String × 50
lpFileName = Ruta de aplicación + "\Sortition.ini"
X = GetPriv.
ateProfileString("SYSTEM", "AppTitle", "Lottery Program", Temp, Len(Temp), lpFileName)
m_strAppTitle = Trim(Temp)
Temp = "" p> p>
Temp = ""
m_strScrollTitleRight = Recortar(Temp)
> m_strScrollTitleLeft = Recortar(Temp)
Form_Bouns. Caption = m_strAppTitle
Label_CompanyTitle.Caption = m_strTitle
End Sub
Programa fuente del módulo:
'Función API para leer archivos ini
Declarar función GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationname como cadena, ByVal lpKeyName como cadena, ByVal lpDefault como cadena, ByVal lpReturnedString como cadena, ByVal nSize como cadena, ByVal lpFileName como cadena) Siempre que
Escriba público MiNombre
strName como cadena
bIsSelect como booleano
Tipo final
Desde el El archivo ini de Windows utilizado por el programa guarda cierta información del título, el entorno de uso y el contenido del título se pueden modificar fácilmente.
.
Vea el contenido del archivo ini:
[SISTEMA]
El nombre del formulario de la aplicación
AppTitle="Fengyun Computer Lottery" Test"
; Título dentro de la ventana (limitado a 9 caracteres)
Título="Gran Lotería"
; Texto que se desplaza hacia la derecha (solo puede estar en el siguiente formato: XXXX!!!)
ScrollTitleRight="¡¡¡Felicitaciones por hacerte rico!!!"
Texto desplazable hacia la izquierda (¡solo puede estar en el siguiente formato: XXXX!); !)
ScrollTitleLeft="¡¡Buena suerte!!!"