说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用VB6.0编写电脑抽奖程序

HTML文档下载 WORD文档下载 PDF文档下载
用VB6.0编写电脑抽奖程序

   近年来在娱乐节目之中常常见到利用电脑来抽奖,笔者对其发生了兴趣遂自己动手用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下:
  主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。Rnd函数的语法结构是Rnd[(number)],可选的number参数是 single或任何有效的数值表达式。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文件,或在程序中提供专门的界面间接地修改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_Stop.Caption =
  “开始"
  Label_FlashName.Visible = True
  Timer_FlashName.Enabled = True
  Timer_ScrollName.Enabled = False
  Label_FlashName =
  m_strNameArray(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_Stop.Caption = “停止"
  Command_Start_Stop.Enabled = False
  Timer_ScrollName.Enabled = True
  Timer_FlashName.Enabled = False
  Label_FlashName.Caption = “"
  End If
  End Sub
  Private 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 = “"
  nEnableSecond = 0
  '定义起始秒数
  ReDimNameArray
  '获得文本中的名字和打乱名字顺序
  nScrollStep = 5 '设定滚动字的步长
  nScrollWidth = Label_Congruation.Left
  '设定title的移动宽度
  bScrollState = False
  '设定缺省的开始滚动方向为向左
  m_nSelectNum = 0
  '初始化被选定数为0
  Init
  '初始化本程序的界面
  End Sub
  Private Sub Timer_FlashName_Timer() '闪动中奖者姓名
  If Label_FlashName.Visible = True Then
  Label_FlashName.Visible = False
  Else
  Label_FlashName.Visible = 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_ScrollName.Caption = m_str
  NameArray(m_nNameIndex).strName
  'End If
  End If
  End Sub
  Private Sub Timer_ScrollTitle_Timer() '滚动“恭喜发财"字样
  If bScrollState = False Then '向左滚
  nScrollStep = 10
  Label_Congruation.Caption = m_strScrollTitleLeft
  If nScrollWidth > 0 Then
  nScrollWidth =
  nScrollWidth - nScrollStep
  Else
  bScrollState = True
  End If
  Else '向右滚
  nScrollStep = -10
  Label_Congruation.Caption =
  m_strScrollTitleRight
  If nScrollWidth < Form_Bouns.ScaleWidth - Label_Congruation.Width Then
  nScrollWidth =
  nScrollWidth - nScrollStep
  Else
  bScrollState = False
  End If
  End If
  Label_Congruation.Left = nScrollWidth
  '以下为8秒钟内使“停止"按钮有效
  If nEnableSecond <= 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 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 App.Path + “\name.txt" For Input As #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 = App.Path + “\Sortition.ini"
  X = GetPrivateProfileString(“SYSTEM",“AppTitle",“抽奖程序", Temp, Len(Temp), lpFileName)
  m_strAppTitle = Trim(Temp)
  Temp =“"
  X = GetPrivateProfileString(“SYSTEM", "Title", "欢迎使用抽奖程序", Temp, Len(Temp), lpFileName)
  m_strTitle = Trim(Temp)
  Temp = “"
  X = GetPrivateProfileString(“SYSTEM",“ScrollTitleRight", “恭喜发财!!!", Temp, Len(Temp), lpFileName)
  m_strScrollTitleRight = Trim(Temp)
  X = GetPrivateProfileString(“SYSTEM",“ScrollTitleLeft", “龙年大发!!!", Temp, Len(Temp), lpFileName)
  m_strScrollTitleLeft = Trim(Temp)
  Form_Bouns.Caption = m_strAppTitle
  Label_CompanyTitle.Caption = m_strTitle
  End Sub
  模块源程序:
  '用于读取ini文件的API函数
  Declare Function GetPrivateProfileString Lib “kernel32" Alias “GetPrivateProfileStringA" (ByVal lpApplicationname 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 ini文件保存一些标题信息,因而可以方便的修改使用环境,及标题内容。
  见ini文件内容:
  [SYSTEM]
  ;应用程序的form名称
  AppTitle=“风云电脑抽奖Test"
  ;窗口的内的标题(限9个字)
  Title=“大抽奖"
  ;右滚动的文字(仅能为如下格式:XXXX!!!)
  ScrollTitleRight=“恭喜发财!!!"
  ;左滚动的文字(仅能为如下格式:XXXX!!!)
  ScrollTitleLeft=“祝您好运!!!"
  如此一个小小的电脑抽奖程序便完成了。
  以上程序在VB6.0 Windows98环境下编译通过!(武汉 蒋锦霞)



一周消息树:2013年十大产品、图书、公司盘点 专访Wunderlist主设计师Jan Martin:永远不要盲目跟风流行趋势 研发周报:超实用的JavaScript技巧及最佳实践 2013最吃香的技能:Java称霸、Android势头正猛 移动周报:最火原型设计工具盘点 “京东电商云”起航,零售企业及品牌商是重点 教育乃立国之本:教育类开源项目大汇集 Hugo Barra首度谈离开谷歌后在中国工作的感受 对中国赞不绝口 母婴行业最早试水者 优谈宝宝借助轻应用全面布局移动产品线 腾讯云平台部总经理纪顺友:微云将彻底迈过文件传输的门槛 豌豆“荚”油!B轮融资1.2亿美元的豌豆荚 2013年终盘点:10款最精巧的硬件开发板 SquareWear:可替代Lilypad Arduino的开发板 开放数据:2014年最热门的竞争领域 IE11虚拟机免费面向广大开发者 九城搭建的一个以Hadoop为基础的大数据平台 Windows 8复杂性的代价到底有多大? 在发布前,第一代iPhone其实并不完善 市场占有率调查:iOS 7秒杀Android 4.4 AWS会赢、OpenStack会消亡、Connected Cars可防僵尸攻击 谷歌以32亿美金收购iPod之父的创业公司Nest 物联网时代来临 微软2014,有你期待的吗? 映趣科技发布inWatch Z/inWatch X 后者采用全彩透明柔性屏 程序员没有天才:暴风影音首席架构师鲍金龙访谈 开放式创新改变世界——OpenStack生态系统将重新洗牌 Java 8最终发布日期敲定,即使有bug也要发布 Meteor PK Django,谁更适合开发实时Web应用? 学编程就像选家具:去宜家还是从种树开始? 前车之鉴 十二个年度最差设计网站汇集 冷暖交替,2014年编程兴衰趋势预测 诺基亚出Android手机,微软或将受惠 向高手求救,有关java中文的问题!!! 怎样在数据库中查出本周的记录。是ACCESS数据库。为什么高手都不进来。是问题太难吗 如何将任务栏的图标隐藏? 怎么google上不去了? SQL简单问题 关于html中进行文本编辑中操作图片的问题?请各位大虾来看看结贴一定给分 哪儿有H.323的资料呀? 我是菜鸟: ReportBuilder 中明细记录的序号怎么加? 屏蔽输入的字符 求解分数排名的权数确定 如何实现海量数据数据库的快速查询?? 有谁知道TreeView的AutoSelect属性是干嘛用的?? vc60编译出错问题? 请问编写调试JavaScript用什么软件比较好? 救命啊!!!!! 和父母一直搞的不好,怎么办? 客户端连接问题 求救 VFP:event.prg不存在? 宏和内联函数有什么具体的区别 请问如何将HTML页面直接插入TWebBrowser而不通过文件存取?谢谢! 如何将任务栏的图标隐藏? SQL Server7.0我的一个表才5万条数据,用这样的SQL Select * from Diner 语句查询要几十秒钟?太慢了。 请高手指点迷津!!! 2035年9月7日新华社报道 我的IE菜单怎么变成英文的了? GetFileVersionInfoSize,GetFileVersionInfo, VerQueryValue通过他们...... 谁知道文件上传组件:w3upload ,哪里有下载? 向高手求救,有关java中文的问题!!! 请教关于信息分析的好的软件有哪些?(100分) 急!如何使JTable中的某一列中的所有单元格只能输入数字?(急需源代码!)感谢! 怎样判断数据连接? 你是一个真正的程序员吗? 串口接收二进制数据一问,高分相送 关于关机的问题 Linux gcc 一弱弱问题 关于《阳春白雪》安装的问题,急! 发现index.aspx页面的ImageButton事件无法跟踪调试 怎么google上不去了? VB当中相当于VC当中的Continue(跳出一次循环,接着进行下一次循环)的语句是什么? 请教:Jsp中一个有关日期的简单问题! 我这边有个问题,用分1000给答的好人啊。。望各位兄弟帮帮忙啊! 如何使属性页和属性单占用资源减少? 为什么有时候gets()会停都不停,不让用户输入,而有时候却正常? 串口读取二进制数据一问,高分相送 一个小VB程序 下载了Delphl5.x ADO/MTS/CoM+(李维) 是PDF格式的,不能打印,该怎么办?那里可以下载到可打印的啊? 不难,关于程序调用的问题 奇怪!为什么不能引入System::Data? 重要!.Net FrameWork Service Pack 2出来了,赶快下载! 请教大家一个文件加密程序错误 #include <iostream.h>和#include <iostream>这两种写法根本的区别在哪儿? 为什么深海里面的鱼长得那么丑? 看到定义说左右极限都存在,x才是可去间断点,为什么-1,3这两点是可去间断点?-1不是只有右极限,3只有左极限么? 铁矿石加工成铁粉时会出现对人体有害物质吗? 初三上学年化学元素符号 什么是构成人体的主要从材料? caac是什么的缩写 化学元素符号级名称(初三)咳咳~开学第一节化学课、老师说要背元素周期还不知道是什么的、、那个给下初中所有的化学元素、、格式要 二氧化碳Co2 水H2o 镁...氧化镁...就这个格式 如图,每个小正方形的边长表示1厘米.要在小方格的顶点上找到C点,连接A,B,C后得到三角 形,使三角形ABC的面积为2平方厘米. CAAC是什么的简写 初三化学元素的名称和符号要求;按初三化学书的标准.最好按顺序..... 求数列极限 遇到Xn+1=ln(1+Xn) 为数列通项 X1>0 为什么它的下界是0?求数列极限 遇到Xn+1=ln(1+Xn) 为数列通项 X1>0 为什么它的下界是0?请解释清楚一点.(n+1是脚标) 重力式除铁除锰设备和压力式除铁除锰设备有何区别如题所示,哪一种得到了更广泛的应用 请问石油钻井中,常见到测井队使用中子源,会对靠近的人有影响吗?中子源入井后,放射出来的辐射会停留在泥泥浆返出地面后,会夹带辐射对人体有影响吗?本人是名泥浆工,未婚! pu妮麦的中子,有的箱 .254494109 圣经中有没有人活着的意义的解释?如题,不要说一堆官话,最好是圣经原版附注正常人能看懂的解释,混分儿绕行,谢谢 在外面的池塘,自然生长的鱼, 岩层产状三要素? 这个信度和效度到底是什么,有没有人能解释的通俗点效度不是题的有效性吗,写书上写着和测验的长度有关系,这是什么破逻辑,和长短有什么关系 补偿中子测井的简写是什么 画图的三要素是什么长对正、高平齐、宽相等.所谓“长对正”就是说:主视图和俯视图的长度方向要对正;所谓“高平齐”就是说:主视图和左视图的高度方向要平齐;所谓“宽相等”就是 除铁锰设备改造,出水不清澈我遇到一个地下水除铁锰工程改造,原水铁含量13mg/l,锰含量1.5mg/l,TDS值约90.原设备工艺流程:地下70M处的深井泵将水抽至地面,未采取任何曝气措施即进入一个100m 我现在有一个鱼塘,是天然的,所以池塘底是沙子的,我想了解一下像这样条件的鱼塘适养什么鱼合适》我现在有一个鱼塘,是天然的,所以池塘底是沙子的,我想了解一下像这样条件的鱼塘适合养 制图三要素是什么啊? 有没有人能解释一下什么是爱什么是喜欢? 我在北方宁夏有60亩的自然鱼塘,怎样养,养什么鱼收益大,希望大家给出意见水质条件较好,面积较广. 岩层产状三要素怎么测量?有没有不用罗盘仪的方法? 关于同人这个词,谁理解比较深的?跟一个朋友吵了半天,谁都不服谁,我对这个词也不了解多少,就去百度百科看了一下,我以为根据百度百科上的注解,《三国演义》也算是同人小说,他说不是,我 哪里棉被绗缝机器好一些?棉被绗缝机价格贵吗?我要是购买棉被绗缝机的话,应该去哪里购买才能购买到好一些的呢? 建设风力发电场,要具备哪些条件 谁知道『耽美』啥意思来找 直线多针绗缝机可以做棉被吗 中子为什么不易穿透含氢的物质? 测井曲线中的一些缩写代表啥意思?AC,C1,C2,CALI,CNL,DEN,DRHO,DT,GR,ILD,ILM,LLD,LLS,MSFL,PEF,PHID,PHIN,PHIS,PHOB,RI,RT,RXO,ResD,ResM,ResS,SFLU,SP. 房子前头的泰山石敢挡有什么故事么? 由氢12和氧18组成的水11克,所含的中子数为多少个 RESD代表什么 测井曲线 所有塔罗牌的英文 地层剖面图的方向怎么确定,比方说剖面图上方有个SE130, 氢核外电子数多少,碳中子数,核外电子数多少,纳质子数,中子数多少,铁核外电子数多少 将初三的化学元素符号给我要有元素名称和符号对照 镀金一定需要电吗 能够危害农作物的动物有?3个 请问“MAP ”英文缩写 电镀金与化学镀金的区别、优劣? 危害农作物的动物有哪些说的详细一点 在汽车系统里MAF是什么意思? 汽车型号英语简写含义 How many season are there in a year 改错 MAP是什么的英文缩写 塔罗牌一共多少张 名称分别是什么? How many seasons are there in a year?下一句是什How many seasons are there in a year?下一句是什么? cs起源各类地图英文缩写及其意思 六一国际儿童节 英文版要英文的 Do you know how many seasons are there in a year? 想把温泉馆标注到百度地图和汽车导航中找谁?恩,地图涉及到国家机密,现在国内只有一家公司在测量和商用,叫四维图新,是上市公司,如果像我这样的想把公司或商铺标注到地图上,就要找他的 求有关每个塔罗牌的名称和解释因为想写有关塔罗的小说,然后我又是菜鸟,汗 how many months are there in a year怎么回答 大自然的鱼为什么没有胀死的 请问这个极限1+和1-到底为什么会是这样的结果呢?遇到这样的情况总是很混淆. 铁矿砂对人体的害处我公司不远处有成片的铁矿砂,有4,5层楼高.办公桌每天要擦很多次,不知道对人体有什么危害不是..我这里离港务局很近,是港务局那是堆放的.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘