电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 网络编程 -> XML教程
用vb6.0编写电脑抽奖程序_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
近年来在娱乐节目之中常常见到利用电脑来抽奖,笔者对其发生了兴趣遂自己动手用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下:
  主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。Rnd函数的语法结构是Rnd[(number)],可选的number参数是single或任何有效的数值表达式。Rnd函数返回小于1但大于或等于0的值。number的值决定了Rnd生成随机数的方式。为了生成某个范围内的随机整数,可使用以下公式:
  Int((upperbound-lowerbound+1)×Rnd+lowerbound)
  这里,upperbound是随机数范围的上限,而lowerbound则是随机数范围的下限。
  另外,程序中还使用了INI文件,WindowsINI文件,可解释为Windows初始化文件。它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件。ini文件是一种文本文件,它可以通过Notepad等文本编辑器进行编辑。ini文件具有特定的格式。一个INI文件是由若干个段(section)组成的,每个段中包含若干关键字(key)及相应的值(value)。创建应用程序自己的INI文件,通过INI文件保存应用程序的一些运行环境信息,然后在程序中读取INI文件中的设置信息并据以处理。一旦程序的运行环境需要变更,则可以通过直接修改INI文件,或在程序中提供专门的界面间接地修改INI文件来保证程序的可用性。
  程序运行时如图:
  源程序及注释如下:
  窗体源程序
  OptionExplicit
  Dimm_strNameArray()AsMyName
  Dimm_bIsStartAsBoolean
  Dimm_nNameIndexAsInteger
  DimMAX_INDEXAsInteger
  Dimm_nSelectNumAsInteger
  被选定数
  DimnScrollStepAsInteger
  DimnScrollWidthAsInteger
  DimbScrollStateAsBoolean
  DimnEnableSecondAsInteger
  Dimm_strTitleAsString
  Dimm_strAppTitleAsString
  Dimm_strScrollTitleLeftAsString
  Dimm_strScrollTitleRightAsString
  PrivateSubCommand_Start_Stop_Click()
  Ifm_bIsStart=TrueThen
  按停止钮
  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
  DimTempAsMyName
  Temp=
  m_strNameArray(MAX_INDEX)
  m_strNameArray(MAX-INDEX)=m_strNameArray(m_nNameIndex)
  m_strNameArray(m_nNameIndex)=
  Temp
  MAX_INDEX=MAX_INDEX-1
  IfMAX_INDEX=0Then
  MsgBox“非常感谢您使用本软件"
  EndIf
  Else按开始钮
  m_bIsStart=True
  Command_Start_Stop.Caption=“停止"
  Command_Start_Stop.Enabled=False
  Timer_ScrollName.Enabled=True
  Timer_FlashName.Enabled=False
  Label_FlashName.Caption=“"
  EndIf
  EndSub
  PrivateSubForm_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
  初始化本程序的界面
  EndSub
  PrivateSubTimer_FlashName_Timer()闪动中奖者姓名
  IfLabel_FlashName.Visible=TrueThen
  Label_FlashName.Visible=False
  Else
  Label_FlashName.Visible=True
  EndIf
  EndSub
  PrivateSubTimer_ScrollName_Timer()滚动出现名字
  Ifm_bIsStart=TrueThen
  Ifm_nNameIndex>=MAX_INDEXThen
  m_nNameIndex=0
  EndIf
  m_nNameIndex=
  m_nNameIndex+1
  Ifm_strNameArray(m_nNameIndex).bIsSelect=TrueThen
  Ifm_nNameIndex<
  MAX-INDEXThen
  m_nNameIndex=
  m_nNameIndex+1
  Else
  m_nNameIndex=0
  EndIf
  EndIf
  Label_ScrollName.Caption=m_str
  NameArray(m_nNameIndex).strName
  EndIf
  EndIf
  EndSub
  PrivateSubTimer_ScrollTitle_Timer()滚动“恭喜发财"字样
  IfbScrollState=FalseThen向左滚
  nScrollStep=10
  Label_Congruation.Caption=m_strScrollTitleLeft
  IfnScrollWidth>0Then
  nScrollWidth=
  nScrollWidth-nScrollStep
  Else
  bScrollState=True
  EndIf
  Else向右滚
  nScrollStep=-10
  Label_Congruation.Caption=
  m_strScrollTitleRight
  IfnScrollWidth<Form_Bouns.ScaleWidth-Label_Congruation.WidthThen
  nScrollWidth=
  nScrollWidth-nScrollStep
  Else
  bScrollState=False
  EndIf
  EndIf
  Label_Congruation.Left=nScrollWidth
  以下为8秒钟内使“停止"按钮有效
  IfnEnableSecond<=49Then
  Ifm_bIsStart=TrueThen
  nEnableSecond=nEnableSecond+1
  EndIf
  Else
  Ifm_bIsStart=TrueThen
  Command_Start_Stop.Enabled=True
  nEnableSecond=0
  EndIf
  EndIf
  EndSub
  动态定义数组
  PrivateSubReDimNameArray()
  DimnMaxIndexAsInteger
  DimstrMaxIndexAsString
  DimnIndexAsInteger
  DimbIsBeginAsBoolean
  bIsBegin=False
  nIndex=0
  OpenApp.Path+“\name.txt"ForInputAs#1读文件
  DoUntilEOF(1)
  IfbIsBegin=FalseThen
  LineInput#1,strMaxIndex
  nMaxIndex=Val(strMaxIndex)
  MAX_INDEX=nMaxIndex-1
  ReDimm_strNameArray(0TonMaxIndex-1)
  bIsBegin=True
  Else
  LineInput#1,m_strNameArray(nIndex).strName
  m_strNameArray(nIndex).bIsSelect=False
  nIndex=nIndex+1
  EndIf
  Loop
  以下为打乱人员顺序10次
  DimiAsInteger
  DimjAsInteger
  DimTempAsString
  DimnRandomNumAsInteger
  Forj=0To10
  Fori=0TonMaxIndex-1
  nRandomNum=((nMaxIndex-1)×Rnd)利用Rnd函数
  Temp=m_strNameArray(i).strName
  m_strNameArray(i).strName=m_strNameArray(nRandomNum).strName
  m_strNameArray(nRandomNum).strName=Temp
  Nexti
  Nextj
  EndSub
  PrivateSubInit()读取INI文件
  DimXAsLong
  DimlpFileName
  DimTempAsString×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
  EndSub
  模块源程序:
  用于读取ini文件的API函数
  DeclareFunctionGetPrivateProfileStringLib“kernel32"Alias“GetPrivateProfileStringA"(ByVallpApplicationnameAsString,ByVallpKeyNameAsString,ByVallpDefaultAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong,ByVallpFileNameAsString)AsLong
  PublicTypeMyName
  strNameAsString
  bIsSelectAsBoolean
  EndType
  由于程序利用的windowsini文件保存一些标题信息,因而可以方便的修改使用环境,及标题内容。
  见ini文件内容:
  [SYSTEM]
  ;应用程序的form名称
  AppTitle=“风云电脑抽奖Test"
  ;窗口的内的标题(限9个字)
  Title=“大抽奖"
  ;右滚动的文字(仅能为如下格式:XXXX!!!)
  ScrollTitleRight=“恭喜发财!!!"
  ;左滚动的文字(仅能为如下格式:XXXX!!!)
  ScrollTitleLeft=“祝您好运!!!"
  如此一个小小的电脑抽奖程序便完成了。
  以上程序在VB6.0Windows98环境下编译通过->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·用xsl翻译web服务应用程序_xml技巧
·xml与html的结合(上)_xml教程
·xml与html的结合(下)_xml教程
·用xml和sql 2000来管理存储过程调用_xml技巧
·把数据转换成xml格式的好处 _xml技巧
·使用xml实现bbs(主题列表篇)_xml技巧
·为何xml对web服务很重要_xml技巧
·xml中的空格之完全解说_xml技巧
·利用xml开发留言板简单的例子_xml技巧
·如何快速通过xsl转换xml文件_xml技巧

最新文章
·photoshop为情侣照片打造韩式梦幻相框_photoshop教程
·php5对mysql5的任意数据库表的管理代码示例(二)_php技巧
·photoshop照片色调色:黄绿怀旧_photoshop教程
·灵活调用xsl来解析xml文档(js异步)_xml技巧
·xml文件调用css_xml技巧
·使用 xml 文件记录操作日志_xml技巧
·photoshop打造玻璃效果奥运会会徽_photoshop教程
·photoshop简单打造超酷曲线效果图_photoshop教程
·xml 问题: 超越dom(轻松使用 dom 的技巧和诀窍) _xml技巧
·利用xslt把ado记录集转换成xml_xml技巧


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号