不过还存在不少细节问题,比如说逻辑控制不严密等等
这个等谁用的时候自己去改改吧
<
%
' *************************************************************************
' **文件名称:Lottery.asp
' **功能描述:彩票随机生成器模型
' 本程序为程序原型,未进行校验和保护及美化
' 程序默认为你按照正常规则操作
' **全局变量:
' **调用模块:
' **作 者:Babyt(阿泰)
' **日 期:2005-04-08
' **修 改 人:
' **日 期:
' **版 本:V1.0.0
' 版权:原创
' 授权:免费共享
' Url: http://www.cnblogs.com/babyt
' *************************************************************************
Randomize
Dim iStep
iStep = Request( " step " )
If iStep = "" Then iStep = " 0"
Select Case iStep
' 初始界面
Case " 0"
' 生成后的界面
% >
< Form method = post >
彩票机生成器 < BR >
本程序为模型,未进行校验和保护 < BR >
彩球总数 < input type = " input " size = 10 maxlength = 2 value = " 35 " name = " a1 " >
开奖球数 < input type = " input " size = 10 maxlength = 1 value = " 7 " name = " a2 " >
< input type = " hidden " name = " step " value = " 1 " >
< input type = " submit " value = " 生成 " >
Form >
< %
Case " 1"
' 选取后的界面(可以回退到前一界面重新选取)
Dim iAll,iSelect,i
iAll = Request( " a1 " )
iSelect = Request( " a2 " )
% >
< font color = red >< % = iAll% > font > 选 < font color = blue >< % = iSelect% > font >< BR >
< Form method = post >
本程序为模型,未进行校验和保护 < BR >
如果必选和必不选中选中了同样的数字,则默认为选中,不进行提示 < BR >
注意,您选择的不选条件越多,生成的速度会越慢 < BR >
< input type = " submit " value = " 开始随机生成 " >
< HR size = 1 >
必选: < BR >
< %
For i = 1 To iAll
% >
< input type = " checkbox " name = s1 value = " <%=i%> " >< % = i% >& nbsp; & nbsp;
< %
If i Mod 10 = 0 Then Response. Write "
"
Next
% >
< HR >
必不选: < BR >
< %
For i = 1 To iAll
% >
< input type = " checkbox " name = s2 value = " <%=i%> " >< % = i% >& nbsp; & nbsp;
< %
If i Mod 10 = 0 Then Response. Write "
"
Next
% >
< input type = " hidden " name = " step " value = " 2 " >
< input type = " hidden " name = " a1 " value = " <%=iAll%> " >
< input type = " hidden " name = " a2 " value = " <%=iSelect%> " >
Form >
< %
Case " 2"
' 使用字串而不使用数组提高对比速度
Dim sS1,sS2,aS1,aS2,iS1,iCount,xrnd
iAll = Request( " a1 " )
iSelect = Request( " a2 " )
' 替换里面可能存在的空格
sS1 = Replace (Request.Form( " s1 " ), " " , "" )
sS2 = Replace (Request.Form( " s2 " ), " " , "" )
Response. Write iAll & " 选 " & iSelect & "
"
Response. Write " 必选: " & sS1 & "
"
Response. Write " 必不选: " & sS2 & "
"
sS2 = " , " & sS2 & " ,"
' 判断必选的个数
' iS1为需要选取的个数
If sS1 = "" Then
iS1 = iSelect
Else
aS1 = Split (sS1, " , " )
' 重新组织sS1
sS1 = " , " & sS1 & " , "
iS1 = iSelect - Ubound (aS1) - 1
' Response.Write "dddd" & iS1
End If
' 开始生成
iCount = 0
Call GenNumber
' Response.Write "选取结果:" & Mid(sS1,2,Len(sS1)-2) & "
"
' 把结果进行排序
sS1 = Mid (sS1, 2 , Len (sS1) - 2 )
Dim sReturn,arrS
arrS = Split (sS1, " , " )
Call SortIt()
For i = 0 To UBound (arrS)
sReturn = sReturn & arrS(i) & " ,"
Next
Response. Write Left (sReturn, Len (sReturn) - 1 )
End Select
' 数字生成
Function GenNumber() Function GenNumber()
Randomize
xrnd=Cint(RND*(iAll+1))
If xRnd>=1 And xRnd<=iAll Then
'如果不在必选的范围内,则继续
If Instr(1,sS1, "," & xRnd & ",",1)<=0 Then
'如果不在必不选的范围内,则继续
If Instr(1,sS2, "," & xRnd & ",",1)<=0 Then
'组合成已选字串
sS1=sS1 & xRnd & ","
iCount=iCount+1
If iCount>=iS1 Then
Exit Function
End If
End If
End If
End If
'递归
GenNumber
End Function
' 数组排序
Function SortIt() Function SortIt()
Dim i,s0,iCount,j
iCount=0
For i=0 To UBound(arrS)
If i+1<=UBound(arrS) Then
If CInt(arrS(i))>Cint(arrS(i+1)) Then
s0=arrS(i)
arrS(i)=arrS(i+1)
arrS(i+1)=s0
iCount=iCount+1
End If
End If
Next
If iCount=0 Then Exit Function
'递归
SortIt()
End Function
% >
' *************************************************************************
' **文件名称:Lottery.asp
' **功能描述:彩票随机生成器模型
' 本程序为程序原型,未进行校验和保护及美化
' 程序默认为你按照正常规则操作
' **全局变量:
' **调用模块:
' **作 者:Babyt(阿泰)
' **日 期:2005-04-08
' **修 改 人:
' **日 期:
' **版 本:V1.0.0
' 版权:原创
' 授权:免费共享
' Url: http://www.cnblogs.com/babyt
' *************************************************************************
Randomize
Dim iStep
iStep = Request( " step " )
If iStep = "" Then iStep = " 0"
Select Case iStep
' 初始界面
Case " 0"
' 生成后的界面
% >
< Form method = post >
彩票机生成器 < BR >
本程序为模型,未进行校验和保护 < BR >
彩球总数 < input type = " input " size = 10 maxlength = 2 value = " 35 " name = " a1 " >
开奖球数 < input type = " input " size = 10 maxlength = 1 value = " 7 " name = " a2 " >
< input type = " hidden " name = " step " value = " 1 " >
< input type = " submit " value = " 生成 " >
Form >
< %
Case " 1"
' 选取后的界面(可以回退到前一界面重新选取)
Dim iAll,iSelect,i
iAll = Request( " a1 " )
iSelect = Request( " a2 " )
% >
< font color = red >< % = iAll% > font > 选 < font color = blue >< % = iSelect% > font >< BR >
< Form method = post >
本程序为模型,未进行校验和保护 < BR >
如果必选和必不选中选中了同样的数字,则默认为选中,不进行提示 < BR >
注意,您选择的不选条件越多,生成的速度会越慢 < BR >
< input type = " submit " value = " 开始随机生成 " >
< HR size = 1 >
必选: < BR >
< %
For i = 1 To iAll
% >
< input type = " checkbox " name = s1 value = " <%=i%> " >< % = i% >& nbsp; & nbsp;
< %
If i Mod 10 = 0 Then Response. Write "
"
Next
% >
< HR >
必不选: < BR >
< %
For i = 1 To iAll
% >
< input type = " checkbox " name = s2 value = " <%=i%> " >< % = i% >& nbsp; & nbsp;
< %
If i Mod 10 = 0 Then Response. Write "
"
Next
% >
< input type = " hidden " name = " step " value = " 2 " >
< input type = " hidden " name = " a1 " value = " <%=iAll%> " >
< input type = " hidden " name = " a2 " value = " <%=iSelect%> " >
Form >
< %
Case " 2"
' 使用字串而不使用数组提高对比速度
Dim sS1,sS2,aS1,aS2,iS1,iCount,xrnd
iAll = Request( " a1 " )
iSelect = Request( " a2 " )
' 替换里面可能存在的空格
sS1 = Replace (Request.Form( " s1 " ), " " , "" )
sS2 = Replace (Request.Form( " s2 " ), " " , "" )
Response. Write iAll & " 选 " & iSelect & "
"
Response. Write " 必选: " & sS1 & "
"
Response. Write " 必不选: " & sS2 & "
"
sS2 = " , " & sS2 & " ,"
' 判断必选的个数
' iS1为需要选取的个数
If sS1 = "" Then
iS1 = iSelect
Else
aS1 = Split (sS1, " , " )
' 重新组织sS1
sS1 = " , " & sS1 & " , "
iS1 = iSelect - Ubound (aS1) - 1
' Response.Write "dddd" & iS1
End If
' 开始生成
iCount = 0
Call GenNumber
' Response.Write "选取结果:" & Mid(sS1,2,Len(sS1)-2) & "
"
' 把结果进行排序
sS1 = Mid (sS1, 2 , Len (sS1) - 2 )
Dim sReturn,arrS
arrS = Split (sS1, " , " )
Call SortIt()
For i = 0 To UBound (arrS)
sReturn = sReturn & arrS(i) & " ,"
Next
Response. Write Left (sReturn, Len (sReturn) - 1 )
End Select
' 数字生成
Function GenNumber() Function GenNumber()
Randomize
xrnd=Cint(RND*(iAll+1))
If xRnd>=1 And xRnd<=iAll Then
'如果不在必选的范围内,则继续
If Instr(1,sS1, "," & xRnd & ",",1)<=0 Then
'如果不在必不选的范围内,则继续
If Instr(1,sS2, "," & xRnd & ",",1)<=0 Then
'组合成已选字串
sS1=sS1 & xRnd & ","
iCount=iCount+1
If iCount>=iS1 Then
Exit Function
End If
End If
End If
End If
'递归
GenNumber
End Function
' 数组排序
Function SortIt() Function SortIt()
Dim i,s0,iCount,j
iCount=0
For i=0 To UBound(arrS)
If i+1<=UBound(arrS) Then
If CInt(arrS(i))>Cint(arrS(i+1)) Then
s0=arrS(i)
arrS(i)=arrS(i+1)
arrS(i+1)=s0
iCount=iCount+1
End If
End If
Next
If iCount=0 Then Exit Function
'递归
SortIt()
End Function
% >