关键词不能为空

当前您在: 主页 > 英语 >

用VB编了一个小程序来实现电脑抽奖的小功能

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 08:53
tags:

-

2021年2月28日发(作者:英文经典)



VB


编了一个小程序来实现电脑抽奖的小功能 ,其原理如下:





主要利用


VB


中的


Rnd


函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。


Rnd


函数的语法结构是


Rnd[(number)]



可选的


number


参数是


single


或任何有效的数值表达式。

< p>
Rnd


函数返回小于


1


但 大于或等于


0


的值。


number


的值决定了


Rnd


生成随机


数的方式。为了生成某个范围内的随机整数,可使用以下公式:





Int((upperbound



lowerbound



1)


×


Rnd



lowerbound)




这里,


upperbound


是随机数范围的上限,而


lowerbound


则是随机数范围的下限。





另外,程序中还使用了


INI


文件,


Windows INI


文件


,


可解释为


Windows

初始化文件。它是一种专门用来保存应用程序初始化信息和


运行环境信息的文本文件 。


ini


文件是一种文本文件


,


它可以通过


Notepad


等文本编辑器进行 编辑。


ini


文件具有特定的格式。一个


INI


文件是由若干个段


(section)


组成的


,


每个段中包含若干关键字

(key)


及相应的值


(value)


创建应用程序自己的


INI


文件


,


通过


INI


文件保


存应用程序的一些运行环境信息


,


然后在程序中读取


INI


文件中的设置信息并据以处理。一旦 程序的运行环境需要变更


,


则可以通过直接

修改


INI


文件,或在程序中提供专门的界面间接地修改< /p>


INI


文件来保证程序的可用性。






源程序及注释如下:





'


窗体源程序





Option Explicit




Dim m_strNameArray() As MyName




Dim m_bIsStart As Boolean




Dim m_nNameIndex As Integer




Dim MAX_INDEX As Integer




Dim m_nSelectNum As Integer




'


被选定数





Dim nScrollStep As Integer




Dim nScrollWidth As Integer




Dim bScrollState As Boolean




Dim nEnableSecond As Integer




Dim m_strTitle As String




Dim m_strAppTitle As String




Dim m_strScrollTitleLeft As String




Dim m_strScrollTitleRight As String




Private Sub Command_Start_Stop_Click()




If m_bIsStart = True Then




'


按停止钮





m_bIsStart = False




Command_Start_n =




“开始





Label_e = True




Timer_d = True




Timer_d = False




Label_FlashName =




m_strNameArray< /p>



m_nNameIndex).strName




“中奖了!





m_strNameArray(m_nNameIndex).bIsSelect = True




m_nSelectNum = m_nSelectNum



1




Dim Temp As MyName




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




If MAX_INDEX = 0 Then




MsgBox


“非常感谢您使用本软件





End If




Else '


按开始钮





m_bIsStart = True




Command_Start_n =


“停止





Command_Start_d = False




Timer_d = True




Timer_d = False




Label_n =






End If




End Sub




Private Sub Form_Load()




Form_ode = 3




m_nNameIndex = 0




m_bIsStart = False




Timer_d = True




Timer_d = True




Label_e = False




Label_n =






nEnableSecond = 0




'


定义起始秒数





ReDimNameArray




'


获得文本中的名字和打乱名字顺序





nScrollStep = 5 '


设定滚动字的步长





nScrollWidth = Label_




'


设定< /p>


title


的移动宽度





bScrollState = False




'


设定缺省的开始滚动方向为向左





m_nSelectNum = 0




'


初始化被选定数为


0




Init




'


初始化本程序的界面





End Sub




Private Sub Timer_FlashName_Timer() '


闪动中奖者姓名





If Label_e = True Then




Label_e = False




Else




Label_e = True




End If




End Sub




Private Sub Timer_ScrollName_Timer() '


滚动出现名字





If m_bIsStart = True Then




If m_nNameIndex >= MAX_INDEX Then




m_nNameIndex = 0




End If




m_nNameIndex =




m_nNameIndex



1




If m_strNameArray(m_nNameIndex).bIsSelect = True Then




If m_nNameIndex <




MAX



INDEX Then




m_nNameIndex =




m_nNameIndex



1




Else




m_nNameIndex = 0




End If




End If




Label_n = m_str




NameArray(m_nNameIndex).strName




'End If




End If




End Sub




Private Sub Timer_ScrollTitle_Timer() '


滚动“恭喜发财

< p>


字样





If bScrollState = False Then '


向左滚





nScrollStep = 10




Label_n = m_strScrollTitleLeft




If nScrollWidth > 0 Then




nScrollWidth =




nScrollWidth



nScrollStep




Else




bScrollState = True




End If




Else '


向右滚





nScrollStep =



10




Label_n =




m_strScrollTitleRight




If nScrollWidth < Form_idth



Label_ Then




nScrollWidth =




nScrollWidth



nScrollStep




Else




bScrollState = False




End If




End If




Label_ = nScrollWidth




'< /p>


以下为


8


秒钟内使“停止



按钮有效





If nEnableSecond <= 49 Then




If m_bIsStart = True Then




nEnableSecond =nEnableSecond



1




End If




Else




If m_bIsStart = True Then




Command_Start_d = True




nEnableSecond = 0




End If




End If




End Sub




'


动态定义数组





Private Sub ReDimNameArray()




Dim nMaxIndex As Integer




Dim strMaxIndex As String




Dim nIndex As Integer




Dim bIsBegin As Boolean




bIsBegin = False




nIndex = 0




Open







1 '


读文件





Do Until EOF(1)




If bIsBegin = False Then




Line Input



1, strMaxIndex




nMaxIndex = Val(strMaxIndex)




MAX_INDEX = nMaxIndex



1




ReDim m_strNameArray(0 To nMaxIndex



1)




bIsBegin = True




Else




Line Input



1, m_strNameArray(nIndex).strName




m_strNameArray(nIndex).bIsSelect = False




nIndex = nIndex



1




End If




Loop




'


以下为打乱人员顺序


10






Dim i As Integer




Dim j As Integer




Dim Temp As String




Dim nRandomNum As Integer




For j = 0 To 10




For i = 0 To nMaxIndex



1




nRandomNum = ((nMaxIndex



1)


×


Rnd) '


利用


Rnd


函数





Temp = m_strNameArray(i).strName




m_strNameArray(i).strName = m_strNameArray(nRandomNum).strName




m_strNameArray(nRandomNum).strName = Temp




Next i




Next j




End Sub




Private Sub Init() '


读取


INI


文件





Dim X As Long




Dim lpFileName




Dim Temp As String


×


50




lpFileName =








X = GetPrivateProfileString(



SYSTEM



AppTitle< /p>


“抽奖程序





m_strAppTitle = Trim(Temp)




Temp =






X = GetPrivateProfileString(



SYSTEM


欢迎使用抽奖程序





m_strTitle = Trim(Temp)




Temp =






X = GetPrivateProfileString(



SYSTEM



ScrollTit leRight


“恭喜发财


!!!




m_strScrollTitleRight = Trim(Temp)




X = GetPrivateProfileString(



SYS TEM



ScrollTitleLeft

“龙年大发


!!!




m_strScrollTitleLeft = Trim(Temp)




Form_n = m_strAppTitle




Label_n = m_strTitle




End Sub




模块源程序:





'


用于读 取


ini


文件的


API


函数





Declare Function GetPrivateProfileString Lib



kernel32



GetPrivateProfileS tringA


As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long,


ByVal lpFileName As String) As Long




Public Type MyName




strName As String




bIsSelect As Boolean




End Type




由于程序利用的


windows i ni


文件保存一些标题信息,因而可以方便的修改使用环境


,< /p>


及标题内容。






ini


文 件内容:





[SYSTEM]




;


应用程序的


form


名称





App Title=


“风云电脑抽奖


Test




;


窗口的内的标题

< br>(



9


个字

)




Title=

< p>
“大抽奖




< p>
;


右滚动的文字


(


仅能为 如下格式


:XXXX!!!)



< /p>


ScrollTitleRight=


“恭喜发财


!!!




;


左滚动的文字


(


仅能为如下格式


:XXXX!!!)




Scro llTitleLeft=


“祝您好运


!!!

< br>



如此一个小小的电脑抽奖程序便完成了。





以上程序在


VB6.0 Windows98


环境下编译通过



对于下雪的景象大家可能都不陌生,我们还是用


VB


来制作一个 下雪的景象吧。其实制作这样一个下雪的景象并不复杂,它的原理是首先


在底色为黑色的 屏幕上随机画出许多白点(雪花),然后使这些雪花不断地向下移动(重画),反复循环,就成功地模拟了下雪的 景象。


下面是这个小程序,你可以修改其中的一些数据调整雪花的密度和雪花落下的快慢 。





双击窗体写如下代码:





Dim Snow(1000, 2), Amounty As Integer




Private Sub Form_Load()







DoEvents




Randomize




Amounty = 325




For J = 1 To Amounty




Snow(J, 0) = Int(Rnd



)




Snow(J, 1) = Int(Rnd



)




Snow(J, 2) = 10



(Rnd



20)




Next J




Do While Not (DoEvents = 0)




For LS = 1 To 10




For I = 1 To Amounty




OldX = Snow(I, 0): OldY = Snow(I, 1)




Snow(I, 1) = Snow(I, 1)



Snow(I, 2)




If Snow(I, 1) > Then




Snow(I, 1) = 0: Snow(I, 2) = 5



(Rnd



30)




Snow(I, 0) = Int(Rnd



)




OldX = 0: OldY = 0

-


-


-


-


-


-


-


-



本文更新与2021-02-28 08:53,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/680017.html

用VB编了一个小程序来实现电脑抽奖的小功能的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文