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

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



Android Rootkit相关揭秘 androidmanifest.xml高级属性解析 根据packageName构造Context SQLite操作,还是raw方法更简洁高效 Android开发基础YesNo对话框构造代码 Android代码性能优化技巧 Android开发注意点 Part One onSaveInstanceState和onRestoreInstanceState的用处 Android基础概念Context的作用 在Android的Notification中显示进度条 Android跨进程数据通讯-剪切板Clipboard ConditionVariable Android线程同步 Android软件开发方向指导 ArrayList LinkedList Set HashMap介绍 PermissionInfo Android权限枚举方法 Android上HTTP协议通讯状态获取 Android开发需要自己完善的类库总结 Android的ListView控件滚动时背景问题 GestureDetector手势识别类 - 进阶篇 MenuInflater Android菜单从xml创建方法 EditText输入提示你知道吗? Android布局Java代码构造法 Android全屏设置代码 测试Android软件性能主要方法 自定义Android标题栏TitleBar布局 获取Android屏幕方向及键盘状态 Android平台XML解析库功能不完整 GestureDetector手势识别类 - 入门篇 不会Java或C,Android123告诉你还有选择 Splash Screen开场屏在Android中的实现 Android游戏开发性能改进要点 编译提示打不开rc文件.怎么办啊? bitmap和icon什么的还可以在Resoure里编辑. 有无可能向用户隐藏下载文件的地址? DataRowView的问题 我用delphi一年多了,下面是我做的一个小东东,欢迎大家提意见。 硬盘被关闭的问题 请问,做一个dcom程序,怎样注册server端client端, 丢附件的问题 一个加急问题!!!怎样取得这个数组的值??? 如何在TreeView的NodeClick事件里得知当前node的上一级node的text? 我用MFC做了一个报表程序,开始时吧菜单中的“打印预览”删除了,请问我怎样再加入打印预览菜单项而且可以实现原来的功能? 让我们做一对幸福的老鼠[zz] ******请问sybase sql anywhere 7是否就是adaptive server anywhere 7(asa) linux能使用ADSL吗??? 大家来讨论一下多播和组播吧! 请问在深圳要到哪里什么时候报考高级程序员啊? 一个加急问题!!!怎样取得这个数组的值???? 時間問題比較 怎么给wstring赋值? PB与sql server 连接的问题 大虾们,我的这个程序错在哪?就是不出现像要的结果bezier曲线??在线等候!!!! 请教各位大侠,关于SQL与应用程序进行封装的问题 二个简单Access问题 关于更新表中的记录用sql.add该怎末写? 如何修复已经损坏的excel文件?急 请问谁有操作WAB文件的资料,可以给我一份吗? pb 6.5 分布式问题 拉有免费软件的上传空间?????? 使用JBuilder6出现的“找不到数据库驱动”的问题 哪里有中英文的VC书下载? 请帮忙:能传给我C++ primer 电子文档. 急!!UserControl_Resize()什么时候触发? 二个简单Access问题 北京项目管理,系统设计同行 关于ActiveX控件(OCX)的两个问题 ****急*****请教注册码的检验原理 怎样得到98/me/2k/xp下的桌面壁纸? 大家好,我想取消TStringGrid上,点右键出现的popup菜单,请指教 二个简单Access问题 请各位高手指教:怎样用VB读出WORD中指定区域的内容。 查询的表单提交 求多线程SOCK连接程序 二个简单Access问题 关于计算学生人数??? 二个简单Access问题 二个简单Access问题 二个简单Access问题 JBUILDER 6 FOR LINUX 的注册码谁有啊 VB中如何判断打印机的状态(空闲还是脱机等)? 难道没有高手了吗?为解决在Win32上MPEG-1视频流播放延时问题再次悬赏6000元人民币 关于Exp时候的4031错误? JBUILDER 6 FOR LINUX 的注册码谁有啊 太阳能发电最低成本的方法是哪几种? 请问LED 灯的调光原理是什么?LED 灯的调光原理?旋转手柄(开关)在调光中起什么作用?如何辨别该灯是采用PMW调光 还是恒流调光?请详细回答. 我们伟大的祖国改革开放三十多年来,各行各业取得了辉煌的成就.围绕我爱祖国这一主题写一篇演讲稿. 谁知道太阳能发电现在有几种先进的模式? led灯泡能调光吗 求一篇建党90周年的征文 要求作品要歌颂伟大的党,歌颂伟大的祖国,歌颂林业事业发展的辉煌成就,歌颂在林要有和林业有关的 Hcl和AgOH反应能生成AgCl吗 人的耳朵听不见超声.波蝙蝠的耳朵能听见超声波.用关联合并为一句话 人教版四年级下册《蝙蝠和雷达》小练笔 AgCl 和 HCl反应现象二楼的话不太懂 汽车收音机天线汽车收音机效果不好 在上海还可以 不过载郊区也不怎么好 但是每逢回老家就不行了 老家的信号一点也不好 FM根本一个也收不到 有没有办法争强信号啊 温度与温度计原理种类应用 Agcl能和Hcl反应吗? 蝙蝠在飞行时会发出次声波还是超声波? 物体的温度与物体体积有什么关系?我知道热胀冷缩,但我想要知道具体关系(即公式)(不可能没有公式吧,要不然科学家怎么知道绝对零度的物体体积为零?) 太阳能发电有哪些特点? 如何更换汽车收音机天线有视频的更好了 温度的改变与体积的关系标况下,1L空气换算成10摄氏度~10^5大气压 体积为多少 谁了解太阳能发电发电多少和什么有关啊? 三阶魔方 底面和两层已经拼好了 求后面的公式.写清楚点 祖国发展和改革开放的辉煌成就的征文1000字左右主题鲜明正确,联系实际内容,语言流畅,形象生动 为什么墨西哥湾拥有全球最大的暖流 太阳能发电有多少v的 装了gps的怎样查询车在哪里 LED灯是什么材料制作的? 利用1*4平方米的面积安装太阳能发电一天能发电几度需要什么配套 投入大概多少? 汽车卫星定位我车有,怎么查询车在哪里, 如何制作led灯在洗手间使用的,晚上上厕所不用开灯,开led灯光线暗点就好了用手机电池可以吗 太阳能发电成本多少/ 绝缘电阻测试仪能用来测表面电阻和体积电阻吗?,请用通俗点的话说, LED灯是怎样制作的?LED灯都有那些原料? 磷酸二氢根会电离吗?电离水解哪个程度大? 如何使用电阻测试仪测试电阻 火为什么把热气球飞起来? 为什么磷酸氢二钠溶液呈酸性,而磷酸氢根还能做酸 我想用霍尔测试仪测试电阻,可是我想测量不同温度下的电阻,有什么方法么?感谢大家!比如说,20度,30度,40度,50度,60度,在室温下用霍尔测试仪怎么测呢?或者有其他的测试手段,谢谢!可能我没说 LED小夜灯制作过程 藏羚羊的特点藏羚羊的栖息地在哪里?栖息地环境特点如何?(回答简练,一看就知道) 回路电阻仪为什么不能用来测变压器值阻 求问热气球为什么能飞起来? 魔方公式第三层十字架怎么拼 四年级语文下册11课蝙蝠和雷达作者是谁? 太阳能发电的过程100字以内! 求拼六个十字架的魔方公式,什么情况下才能用,怎么用? 四年级人教版语文第11课蝙蝠和雷达这篇文讲了什么?蝙蝠的嘴和耳朵是怎样配合的?专家是怎样从蝙蝠身上得到启示,发明雷达?还有哪些发明是从动物身上得到的启示? 太阳能发电问题,大师们来帮帮忙我家每天大约用6度电,最近不想用国电了,想买一些太阳能发电板,我们家是吉林的,每天日照5小时左右,求大师告诉告诉我应该用多少W太阳能板,多大的电瓶,多 魔方怎么拼十字架啊?是第一步的那个十字架,我不是拼不出来,就是拼出来侧面颜色不一致,怎么回事?是魔方贴纸贴错了吗? 四年级下学期的”蝙蝠和雷达”的作者是谁啊 汽车车顶上天线有什么作用? LED调光灯用5个白色高亮LED作光源,用PWM对其进行斩波调光,16级可调,亮度设置存于2402中,用3个按键控制,分别为开/关,亮,暗反正可以实现用三个按键对他们进行调光就可以了,谁能大概帮忙编一 四年级下册 蝙蝠和雷达 的中心思想是什么? 建国60年马克思主义在中国取得的成就 nacl怎么生成hcl 用电导率仪测定水纯度的根据是什么? 建国60年以来我国在科技方面的发展与取得的成就要写一篇《形势与政策》的文章,要求有关建国60年来我国在科技领域的发展成就,要有感想和内容,如果能有文章最好,没有的话可以提供一些 LED灯可以调光吗? 电导率溶液怎么分的?比如1413us/cm和 12880us/cm的电导率溶液怎么分的什么时候用1413us/cm 校准电导率仪比如1413us/cm和 12880us/cm的电导率溶液怎么分?什么时候用1413us/cm 校准电导率仪,什么时候用1288 我国建国六十周年所取得的成就急! LED灯怎样调光? 谁有电导率仪,帮我测试下怡宝 娃哈哈纯净水的电导率.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘