ASP中一个用VBScript写的随机数类

2018-09-06 12:38

阅读:524

  外国人写的一个class,这么一点小小的应用,除非有特殊需求,还没有必要模块化。
用asp产生一个随机数。
<%
**************************************************************************
CLASS:cRandom
Callsrandomizetoseedtherandomnumbergenerator.
Providesfunctionsforreturningrangedrandomintegersorarraysof
rangedrandomintegers.
Callingrandomizetoseedtherandomnumbergeneratoratthetimethe
classiscreatedseemedlikeareasonablethingtodo.
privatesubClass_Initialize()
ChecktheVBScriptdocumentationforthespecificsrelating
totheRandomizefunction
Randomize
endsub
Terminatedoesntneedtodoanythingforthisclass
privatesubClass_Terminate()
endsub
**********************************************************************
FUNCTION:RangedRandom
PARAMETER:lowerBound,thelowestallowablenumbertoreturn
PARAMETER:upperBound,thehighestallowablenumbertoreturn
RETURNS:ArandomintegerbetweenlowerBoundandUpperBound,
inclusive
**********************************************************************
publicfunctionRangedRandom(lowerBound,upperBound)
RangedRandom=CInt((upperBound-lowerBound)*Rnd+lowerBound)
endfunction
**********************************************************************
FUNCTION:RangedRandomArray
PARAMETER:lowerBound,thelowestallowablenumbertoreturn
PARAMETER:upperBound,thehighestallowablenumbertoreturn
PARAMETER:arraySize,zerobasednumberspecifyingthesizeofthearray
PARAMETER:duplicates,trueorfalsetoindicatewhetherduplicate
resizethetempArraytoholdthenumberofelementspassedinthe
arraySizeparameter
redimtempArray(arraySize)
Thisisaloopcounter,setitto0
filledElements=0
loopuntilfilledElementsisequaltothearraySize+1
dountilfilledElements=arraySize+1
CalltheRangedRandomfunctionwiththelowerBoundandupperBoundparameters
tempValue=RangedRandom(lowerBound,upperBound)
Handlethecasewherewedontwantduplicatevalues
ifduplicates=falsethen
badValue=false
fori=0toUBound(tempArray)
checkifthenewrandomvaluealreadyexistsinthearray
ifitdoessetthebadValueflagtotrueandbreakoutoftheloop
iftempValue=tempArray(i)then
badValue=true
exitfor
endif
next
ifbadValue=falsethen
tempArray(filledElements)=tempValue
filledElements=filledElements+1
endif
else
Handlethecasewhereduplicatevaluesinthearrayareacceptable
tempArray(filledElements)=tempValue
filledElements=filledElements+1
endif
loop
returnthearray
RangedRandomArray=tempArray
endfunction
endclass
%>
<%
Allthecodethatfollowsisexamplecodeshowingtheuseofthe
cRandomclass.
dimobjRandom
dimflip
dimrandomArray
dimrowsToTest
dimi,j
createaninstanceofourclass
setobjRandom=newcRandom
setthenumberofiterationsthatwewanttotest
rowsToTest=10
toggletodeterminewhetherornotwesetthebgcolorofthetablerow
flip=true
Startthetable
Response.Write<tableborder=0cellpadding=1cellspacing=1>
forj=0torowsToTest
Wellalternatethebgcolorofthetablerowsbasedonthe
valueoftheflipvariable
ifflipthen
Response.Write<trbgcolor=LightGrey>
else
Response.Write<tr>
endif
CalltheRangedRandomArrayfunctionfortestingpurposes
randomArray=objRandom.RangedRandomArray(1,10)


评论


亲,登录后才可以留言!