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

用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环境下编译通过!(武汉 蒋锦霞)



自行车,恰到好处的“智能” 联通WO+开放平台:保护消费者权益就是保护移动互联网生态 2015年Google Code Jam编程挑战赛开始报名 Impression Pi:VR头盔的进阶形态 King.com和Halfbrick Studios成功背后的21款工具 五大实用技巧 帮设计师实现高效会议沟通 机遇与挑战并存 Testin进军众测 新增多SIM卡API,Android 5.1 SDK正式发布! 谷歌代码托管平台Google Code将正式关闭 提升Sketch使用效率的6个实用技巧 界面设计原则之一篇:权衡优先级 突出焦点 划分好内容层级 开源的ResearchKit:苹果将如何颠覆未来医疗? CocoaPods 0.36正式发布,实现Swift和iOS 8动态框架支持 C++入门学习书籍推荐 GitHub是如何征服Google、微软和其它公司的 约见越狱大神!2015 MSS移动安全峰会议程披露 Spark 1.3更新概述:176个贡献者,1000+ patches 从游戏设计到星际探险,微软HoloLens全息技术将改变什么? 触摸屏技术未来?详解Apple新手段Force Touch 专访云适配CEO陈本峰:紧跟HTML5热潮,Web组件化知多少? QQ音乐5.0全新设计过程要点解析 GDC 2015感悟:从0到1,VR投入手游开发路漫漫 TestBird发布手游真人众测平台——附中国手游兼容性测试白皮书 与用户的再一次连接,微软的免费升级计划背后 颠覆App!LayaBox用Flash开发重度HTML5游戏 WinHEC:微软小娜与小冰正式登陆Windows 10平台 Coursera工程师董飞:典型硅谷公司大数据实战分析 微软开源Visual Studio构建工具MSBuild 死而复生!下架6月,Launcher重回App Store 虚拟投影、高保真耳机!新型可穿戴家庭影院Dashbon Mask 【程序员电子刊精选】躺枪的互联网思维 怎么让打开的EXCEL文档自动到某一工作表?? 如何分别取得字符串中空格前和空格后的数据呢?如‘dfds df fds'分为dfds df fds. 谁知道MSWord的文件格式? 怎样给自定义函数设置多个参数项? 在URL地址栏中传递字符串参数遇到的一个问题??? 如何在繁體下打開簡體文件名的文件?要求不能用改名的辦法 插入数据到数据库! 高手关注--------送分-----------急急急! 在ASP中如何编程建立索引服务的编录及目录? 在web server application把MEMO字段中带格式(RTF)的内容转换成纯文本? 请问在身份验证中,能否有两个login.aspx??? 急~那篇给vb控件打包文件添加数字签名以便浏览器浏览的那篇文章在哪里? 用vb如何实现模拟雷达界面??欢迎赐教! 如何用CSS控制INPUT的输入外观不是立体的,而看起来是平板的样子,只有一个边线? 用户注册的问题,密码总验证不对,能不能看看错在哪里? 如何使文本框只显示下面的边框? xsl求助~~~ 怎么将int转为CString 有的论坛采用从数据库得到帖子,有的使用shtml,有的使用xml,孰优???还有其他吗? 100分==在JSP中打开word文件的实例 紧急在线等一个很简单的问题 DTPicker 怎样和数据库绑定? 如何动态改变VB报表中Section中的一个与数据环境绑定的rptTextBox的颜色!(100分求教) datediff()这个函数怎么用哪位高手可否给小弟讲解一下急用在线等 和女友分手了,痛苦! 谁有支持中文的带身份验证和邮件群发的ASP.NET邮件组件? 关于多个表通过相同的字段级联的问题,进来看看,一定给分! windowd server 2003许可证问题 谁有支持中文的带身份验证和邮件群发的ASP.NET邮件组件? 求合作伙伴——推广抗非典病毒的消毒剂!!! 在表分区中,按某个varchar2的字段的值和范围如何分呢 我又來了,不僅你們煩,我更煩. 服务器端与客户端的问题 服务器端与客户端的问题 最后的问题,谢谢帮我看看 发现MS WINDOWS版的C标准库一个在BUG!!!!! 在用VFP操作EXCEL时出现无法用字段内容填充单元格问题,请各位帮忙看看. 算法 救命! 有没有rmi的好例程,一用就灵,急 fast report 和 qreport 到底应该用哪一个???(来者有分!!) 关于“数据结构书”的回应——版主莫删 如何进入另一个对话框 在一字符串中怎样取出某一个字符出现的次数. 急! infopower 2000、 3000、4000 Password?? 自定下载的问题,请教高手 如何屏蔽播放.wav文件但找不到相应.wav文件时发出的默认声音? 如何打开另一个对话框 政治因素对我国军事专家的困扰[ZT] if ((btime==null)&&(etime==null )) 请教 设集合P={x|y=x^2},集合Q={(x,y )|y=x^2},则P,Q的关系是 邻角相等的四边形是平行四边形吗?能做判定定理吗 今适有知而斯之的意思? 如图:在三角形ABC中,AB=AC,BD垂直AC于D,CE垂直AB于E,CE与BD相交于G,GH垂直BC于H,求证:BH=CH 叽叽的,呱呱的,嗡嗡的等,算不算AAB式词语?为什么?叽叽的算不算两个词?(叽叽是一个,的是一个。) 一直忧虑科学家预言的小行星撞击地球,怎么都走不出来,怎么办?我一直忧虑科学家预言的小行星撞击地球,怎么都走不出来.有七八年的了,别笑话我,我真的就是怎么都不出.05年的一天在家看电 九月九日忆山东兄弟,第一二句写诗人离乡在外什么,第三四句写诗人想象什么,全是突出什么之情 集合P={x|y= √x-1 },集合Q={y|y= √x-1 },则P与Q的关系是( )集合P={x|y= √x-1 },集合Q={y|y= √x-1 },则P与Q的关系是(  )答案是p⊆Q且p≠Q(真子集符号打不出来)怎么做的 学生扎辫子的方法,早上起来要自己扎的,好看一点的, 九月九日忆山东兄弟中的一、二句写写诗人离乡在外的什么;第三’四句写诗人想象什么 在△ABC中,AB=AC,BD⊥AC于D,CE⊥AB于E,CE与BD相交于G,GH⊥BC于H,试说明BH=CH 平行四边形的对角相等吗? 九月九日忆山东兄弟,全诗突出什么什么之情 已知f(x)=x^2+︱x-a︱+1 (1)判断f(x)的奇偶性 (2)求f(x)的最小值 已知四边形一组对角相等,证明这个四边形是平行四边形 α,β为锐角,且α+β=2派/3,则cosα的平方+cosβ的平方的取值范围为 设fx=│2-x²│若0小于a小于b且f(a)=f(b)则ab的取值范围是 若函数y=x^2-4px-2的图像过点A(tanα,1)及B(tanβ,1),求sin2(α+β)的值2p/(1+p^2) 若函数Y=1-2x,则此函数的图像不过第几象限 设f(x)=2√2x-x²,若0 半径为5的圆O内有一点P,且OP=4则过点P的最短弦长为( ),最长弦长为( ) √12 -4/√3 -1+(-5√3)^0 有回答就采纳 重庆和上海在气候方面的相同点和地形方面的不同点 一组对边相等,一组对角相等的四边形____(填能或不能)判定为平行四边形.(求证明过程 ) 地球 科学定理中地球包不包括地球的大气层;土星包不包括土星环 上海的地形 已知:tanα=3/4,tanβ=12/13且都是锐角,求α+β. 若函数y=a^x+b-1(a>0且a不等于1)的图像经过第二三象限,则a.b一定满足什么 上海是什么地形 四边形一组对角相等一组对边平行为什么不能判定平行四边形两个三角形AAS啊?为什么不是判定定理?求反例?那为什么不是判定定理啊?不能直接判定? 函数y=kx+b的图像经过第一、二象限,则b[、=、小于或等于0】 上海地形从辛庄 到 淮海路 长乐路141号向明中学1号楼106室(近瑞金路)大概多长时间?做什么车? 为什么在判定平行四边形中,不能用对角相等直接判定?是两组对角都平行 已知集合A={p|x^2+2(p-1)x+1=0,x∈R},求集合B={y|y=2x-1,x∈A} 重庆的地形作文需要, 已知三角形ABC为等边三角形,O为三角形内一点,AO=根号5,BO=根号3,CO=根号2,求角BOC. 已知M={y|y=x^2-1,x∈R},P={x|x=|a|-1,a∈R},则集合M与P的关系是? 平面外一点到平面内一直角定点的距离是23cm,这点到两直角边的距离都是17cm,则这点到直角边所在平面的距为:A根号40cm;B根号249cm;C15cm:D7cm.距离 在三角形ABC中边AB=2,BC=1角ABC=60点O为AC上一点若BO=二分之根号七试确定O点位置 如图,在△abc中,ab=ac,bd⊥ac于点d,ce⊥ab于点e,ce与bd相交于点g,gh⊥bc于点h,求证bh=ch.那个人会呀! 求f(x)=|x+1|+|x-1|(x属于R)的奇偶性,证明 已知αβ都是锐角 cosα=4/5 tan(α-β)=﹣1/3求sin(α-β) 如图在△abc中 ab=ac,bd⊥ac于d,ce⊥ab,ce与bd相交于点g,gh⊥bc于h,求证:bh=ch 三角形ABC为圆O的内接三角形,AF垂直BC,CE垂直AB交AF于点H,OD垂直BC.试说明OD与AH的数量关系 初二历史专题知识归纳整理三方面 经济 思想文化 只要写时间 和事件就好了 如果答案给的好的话 集合p={(x,y)x+ y=o} q={(x,y)|x-y=2}则a∩b= 在三角形ABC中AB=AC在AB上取一点D在AC的延长线上取一点E使BD=CE连接DE交BC于点F求求证DF=EF 半径为5的圆O内有一点P,且OP=3则过点P的最短弦长为( ),最长弦长为( ) 已知集合M={y|y=x^2-1,x∈R},P={x|x=|a|-1,a∈R},则集合M和P的关系 △ABC中,AB=AC,BD,CE分别平分∠ABC,∠ACB,AG⊥BD与G,AH垂直CE与F交BC于H,求证1.△AFG是等腰三角形.2.△CAH是等腰三角形. 为什么说森林是人类的朋友?请联系生活实际谈一谈 已知,如图△ABC E为AB上一点 AE=AC AH⊥CF BH‖CE 求证 AB/AC=BH/CK excel怎么把各选项卡中的数据集合到一起并求平均数如图,每个选项卡中都有数值,我需要把这些数值全部加起来并求和 有什么简便方法吗 系统解剖怎么学 为什麽一加一等于二因为一加一等于二 两组对角分别相等的四边形是平行四边形为什么没有作为判定定理 条件概率中的P(AB)如何计算? 集合P={x/y=√x-1},集合Q={y=√x-1}则P与 Q的关系为A.P=Q B.P真包含Q C.P真包含于Q D.P交Q=∅ 判定定理2:两组对边分别相等的四边形是平行四边形判定定理3:对角线互相平分的四边形是平行四边形请用两种方法分别证明这两个定理 条件概率:P(A∩B|A)≠P(B)对不对.为什么?条件概率的问题.P(A∩B|A)≠P(B) 美在罗马尼亚反导基地开建利比亚枪手狂劫5000万美元北京最牛违建阳光房本体遭疑 张必清称黑龙江望奎公安局回应面积超标:夜间疲海南多市现轻度污染 专家称大气远程迁马尼拉市长称并非只向华商募集人质事件30万欧元塞浦路斯购房可获永居权朴槿惠为球赛开球英国报纸窃听丑闻开庭审理天文学家发现酷似太阳系行星系美政府高官因奥巴马医改核心举措漏洞频国有银行副处长杀妻判死刑 被曝与多名村主任骗千万拆迁款获刑14年 称不了中国疾控中心专家:H7N9禽流感疫情纽约油价29日下跌美政府高官因奥巴马医改核心举措漏洞频中储粮:转基因油未污染国储库 国储菜美政府高官因奥巴马医改核心举措漏洞频英国将发行伊斯兰债券 吸引中东投资者孟加拉国大罢工第三天造成至少4人死亡美政府高官因奥巴马医改核心举措漏洞频琼瑶诉于正索赔两千万西沙一月:中国钻探作业多次遭越南干扰国内首个空调用户体验指数发布朝鲜要求美军停止在板门店挑衅1公里也要坐安全座椅每个租车人都是拥有超大车队的真“土豪安全提篮就像妈妈的怀抱脉枕 一脉传承五千年刘青云、古天乐、吴彦祖斗帅斗狠斗演技电影学院国际班成果斐然本市近两年无人获高考品德加分盈江震区141所学校复课房价降三成仍盈亏平衡?十一位妈妈的爱双胞胎并非双倍挑战李代沫因毒获刑9个月我在英国挑三拣四李娜自导自演大冷门李代沫被判9个月公司老总欠下外债 挪用900余万营业下乡养儿
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘