利用Visual Basic2005设计电视节目手机号码抽奖程序

来源 :硅谷 | 被引量 : 0次 | 上传用户:liu0211yan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]以春节联欢晚会电视节目手机号码抽奖为例,介绍利用Visual Basic2005设计电视节目手机号码抽奖程序的步骤和关键技术。
  [关键词]VisualBasic2005 手机号码 电视抽奖
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510021-02
  
  近年来,各地电视台为了增进节目与观众的互动,在节目中设置了用手机和小灵通参与节目短信投票活动,在节目举行到高潮时,邀请抽奖嘉宾开启手机号码抽奖,屏幕不停翻滚手机号码,当停止抽奖时屏幕显示中奖手机号码。本文通过一个春节联欢晚会电视节目抽奖程序为例(程序运行结果如图1所示),介绍了利用Visual Basic2005设计手机号码抽奖程序的步骤和关键技术。
  


  
  一、电视节目手机号码抽奖程序的特点
  
  电视节目手机号码抽奖程序有下列特点:(1)电视节目抽奖程序力求界面友好,窗体无标题栏和无关控件,程序操作方法要简单,当按空格键实现抽奖启动与停止;(2)手机号码数据由电信营运商提供,可能数据量大,每个号码都要有平等的机会参与抽奖,号码翻滚速度适中,翻滚的号码数据要作隐私保护(屏蔽中间4位数字),对抽中的号码要锁定并记录到数据库中。
  
  二、电视节目手机号码抽奖程序设计
  
  (一)程序界面设计和数据库设计
  电视抽奖时一般同时会显示出几组手机号码数据,用组框(Groupbox)
  控件对号码进行分组,一个手机号码有11位数字,用11个标签分开显示,本例有4组号码需要44个标签控件(第一组命名label101~label111,第二组label201~label211,其他组依此类推)。设置窗体的边框样式FormBor
  DerStyle为None,实现抽奖程序运行无标题栏。设置窗体的WindowsState
  属性为Maximized,实现抽奖程序运行时最大化。
  考虑到手机号码数据量大和数据库表的可扩充性,选用SQL Server20
  05作为手机抽奖数据库。在SQL Server环境下建立一个名为Mobile_Lotter
  Y的数据库,然后建立两张数据表:(1)TphoneNumber存储待抽取的手机号码;(2)TselectedNumber存储已经抽中的手机号码。两张表都含有(Phone
  Number varchar(11))字段,表示11位手机号码。
  (二)数据访问技术的实现
  程序中多处要访问数据库,考虑到VB2005访问SQL Server数据库的简便性,特设计一个数据库操作类CDBOperation,在类下面定义一个共享函数DBOperate()对数据库进行操作。
  Public Class CDBOperation
  Shared Function DBOperate(ByVal SQLString As String) As DataTable
  Try
   Dim SconString As String
  SconString = "Data Source=(local);Initial Catalog=Mobile_Lottery;Integrated Security=SSPI"
  '连接SQL Server数据库
  Dim myconn As New SqlConnection
  myconn.ConnectionString = SconString
  myconn.Open()
   Dim myComm As New SqlCommand(SQLString, myconn)
  If InStr(SQLString.ToUpper, "INSERT") > 0 Or InStr(SQLString.ToUpper, "DELETE") Or InStr(SQLString.ToUpper, "UPDATE") Then '增加、删除、更新操作
  myComm.ExecuteNonQuery()
  myconn.Close()
   Else'查询操作
  myComm.ExecuteNonQuery()
  Dim mydataset As New DataSet
  Dim mydataApater As New SqlDataAdapter
  mydataApater.TableMappings.Add("Table", "Temp")
   mydataApater.SelectCommand = myComm
   mydataApater.Fill(mydataset)
   myconn.Close()
   Return mydataset.Tables("Temp")
   End If
   Catch ex As SqlException
   MsgBox(ex.Message)
   End Try
  End Function
  End Class
  为了避免从数据库频繁读写数据,影响抽奖程序的运行速度,在窗体启动事件中事先把手机号码数据一次性读入到全局内存数据表(mytable) 中,抽奖进行中直接从mytable中抽取,不需要频繁访问数据库。
  Private Sub frmPhonenumber_Load( …… )
  mytable = CDBOperation.DBOperate("select * from TPhoneNumber")
  '读手机数据库到全局内存数据表mytable中。
  Nend = mytable.Rows.Count1'全局变量Nend记录手机号码总条数
  End Sub
  (三)当按空格键开始抽奖,再按空格键停止抽奖并锁定抽中号码的程序设计
  空格键是键盘中最长的一个键,如果用它来控制抽奖的启停,就会给操作软件带来方便,在程序中要设法捕捉按下空格键所触发的事件。按键按下时都会触发keypress事件,该事件传递被按键的ASCII码值,在窗体的keypress事件捕捉按下的键值,从而对程序进行控制。空格键的ASCII值是32,根据按键值e.keychar来测试是否按了空格键。程序界面设计时,计时器控件Enabled属性设置为False,即初始时未自动进行抽奖必须按空格键开始抽奖,然后按空格键停止抽奖。
  Private Sub frmPhonenumber_KeyPress(……)
  If Asc(e.KeyChar) = 32 Then
   Timer1.Enabled = Not Timer1.Enabled
  '一反一复式控制
  End If
  在窗体的KeyPress事件中,要测试计时器timer1.Enabled属性,如果其值为不可用(False),表明己经停止滚动(即抽中了号码),要锁定抽奖号码,把抽中的号码放到TselectedNumber表中保存,然后删除TphoneNumber表中相应的号码。
  If Timer1.Enabled = False Then
  Dim i As Integer
  For i = 1 To 4
  CDBOperation.DBOperate("insert into TSelectedNumber(PhoneNumber) values('" & WinningNumbers(i) & "') ") '把抽中的号码放到TselectedNumber表
  CDBOperation.DBOperate("delete from TPhoneNumber where PhoneNumber='" & WinningNumbers(i) & "'")'删除TphoneNumber表中抽中的号码
   Next
  End If
  (四)实现电脑屏幕不停翻滚加以隐私保护的手机号码
  实现电脑屏幕不停翻滚手机号码数据,可设置计时器触发周期(滚动频率)Interval属性(单位毫秒,建议设为10,每秒钟触发100次)让计时器timer1每隔Interval周期不停地执行滚动号码。为了让每个号码都有平等的机会参与抽奖,采用随机数抽取内存数据表中的手机号码。设Nbegin起始数字,Nend表示终止数字,可以利用随机数公式n = Int(Rnd() *(Nend-Nbegin+1)+Nbegin)产生[Nbegin,Nend]的随机数,然后利用产生的随机数作为序号读取内存表mytable中相应的数据行到TempNumbers。从内存表中读取的数据是11位的手机号码,如果直接全部显示出来,会泄露手机用户的隐私,有必要对手机号码进行保护,具体的方法是只取TempNumbers串的前3位和后4位字符,中间4位的四位在界面设计时用“×”代替。
  Dim i, Nbegin, n As long
  Nbegin = 0
  n = Int(Rnd() * (Nend - Nbegin + 1) + Nbegin)
  '产生[Nbegin,Nend]之间的随机数
  TempNumbers = mytable.Rows(n).Item("PhoneNumber")
  '读内存数据表相应的行
  WinningNumbers(1) = TempNumbers
  '取TempNumbers串的前3位和后4位字符放到标签控件
  label101.Text = Mid(TempNumbers, 1, 1)
  Label102.Text = Mid(TempNumbers, 2, 1)
  Label103.Text = Mid(TempNumbers, 3, 1)
  Label108.Text = Mid(TempNumbers, 8, 1)
  Label109.Text = Mid(TempNumbers, 9, 1)
  Label110.Text = Mid(TempNumbers, 10, 1)
  Label111.Text = Mid(TempNumbers, 11, 1)
  其它组按第一组的相同的方法设计代码。
  
  三、结束语
  
  通过以上的分析,电视节目手机号码抽奖并不是那么神秘、那样复杂,只要我们富于丰富的想像力,就能够设计出符合需求的各种电视节目手机号码抽奖程序。
  此程序在Windows xp、Visual Basic 2005、SQL Server2000环境下测试通过。
  
  参考文献:
  [1]岂兴明、矫津毅、银华强,Visual Basic.Net 项目开发宝典[M].电子工业出版社,2007.
  [2]丁爱萍,Visual Basic2005程序设计[M] 人民邮电出版社,2008.
  
  作者简介:
  包宋德,湖南衡阳人,湖南娄底职业技术学院系统分析师,湖南大学在读软件硕士,研究方向:软件技术。
其他文献
[摘要]在基于Web访问的管理信息系统中,系统的安全性问题至关重要。而采用基于角色访问控制(RBAC)模型可以有效地解决系统安全性问题。结合“化学药品管理”系统设计与实现,详细论述角色访问具体的安全机制,通过限制系统中各种角色对系统的操作,有效地解决了Web页面安全访问和控制数据库的问题。  [关键词]RBAC 安全 权限  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)
期刊
[摘要]阐述如何利用Serv-U软件创建FTP服务器,为学生建立网络存储。介绍Serv-U中ODBC的配置,应用ASP程序批量生成FTP用户,以及设置用户的访问参数,实现连入网络的FTP用户在服务器上的授权操作。  [关键词]网络存储 FTP服务器 Serv-U ASP 批量用户  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510037-01    在计算机教学中,
期刊
[摘要]手机是数目巨大的消费类电子产品。在我国,数量已经超过2亿台。以手机为平台的java游戏的开发,有巨大的市场前景和发展前途。寻根溯源,将java游戏的开发背景,开发平台,制作过程,使用步骤做详细的介绍。  [关键词]J2ME 手机 游戏  中图分类号:TP6文献标识码:A文章编号:1671-7597(2009)0510026-01    一、J2ME及其基本概念    (一)Java版本。各
期刊
[摘要]Web2.0是几年来网络中最为热门的一个话题之一,它的到来改变了人们的生活方式、思维方式,使网络成为了生活中必不可少的内容,因此了解Web2.0的概念、技术、发展历程及现状、给人们带来的影响和发展趋势就显得尤为重要。  [关键词]传统网络Web1.0Web2.0网络博客  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510067-01    从传统网络Web1
期刊
[摘要]提出基于P2P技术RFID网络数据清理模型能够通过在相邻节点间互换信息来判别和清除错误的RFID信息,在保证了较高的信息准确性的同时,降低对单个节点信息读取正确性的要求,减少整个网络的开销。   [关键词]射频识别 P2P 数据清理  中图分类号:TP7文献标识码:A文章编号:1671-7597(2009)0510042-01    一、引言    数据量是RFID网络面临的最大挑战。其解
期刊
[摘要]2008年的中国,经历了电信业的五合三重组方案(铁通并入移动、联通被拆分)形成了新的移动、电信和网通三大运营商,而且之前一直被广为猜测的3G的三个技术标准也花落各家。移动的TDCDMA网络和联通的WCDMA网络进入快速建设及商用阶段。结合3G系统的特点,说明在第三代无线系统规划过程中运营商关注的不同移动系统之间的干扰规避问题。  [关键词]网络规划 网络优化 干扰  中图分类号:TN92文
期刊
[摘要]在Visual Basic程序设计中,往往需要对应用程序进行优化,目的是为了提高运行效率。当然,对应用程序的优化可以采用多种方法,只是针对对象的优化进行探讨。  [关键词]Visual Basic 程序设计 对象 优化  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510074-01    Visual Basic是面向对象的程序设计,而对象就是将数据和处理该
期刊
[摘要]在自动控制领域里,PID算法对于工业控制有着比较重要的作用。它可以对被控制对象进行实时的检测,通过反馈能够迅速的调整输入量,从而达到最佳的控制效果。主要研究的就是在VB环境下绘制模拟的PID数据的曲线。  [关键词]VBPID算法  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510052-02    一、概述    在工业控制领域里,自动控制技术已经得到了广
期刊
[摘要]RCS组合结构体系充分发挥了钢筋混凝土柱和钢梁的优点,在建筑工程实际中得到越来越广泛的应用。首先探讨日本和美国的RCS节点主要构造方案,随后简单介绍RCS节点计算模型,最后介绍节点设计中的节点区有效尺寸问题。  [关键词]RCS组合结构 节点设计 构造方案 节点计算模型  中图分类号:TB1文献标识码:A文章编号:1671-7597(2009)0510078-01    RCS组合结构体系
期刊
[摘要]重点解决煤矿应用计算器计算两已知点之间巷道贯通测量中的坐标方位角、平距、指向角、坡度和斜长等数据计算的繁琐问题,提出用vb自动实现的具体方法,为煤矿测量工作提供了方便。探讨vb在煤矿测量工作中的应用。  [关键词]巷道贯通方位角平距指向角斜长  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510056-02    一、问题的提出    煤矿生产过程中经常采用相
期刊