【VB开源代码栏目提醒】:网学会员,鉴于大家对VB开源代码十分关注,论文会员在此为大家搜集整理了“用vb编一个抽奖软件的源代码 - 学士论文”一文,供大家参考学习!
求用
vb 编一个抽奖软件的源
代码要求:1.点击‘开始’从 text 或 excel 文件中依次调用每一行的电话号码,滚动显示在界面上,点击‘停止‘ 则停在某一个电话上即可2.请带一些语句说明最好最佳答案dim i窗口启动:i0Open App.Path amp quot电话号码.txtquot For Input As 1while eof1falseLine Input 1aList1.AddItem awendclose 1按开始:timer1.Interval50按结束:timer1.Interval0timer 的事件:ii1if iList1.ListCount then i0Label1.Caption List1.Listi不好意思啊,由于没有注意,所以先前的答案有两个小错误,现在已修正了所需控件:两个按钮,一个开始,一个结束;一个时钟控件一个
列表框;一个标签控件 用
VB 6.0 编写电脑抽奖程序 近年来在娱乐节目之中常常见到利用电脑来抽奖,笔者对其发生了兴趣遂自己动手用
VB 编了一个小程序来实现电脑抽奖的小功能,其原理如下: 主要利用
VB 中的 Rnd 函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。
Rnd 函数的语法结构是 Rndnumber,可选的 number 参数是 single 或任何有效的数值表达式。
Rnd 函数返回小于 1 但大于或等于 0 的值。
number 的值决定了 Rnd 生成随机数的方式。
为了生成某个范围内的随机整数,可使用以下公式:Intupperbound - lowerbound + 1 × Rnd + lowerbound 这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
另外,程序中还使用了 INI 文件,Windows INI 文件可解释为 Windows 初始化文件。
它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件。
ini 文件是一种文本文件它可以通过 Notepad 等文本编辑器进行编辑。
ini 文件具有特定的格式。
一个 INI 文件是由若干个段section组成的每个段中包含若干关键字key及相应的值value。
创建应用程序自己的 INI 文件通过 INI 文件保存应用程序的一些运行环境信息然后在程序中读取 INI 文件中的设置信息并据以处理。
一旦程序的运行环境需要变更则可以通过直接修改 INI 文件,或在程序中提供专门的界面间接地修改 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 StringPrivate Sub Command_Start_Stop_Click If m_bIsStart True Then 按停止钮 m_bIsStart False Command_Start_Stop.Caption “开始quot Label_FlashName.Visible True Timer_FlashName.Enabled True Timer_ScrollName.Enabled False Label_FlashName m_strNameArray(m_nNameIndex.strName + “中奖了!quot m_strNameArraym_nNameIndex.bIsSelect True m_nSelectNum m_nSelectNum + 1 Dim Temp As MyName Temp m_strNameArrayMAX_INDEX m_str Name ArrayMAX-INDEX m_strNameArraym_nNameIndex m_strNameArraym_nNameIndex Temp MAX_INDEX MAX_INDEX - 1 If MAX_INDEX 0 Then MsgBox “非常感谢您使用本
软件quot End If Else 按开始钮 m_bIsStart True Command_Start_Stop.Caption “停止quot Command_Start_Stop.Enabled False Timer_ScrollName.Enabled True Timer_FlashName.Enabled False Label_FlashName.Caption “quot End IfEnd SubPrivate Sub 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 “quot nEnableSecond 0 定义起始秒数 ReDimNameArray 获得文本中的名字和打乱名字顺序 nScrollStep 5 设定滚动字的步长 nScrollWidth Label_Congruation.Left 设定 title 的移动宽度 bScrollState False 设定缺省的开始滚动方向为向左 m_nSelectNum 0 初始化被选定数为 0 Init 初始化本程序的界面End SubPrivate Sub Timer_FlashName_Timer 闪动中奖者姓名 If Label_FlashName.Visible True Then Label_FlashName.Visible False Else Label_FlashName.Visible True End IfEnd SubPrivate Sub Timer_ScrollName_Timer 滚动出现名字 If m_bIsStart True Then If m_nNameIndex gt MAX_INDEX Then m_nNameIndex 0 End If m_nNameIndex m_nNameIndex + 1 If m_strNameArraym_nNameIndex.bIsSelect True Then If m_nNameIndex lt MAX-INDEX Then m_nNameIndex m_nNameIndex + 1 Else m_nNameIndex 0 End If End If Label_ScrollName.Caption m_str NameArraym_nNameIndex.strName End If End IfEnd SubPrivate Sub Timer_ScrollTitle_Timer 滚动“恭喜发财quot字样 If bScrollState False Then 向左滚 nScrollStep 10 Label_Congruation.Caption m_strScrollTitleLeft If nScrollWidth gt 0 Then nScrollWidth nScrollWidth - nScrollStep Else bScrollState True End If Else 向右滚 nScrollStep -10 Label_Congruation.Caption m_strScrollTitleRight If nScrollWidth lt Form_Bouns.ScaleWidth - Label_Congruation.Width Then nScrollWidth nScrollWidth - nScrollStep Else bScrollState False End If End If Label_Congruation.Left nScrollWidth 以下为 8 秒钟内使“停止quot按钮有效 If nEnableSecond lt 49 Then If m_bIsStart True Then nEnableSecond nEnableSecond + 1 End If Else If m_bIsStart True Then Command_Start_Stop.Enabled True nEnableSecond 0 End If End IfEnd 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 App.Path + “name.txtquot For Input As #1 读文件 Do Until EOF1 If bIsBegin False Then Line Input #1 strMaxIndex nMaxIndex ValstrMaxIndex MAX_INDEX nMaxIndex - 1 ReDim m_strNameArray0 To nMaxIndex - 1 bIsBegin True Else Line Input #1 m_strNameArraynIndex.strName m_strNameArraynIndex.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_strNameArrayi.strName m_strNameArrayi.strName m_strNameArraynRandomNum.strName m_strNameArraynRandomNum.strName Temp Next i Next j End SubPrivate Sub Init 读取 INI 文件 Dim X As Long Dim lpFileName Dim Temp As String × 50 lpFileName App.Path + “Sortition.iniquot X GetPrivateProfileString“SYSTEMquot“AppTitlequot“抽奖程序quot Temp LenTemp lpFileName m_strAppTitle TrimTemp Temp “quot X GetPrivateProfileString“SYSTEMquot quotTitlequot quot欢迎使用抽奖程序quot Temp LenTemp lpFileName m_strTitle TrimTemp Temp “quot X GetPrivateProfileString“SYSTEMquot“ScrollTitleRightquot “恭喜发财quot Temp LenTemp lpFileName m_strScrollTitleRight TrimTemp X GetPrivateProfileString“SYSTEMquot“ScrollTitleLeftquot “龙年大发quot Temp LenTemp lpFileName m_strScrollTitleLeft TrimTemp Form_Bouns.Caption m_strAppTitle Label_CompanyTitle.Caption m_strTitle End Sub 模块源程序: 用于读取 ini 文件的 API 函数 Declare Function GetPrivateProfileString Lib “kernel32quot Alias “GetPrivateProfileStringAquot ByVal lpApplicationname As String ByVallpKeyName As String ByVal lpDefault As String ByVal lpReturnedString As String ByVal nSize As Long ByVal lpFileName As String AsLong Public Type MyName strName As String bIsSelect As Boolean End Type 由于程序利用的 windows ini 文件保存一些标题信息,因而可以方便的修改使用环境及标题内容。
见 ini 文件内容: SYSTEM 应用程序的 form 名称 AppTitle“风云电脑抽奖 Testquot 窗口的内的标题限 9 个字 Title“大抽奖quot 右滚动的文字仅能为如下格式:XXXX ScrollTitleRight“恭喜发财quot 左滚动的文字仅能为如下格式:XXXX ScrollTitleLeft“祝您好运quot 如此一个小小的电脑抽奖程序便完成了。
以上
程序在
VB6.0 Windows98 环境下编译通过If bIsBegin False Then Line Input #1 strMaxIndex nMaxIndex ValstrMaxIndex MAX_INDEX nMaxIndex - 1 ReDim m_strNameArray0 To nMaxIndex - 1 bIsBegin True Else Line Input #1 m_strNameArraynIndex.strName m_strNameArraynIndex.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_strNameArrayi.strName m_strNameArrayi.strName m_strNameArraynRandomNum.strName m_strNameArraynRandomNum.strName Temp Next i Next j End SubPrivate Sub Init 读取 INI 文件 Dim X As Long Dim lpFileName Dim Temp As String × 50 lpFileName App.Path + “Sortition.iniquot X GetPrivateProfileString“SYSTEMquot“AppTitlequot“抽奖程序quot Temp LenTemp lpFileName m_strAppTitle TrimTemp Temp “quot X GetPrivateProfileString“SYSTEMquot quotTitlequot quot欢迎使用抽奖程序quot Temp LenTemp lpFileName m_strTitle TrimTemp Temp “quot X GetPrivateProfileString“SYSTEMquot“ScrollTitleRightquot “恭喜发财quot Temp LenTemp lpFileName m_strScrollTitleRight TrimTemp X GetPrivateProfileString“SYSTEMquot“ScrollTitleLeftquot “龙年大发quot Temp LenTemp lpFileName m_strScrollTitleLeft TrimTemp Form_Bouns.Caption m_strAppTitle Label_CompanyTitle.Caption m_strTitle End Sub 模块源程序: 用于读取 ini 文件的 API 函数 Declare Function GetPrivateProfileString Lib “kernel32quot Alias “GetPrivateProfileStringAquot ByVal lpApplicationname As String ByVallpKeyName 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 ini 文件保存一些标题信息,因而可以方便的修改使用环境及标题内容。
见 ini 文件内容: SYSTEM 应用程序的 form 名称 AppTitle“风云电脑抽奖 Testquot 窗口的内的标题限 9 个字 Title“大抽奖quot 右滚动的文字仅能为如下格式:XXXX ScrollTitleRight“恭喜发财quot 左滚动的文字仅能为如下格式:XXXX ScrollTitleLeft“祝您好运quot 如此一个小小的电脑抽奖程序便完成了。
以上程序在
VB6.0 Windows98 环境下编译通过 近年来在娱乐节目之中常常见到利用电脑来抽奖,笔者对其发生了兴趣遂自己动手用
VB 编了一个小程序来实现电脑抽奖的小功能,其原理如下: 主要利用
VB 中的 Rnd 函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。
Rnd 函数的语法结构是 Rndnumber,可选的 number 参数是 single 或任何有效的数值表达式。
Rnd 函数返回小于 1 但大于或等于 0 的值。
number 的值决定了 Rnd 生成随机数的方式。
为了生成某个范围内的随机整数,可使用以下公式:Intupperbound - lowerbound + 1 × Rnd + lowerbound 这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
另外,程序中还使用了 INI 文件,Windows INI 文件可解释为 Windows 初始化文件。
它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件。
ini 文件是一种文本文件它可以通过 Notepad 等文本编辑器进行编辑。
ini 文件具有特定的格式。
一个 INI 文件是由若干个段section组成的每个段中包含若干关键字key及相应的值value。
创建应用程序自己的 INI 文件通过 INI 文件保存应用程序的一些运行环境信息然后在程序中读取 INI 文件中的设置信息并据以处理。
一旦程序的运行环境需要变更则可以通过直接修改 INI 文件,或在程序中提供专门的界面间接地修改 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 StringPrivate Sub Command_Start_Stop_Click If m_bIsStart True Then 按停止钮 m_bIsStart False Command_Start_Stop.Caption “开始quot Label_FlashName.Visible True Timer_FlashName.Enabled True Timer_ScrollName.Enabled False Label_FlashName m_strNameArray(m_nNameIndex.strName + “中奖了!quot m_strNameArraym_nNameIndex.bIsSelect True m_nSelectNum m_nSelectNum + 1 Dim Temp As MyName Temp m_strNameArrayMAX_INDEX m_str Name ArrayMAX-INDEX m_strNameArraym_nNameIndex m_strNameArraym_nNameIndex Temp MAX_INDEX MAX_INDEX - 1 If MAX_INDEX 0 Then MsgBox “非常感谢您使用本软件quot End If Else 按开始钮 m_bIsStart True Command_Start_Stop.Caption “停止quot Command_Start_Stop.Enabled False Timer_ScrollName.Enabled True Timer_FlashName.Enabled False Label_FlashName.Caption “quot End IfEnd SubPrivate Sub 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 “quot nEnableSecond 0 定义起始秒数 ReDimNameArray 获得文本中的名字和打乱名字顺序 nScrollStep 5 设定滚动字的步长 nScrollWidth Label_Congruation.Left 设定 title 的移动宽度 bScrollState False 设定缺省的开始滚动方向为向左 m_nSelectNum 0 初始化被选定数为 0 Init 初始化本程序的界面End SubPrivate Sub Timer_FlashName_Timer 闪动中奖者姓名 If Label_FlashName.Visible True Then Label_FlashName.Visible False Else Label_FlashName.Visible True End IfEnd SubPrivate Sub Timer_ScrollName_Timer 滚动出现名字 If m_bIsStart True Then If m_nNameIndex gt MAX_INDEX Then m_nNameIndex 0 End If m_nNameIndex m_nNameIndex + 1 If m_strNameArraym_nNameIndex.bIsSelect True Then If m_nNameIndex lt MAX-INDEX Then m_nNameIndex m_nNameIndex + 1 Else m_nNameIndex 0 End If End If Label_ScrollName.Caption m_str NameArraym_nNameIndex.strName End If End IfEnd SubPrivate Sub Timer_ScrollTitle_Timer 滚动“恭喜发财quot字样 If bScrollState False Then 向左滚 nScrollStep 10 Label_Congruation.Caption m_strScrollTitleLeft If nScrollWidth gt 0 Then nScrollWidth nScrollWidth - nScrollStep Else bScrollState True End IfElse 向右滚 nScrollStep -10 Label_Congruation.Caption m_strScrollTitleRight If nScrollWidth lt Form_Bouns.ScaleWidth - Label_Congruation.Width Then nScrollWidth nScrollWidth - nScrollStep Else bScrollState False .