想用VB做一个抽奖程序,用手机号抽奖,滚动手机号,发现在基础类里无人能解!

andy_514 2012-07-21 08:53:16
手机号是滚动的,能配背景音乐,不知道哪位大侠能帮帮忙不~~~

或者有其他的方案也行,,谢谢啦。。。
...全文
734 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2012-09-17
  • 打赏
  • 举报
回复
问题有解了,楼主就失踪了。


lishengjun1955 2012-09-13
  • 打赏
  • 举报
回复
如果自己单位搞活动玩玩,EXCEL函数就搞定了,给你个式子。
=TRUNC((RAND()*100),0) ‘写到任意单元单元格里比如D10
=IF(D10>COUNT(B1:B100), "恭喜", "再来一次")
'把参加抽奖的电话号码输到B列里,这里可以输99个,由B100决定,改就是了。如果你要输100个呐第100个号码的人就少了一次中奖机会哦。
'把这两式子写到任意两个单元格里,把第二式里的D10改成输入一式的单元格就行了。
玩的时候一式单元格里显示的数字便是中奖的号码,发了奖品把这行删除,随即会显示第二个中奖号码以此类推,如果显示“再来一次”说明抽空了,从最后删除一个空行继续。
对了补充一句,一式里的100是由参加人数决定,人数小于100就写100,如果人数小于10 就写10。公平合理完全由计算机决定谁的运气好,哈哈
oshi002 2012-08-16
  • 打赏
  • 举报
回复
哦,这样的东西不错啊。只是不知道是啥用途。
nanmoenituofo 2012-08-15
  • 打赏
  • 举报
回复
我有一个类似的小程序,如果你需要,留个邮箱,发给你。
舉杯邀明月 2012-08-13
  • 打赏
  • 举报
回复
在一个纯文本文件中记录下你的所有要抽奖的手机号码。
第一行是手机号码的总数,接着从第二行开始,每行一个号码。

界面设计(下列名称的控件各添加1个,控件名称默认):
Timer、Label、Command、List

背景音乐我没弄,自己加个控件,再几行代码就解决问题了。

给你段代码参考,界面美化的事,你自己去考虑。

启动程序后,就滚动号码。
点按钮一次,暂停滚动,并将号码加到列表中,2秒后继续滚动……
抽奖名额满后,自动停止,不再滚动号码。
号码不会被重复抽到(除非你的号码有重复,才有这可能)
Option Explicit

Private arrTable$() '号码表
Private arrFlags&()
Private mlPersToa& '号码总数
Private mlListSum& '抽奖计数
Private mlCurrent& '刚‘抽到’的序号
Private mlTimeDly& '延时设置

Private Sub Initialize()
Dim i&, strTemp$
Open "E:\sjhm.txt" For Input As #1
Line Input #1, strTemp
i = CLng(strTemp)
mlPersToa = i
ReDim arrTable(i - 1), arrFlags(i - 1)
i = 0
While Not EOF(1)
Line Input #1, arrTable(i)
i = i + 1
Wend
Close
For i = 0 To mlPersToa - 1
arrFlags(i) = i
Next
Timer1.Interval = 50
Timer1.Enabled = True
Call Randomize
End Sub

Private Sub Form_Load()
Call Initialize
End Sub

Private Sub Command1_Click()
Command1.Enabled = False
mlTimeDly = 2000 / 50
List1.AddItem arrTable(arrFlags(mlCurrent))
mlPersToa = mlPersToa - 1
arrFlags(mlCurrent) = arrFlags(mlPersToa)
mlListSum = mlListSum + 1
End Sub

Private Sub Timer1_Timer()
If (mlTimeDly = 0) Then
If (mlListSum = 10) Then '抽10个号码
Timer1.Enabled = False
Label1.Caption = "GAME OVER !"
Exit Sub
End If
mlCurrent = Rnd * (mlPersToa - 1)
Label1.Caption = arrTable(arrFlags(mlCurrent))
Else
mlTimeDly = mlTimeDly - 1
If (mlTimeDly = 0) Then Command1.Enabled = True
End If
End Sub
舉杯邀明月 2012-08-13
  • 打赏
  • 举报
回复
这么简单的东西,还没搞定……

-_-!!!
andy_514 2012-08-12
  • 打赏
  • 举报
回复
哎!!!
灵易联盟 2012-08-01
  • 打赏
  • 举报
回复
这个东东,关键思想已经给你了咯

想要完整代码得找人咯,偶是没空了,与360斗争中地说....
ah_2049 2012-08-01
  • 打赏
  • 举报
回复
360,说起就是火,
不过我发现赛门铁克更邪恶,直接杀EXE.没加代码都被杀。。
灵易联盟 2012-08-01
  • 打赏
  • 举报
回复
呵呵,可是没空啊~~~正在帮客户写东西,痛恨360瞎报毒ing,可客户要求得360不报毒~~~~
说具体点,关键代码倒可以考虑帮你写点,说不定很多人会帮你写个关键代码的

但你得自己调试咯
FN2023 2012-08-01
  • 打赏
  • 举报
回复
把存入的手机号按顺序排列在表中。

1.摇奖就从第一个数据开始滚吧,设定一个范围,设定时间,时间到了停,是哪个序号就调出对应的手机号码。

2.或者直接设定一个范围,取一个随机数行不行呢 ?
andy_514 2012-07-25
  • 打赏
  • 举报
回复
能不能写点代码啊?最高分是100分,如果可以出1000分,我也愿意出!
qq602138723 2012-07-24
  • 打赏
  • 举报
回复
背景音乐用个控件
滚动抽奖 要说的详细一些有什么要求
一般就是随机函数 +timer控件+数据库/txt文件
灵易联盟 2012-07-22
  • 打赏
  • 举报
回复
手机号存到数据库里,增加两个排序字段,然后用
Randomize
tRnd = Rnd * 65432
对两个排序段进入更新,
接着VB里用Timer控制.起初时间短,时间执行一次加一点.
Timer控制里执行从数据库取出一个数据,然后开始轮取.
直到一轮或多轮过完,
然后取个随机值,根据这个随机值再决定最后得到哪一条.

或着根据Timer控制的数值与及时间等多种参数来判断是事为最后一次Timer事件.

while not rs.eof
debug.print rs("Tel")
sleep int(x)
x=x+0.11
if x>3000 and (x-int(x))*100>=88 then LastTel=rs("tel"):exit function
rs.movenext
wend

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧