
正文
vs彩票模拟vb.net,vs模拟器
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用VB写个彩票选号程序,求思路!
把下面的代码复制到记事本中,改名为form1.frm,再用vb6打开编译即可使用。希望你能喜欢,不足之处可以提出来。
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 5 'Sizable ToolWindow
Caption = "彩票选号程序"
ClientHeight = 3855
ClientLeft = 60
ClientTop = 330
ClientWidth = 6600
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3855
ScaleWidth = 6600
ShowInTaskbar = 0 'False
StartUpPosition = 3 '窗口缺省
Begin VB.Frame Frame4
Caption = "号码框"
Height = 2415
Left = 3600
TabIndex = 11
Top = 1320
Width = 2895
Begin VB.CommandButton Command6
Caption = "输入号码"
Height = 255
Left = 1560
TabIndex = 19
Top = 720
Width = 1095
End
Begin VB.CommandButton Command5
Caption = "试试运气"
Height = 495
Left = 120
TabIndex = 16
Top = 1440
Width = 2535
End
Begin VB.TextBox xx
Height = 270
Left = 1560
TabIndex = 14
Top = 1080
Width = 1095
End
Begin VB.TextBox sx
Height = 270
Left = 120
TabIndex = 13
Top = 1080
Width = 1095
End
Begin VB.Label Label5
Caption = "范围:"
Height = 255
Left = 120
TabIndex = 18
Top = 720
Width = 615
End
Begin VB.Label Label4
Caption = "机选号码:"
Height = 255
Left = 120
TabIndex = 17
Top = 2040
Width = 2535
End
Begin VB.Label Label3
Caption = "~"
BeginProperty Font
Name = "宋体"
Size = 14.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 135
Left = 1320
TabIndex = 15
Top = 1200
Width = 255
End
Begin VB.Label Label2
Caption = "我的号码:"
Height = 255
Left = 120
TabIndex = 12
Top = 360
Width = 2655
End
End
Begin VB.Frame Frame3
Caption = "统计框"
Height = 975
Left = 3600
TabIndex = 8
Top = 240
Width = 2895
Begin VB.CommandButton Command3
Caption = "点我统计!"
Height = 615
Left = 120
TabIndex = 9
Top = 240
Width = 2655
End
End
Begin VB.Frame Frame2
Caption = "查找框"
Height = 2415
Left = 120
TabIndex = 3
Top = 1320
Width = 3375
Begin VB.CommandButton Command4
Caption = "清除"
Height = 255
Left = 2400
TabIndex = 10
Top = 2040
Width = 855
End
Begin VB.CommandButton Command2
Caption = "查找"
Height = 255
Left = 2520
TabIndex = 7
Top = 240
Width = 735
End
Begin VB.ListBox List1
Height = 1320
ItemData = "Form1.frx":0000
Left = 120
List = "Form1.frx":0002
TabIndex = 5
Top = 600
Width = 3135
End
Begin VB.TextBox Text1
Height = 270
Left = 120
TabIndex = 4
Top = 240
Width = 2295
End
Begin VB.Label Label1
Caption = "总共:0项"
Height = 255
Left = 120
TabIndex = 6
Top = 2040
Width = 2175
End
End
Begin VB.Frame Frame1
Caption = "输入框"
Height = 1095
Left = 120
TabIndex = 0
Top = 120
Width = 3375
Begin VB.TextBox Text2
Height = 270
Left = 120
TabIndex = 2
Top = 240
Width = 3135
End
Begin VB.CommandButton Command1
Caption = "输入并确定"
Height = 375
Left = 120
TabIndex = 1
Top = 600
Width = 3135
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim N As Long
Dim NR As String
Dim ZS As Long
Dim CS As Long
Dim mynum As Long
Private Sub Command1_Click()
Open "C:\1.TXT" For Append As #1
Print #1, Val(Text2.Text)
Close #1
Label2.Caption = "我的号码:" Val(Text2.Text)
mynum = Val(Text2.Text)
Text2.Text = ""
End Sub
Private Sub Command2_Click()
CS = CS + 1
Open "C:\1.TXT" For Input As #1
Do While Not EOF(1)
Line Input #1, NR
NR = Trim(NR)
If NR = Text1.Text Then List1.AddItem NR: N = N + 1
Loop
Close #1
List1.AddItem "------------第" CS "次------------"
Label1.Caption = "总共:" N "项"
N = 0
NR = ""
End Sub
Private Sub Command3_Click()
Open "C:\1.TXT" For Input As #1
Do While Not EOF(1)
Line Input #1, NR
NR = Trim(NR)
If NR = NR Then ZS = ZS + 1
Loop
Close #1
MsgBox "共有" ZS "项"
ZS = 0
End Sub
Private Sub Command4_Click()
List1.Clear
End Sub
Private Sub Command5_Click()
Label4.Caption = "机选号码:" Int(Rnd * Val(sx.Text)) + Val(xx.Text)
End Sub
Private Sub Command6_Click()
mynum = InputBox("输入号码:")
Label2.Caption = "我的号码:" mynum
End Sub
Private Sub Form_Load()
N = 0
End Sub
相关问答
Q1: 用VB做一个模拟体彩36选7的小程序(会有追加分)
Dim a(6) As Integer '声明数组
Function JC(n As Integer) As Double
'求阶乘
JC = 1
For i = 1 To n
JC = JC * i
Next
End Function
Sub S36_7()
'选号
On Error Resume Next
For i = 0 To 6
Line1:
a(i) = Fix(Rnd * 36) + 1
For j = 0 To i - 1
If a(i) = a(j) Then
GoTo Line1
End If
Next
Next
End Sub
Sub PrintNum()
'输出
For i = 0 To 6
Print a(i);
Next
End Sub
Private Sub Command1_Click()
'调用
Call S36_7
Call PrintNum
End Sub
Private Sub Command2_Click()
'输出
Print "获奖概率"; JC(36) / JC(7) / JC(36 - 7)
End Sub
Q2: vb彩票摇奖 编写一个简易的30选五彩票摇奖程序。
Dim a(0 To 4) As Integer
Private Sub Command1_Click()
For i = 1 To 30
If i = 30 Then
t = t i
Else
t = t i ","
End If
Next
For i = 0 To 4
j = Split(t, ",")
Randomize
temp = Int(Rnd * (UBound(j) + 1) + 0)
Text1(i) = j(temp)
If temp UBound(j) Then
t = Replace(t, "," j(temp) ",", ",")
Else
t = Replace(t, "," j(temp) ",", "")
End If
Next
End Sub
Private Sub Command2_Click()
For i = 1 To 30
If i = 30 Then
t = t i
Else
t = t i ","
End If
Next
For i = 0 To 4
j = Split(t, ",")
Randomize
temp = Int(Rnd * (UBound(j) + 1) + 0)
a(i) = j(temp)
If temp UBound(j) Then
t = Replace(t, "," j(temp) ",", ",")
Else
t = Replace(t, "," j(temp) ",", "")
End If
Next
Print "中奖号码为:" a(0) vbTab a(1) vbTab a(2) vbTab a(3) vbTab a(4)
For i = 0 To 4
For k = 0 To 4
If a(i) = Text1(k) Then n = n + 1
Next
Next
If n 0 Then
MsgBox "恭喜你中了" 6 - n "等奖"
Else
MsgBox "很遗憾,您没中奖"
End If
End Sub
Q3: 下面是一个“彩票选号小助手”的Visual Basic(VB)的程序代码。下面是设计界面,求高人逐字逐句解释代码
Private Sub cmdStart_Click()
Dim i As Integer‘定义i为整形变量
For i = 0 To 4’i从0 到 4 进行5次循环
If option1(i).Value Then‘如果选中了第i+1注(单选框第一到第五注是option1(0) 到option1(4))
Exit For’如果满足,退出for循环
End If‘结束判断
Next’for循环的结束语句
base = i * 7‘上面利用一个循环把你选中的第几注赋值给了i 此时把i*7赋值给变量base cmdStop.Enabled = True’把停职按钮的可用性变为true 即让停止按钮可用
cmdStart.Enabled = False‘让开始按钮不可用
cmdAuto.Enabled = False‘让自动按钮不可用
cmdStop.SetFocus’让停止按钮获得焦点(就是那一圈围着按钮的特别细的虚线)
start = True’令变量start的逻辑属性为真
Do While start‘这是一个do loop循环 如果start为真就一直循环
Randomize Timer’让随机数每次都不一样,
i = Rnd() * 6‘让i取1到6的随机数
lblNum(i + base).Caption = Trim(Str(Int(Rnd() * IIf(i = 6, 5, 10))))
'这里lblNum(i + base).Caption 指的是第几个幸运号码框,base是之前判定了的你选的第几注乘以了6(每行6个),也就是从第几行开始,i是随机的,后面的代码trim是去掉两边的空格,str是把内容改为字符串格式,int是取整,后面那个没看太懂,个人觉得这块有错,
DoEvents‘转让控制权,以便让操作系统处理其它的事件
If auto Then’如果auto为真(就是点了自动按钮)
If Timer - sTime sDiff Then‘这缺少相应的在通用声明区的定义语句,看不太懂
Exit Do’跳出do loop循环
End If‘结束判断
End If’结束判断
Loop
End Sub
Private Sub cmdStop_Click()’停止按钮的单击事件
cmdStop.Enabled = False‘停止按钮不可用
i = 0’让i=0
Do While True‘do loop循环,这个循环判定条件一直是真,通过内部的结束循环语句来结束循环
lblNum(i + base).Caption = Trim(Str(Int(Rnd() * IIf(i = 6, 5, 10))))’同之前的
i = i + 1‘i从0开始依次累加
If i = 7 Then
Exit Do’如果i=7 结束循环
End If
p = Rnd / 5‘在0 到0.2中随机取值
N = Timer’n为系统计时器数值
Do While Timer - N p‘
Randomize Timer
r = Rnd() * (6 - i) + i’让r在i到6-i间随机取值
lblNum(r + base).Caption = Trim(Str(Int(Rnd() * IIf(r = 6, 5, 10))))
DoEvents‘转让控制权,以便让操作系统处理其它的事件
Loop
Loop
start = False‘start属性变为false
cmdStart.Enabled = True’开始按钮可用
cmdAuto.Enabled = True‘自动按钮可用
cmdStart.SetFocus‘开始按钮得到焦点
End Sub
Private Sub Form_Load()’窗体加载事件
cmdStop.Enabled = False‘停止按钮不可用
For i = 0 To 34
lblNum(i).Caption = ""
Next’把34个数值全清空
End Sub
Private Sub lblNum_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)‘lblNum的鼠标按下事件
Dim r As Integer
If (Not start) And (Not auto) Then’如果没开始,没点自动
r = Index Mod 7‘index意思是第几个,从0开始,比如第一行的第二个index就是1,第二行的第一个index就是7. mod 7 就是对7 取余取出来的数值表示他是这一行的第几个。
manu = True’令menu为真
Do While manu
lblNum(Index) = Trim(Str(Int(Rnd() * IIf(r = 6, 5, 10))))
DoEvents‘转让控制权,以便让操作系统处理其它的事件
Loop
End If
End Sub
Private Sub lblNum_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
manu = False‘鼠标松开时,menu为假,停止上面鼠标按下事件当中的循环。
End Sub
就这些了,望采纳
Q4: 编程问题:模拟彩票功能,在36个数字(1--36)中随机挑选7个数字输出
#includestdio.h #includestdlib.h #includetime.h void main() { int m,i,j,sum,a[9]; for(i=1;i=7;i++) a[i]=0; i=1; srand(time(NULL));//设置时间种子,保证每次产生的随机数不同 while(i=7) { m=rand()%36;//产生0-36的随机数 sum=0; if(m!=0) { for(j=1;j=i;j++) { if(a[j]!=m) sum+=1; } if(sum==i) { a[i]=m; i=i+1; } } } for(i=1;i=7;i++) printf("%d\n",a[i]); } 找不到TC2.0,所以该程序是在VC环境中编译的,逻辑过程是正确的,如果你一定要用TC环境,那可能要改时间种子和随机函数了,不过这是小问题,上网搜搜就有了:)







