外国人写的一个class,这么一点小小的应用,除非有特殊需求,还没有必要模块化。
用asp产生一个随机数。
<%
''**************************************************************************
''CLASS:cRandom
''Callsrandomizetoseedtherandomnumbergenerator.
''Providesfunctionsforreturningrangedrandomintegersorarraysof
''rangedrandomintegers.
''Callingrandomizetoseedtherandomnumbergeneratoratthetimethe
''classiscreatedseemedlikeareasonablethingtodo.
privatesubClass_Initialize()
''ChecktheVBScriptdocumentationforthespecificsrelating
''totheRandomizefunction
Randomize
endsub
''Terminatedoesn''tneedtodoanythingforthisclass
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)
''Handlethecasewherewedon''twantduplicatevalues
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
''"toggle"todeterminewhetherornotwesetthebgcolorofthetablerow
flip=true
''Startthetable
Response.Write"<tableborder=0cellpadding=1cellspacing=1>"
forj=0torowsToTest
''We''llalternatethebgcolorofthetablerowsbasedonthe
''valueoftheflipvariable
ifflipthen
Response.Write"<trbgcolor=LightGrey>"
else
Response.Write"<tr>"
endif
''CalltheRangedRandomArrayfunctionfortestingpurposes
randomArray=objRandom.RangedRandomArray(1,10)