admincreatepaper3.asp
来自「网络考试系统最终备份」· ASP 代码 · 共 807 行 · 第 1/2 页
ASP
807 行
<!--#include file="conn.inc"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>生成试卷</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>
<body>
<%
'从试卷基本信息表paper_info中提取所需信息并录如监考老师信息
v_PaperID=session("TempPaperid")
sql="select * from paper_info where PaperID="&v_PaperID&""
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
rs("Monitor_User_ID")=request("moniUser")
v_papername=rs("PaperName")
v_subjectid=rs("Sub_ID")
v_totalper=rs("TotalPer")
v_singlecount=rs("SingleCount")
v_multicount=rs("MultiCount")
v_judgecount=rs("JudgeCount")
v_singleper=rs("SinglePer")
v_multiper=rs("MultiPer")
v_judgeper=rs("JudgePer")
v_paperdifficultyrate=rs("TestDiffRate")
rs("Paper_Type")=0
rs.update
rs.close
'将考生信息录入考生信息表test_user
userid=split(request("userid"),",")
i=ubound(userid)
v_PaperID=session("TempPaperid")
for j=0 to i
randomize timer
sql="select * from test_user"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
rs.addnew
vuid =trim(userid(j))
rs("Paper_ID")=v_PaperID
rs("User_ID")=vuid
rs("isTest")=0
rs.update
rs.close
next
'将考试计划录入等待通过的信息表waitforpass
sql="select * from waitforpass"
'set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
rs.addnew
v_id=1+fix(10000*Rnd)
rs("id")=v_id
rs("objid")=v_PaperID
rs("objname")="考试计划"
rs("passuserid")=request("shenhr")
rs("havepass")=0
rs.update
rs.close
%>
<form name="form1" method="post" action="news.asp">
<%
grade=formatnumber(v_paperdifficultyrate/v_totalper,2) 'grade为试卷的难度等级
grade=int(grade*10)
r1=0'r1-r5为难度系数为1-5的题的百分比
r2=0
r3=0
r4=0
r5=0
select case grade
case 9 '90分以上
r1=40
r2=30
r3=15
r4=10
r5=5
case 8 '80分-90分
r1=30
r2=25
r3=15
r4=15
r5=15
case 7 '70分-80分
r1=20
r2=20
r3=15
r4=20
r5=25
case 6 '60分-70分
r1=10
r2=15
r3=15
r4=25
r5=35
case else '60分以下
r1=5
r2=10
r3=15
r4=30
r5=40
end select
sql="select * from paper_info where PaperID="&v_PaperID&""
'set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
vknowledge=rs("PKnow_ID")
knowledge=split(vknowledge,",")
rs.close
set rs=nothing
nCount=ubound(knowledge)
dim knowledgearray(7)
for iCount=0 to 7
knowledgearray(iCount)=0
next
for iCount=0 to nCount
knowledgearray(iCount)=knowledge(iCount)
next
SCount=0 '计数器,确定当前单选题数目
MCount=0 '计数器,确定当前多选题数目
JCount=0 '计数器,确定当前判断题数目
ACount=0 '存放所选题号的数组的下标
sNoumber=1 '试卷页面的题号
dim Ques(999) '存放所选题的题号的数组
dim Questype(999) '存放所选题的题型的数组
'选出符合条件的单选题
randomize
sql1="select * from question_database where Que_Type=0 and Sub_ID="&v_subjectid&" and DiffRate=1 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,conn,3,2
for iCount=1 to (v_singlecount*r1/100)
'count1=rs1.recordcount
' temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
' temp=fix(count*rnd)
' wend
if not rs1.eof then
Ques(ACount)=rs1("QueID")
Questype(ACount)=rs1("Que_Type")
ACount=ACount+1
SCount=SCount+1
' rs1.move temp
rs1("QueMark")=1
rs1.movenext
end if
next
rs1.close
set rs1=nothing
sql2="select * from question_database where Que_Type=0 and Sub_ID="&v_subjectid&" and DiffRate=2 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs2=server.createobject("adodb.recordset")
rs2.open sql2,conn,3,2
for iCount=1 to (v_singlecount*r2/100)
' count1=rs2.recordcount
'temp=fix(count1*rnd)+1
' while temp <= 0 or temp >=count1
' ' temp=fix(count1*rnd)
'wend
if not rs2.eof then
Ques(ACount)=rs2("QueID")
Questype(ACount)=rs2("Que_Type")
ACount=ACount+1
SCount=SCount+1
'rs2.move temp
rs2("QueMark")=1
rs2.movenext
end if
next
rs2.close
set rs2=nothing
sql3="select * from question_database where Que_Type=0 and Sub_ID="&v_subjectid&" and DiffRate=3 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs3=server.createobject("adodb.recordset")
rs3.open sql3,conn,3,2
for iCount=1 to (v_singlecount*r3/100)
'count1=rs3.recordcount
'temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
'temp=fix(count1*rnd)
' wend
if not rs3.eof then
Ques(ACount)=rs3("QueID")
Questype(ACount)=rs3("Que_Type")
ACount=ACount+1
SCount=SCount+1
'rs3.move temp
rs3("QueMark")=1
rs3.movenext
end if
next
rs3.close
set rs3=nothing
sql4="select * from question_database where Que_Type=0 and Sub_ID="&v_subjectid&" and DiffRate=4 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs4=server.createobject("adodb.recordset")
rs4.open sql4,conn,3,2
for iCount=1 to (v_singlecount*r4/100)
'count1=rs4.recordcount
'temp=fix(count1*rnd)+1
' while temp <= 0 or temp >=count1
' temp=fix(count1*rnd)
' wend
if not rs4.eof then
Ques(ACount)=rs4("QueID")
Questype(ACount)=rs4("Que_Type")
ACount=ACount+1
SCount=SCount+1
'rs4.move temp
rs4("QueMark")=1
rs4.movenext
end if
next
rs4.close
set rs4=nothing
sql5="select * from question_database where Que_Type=0 and Sub_ID="&v_subjectid&" and DiffRate=5 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs5=server.createobject("adodb.recordset")
rs5.open sql5,conn,3,2
for iCount=1 to (v_singlecount*r5/100)
' count1=rs5.recordcount
'temp=fix(count1*rnd)+1
' while temp <= 0 or temp >=count1
'temp=fix(count1*rnd)
' wend
if not rs5.eof then
Ques(ACount)=rs5("QueID")
Questype(ACount)=rs5("Que_Type")
ACount=ACount+1
SCount=SCount+1
'rs5.move temp
rs5("QueMark")=1
rs5.movenext
end if
next
rs5.close
set rs5=nothing
'若产生单选题数目不够,则继续添加
if (v_singlecount-SCount)<>0 then
sql="select * from question_database where Que_Type=0 and Sub_ID="&v_subjectid&" and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
for iCount=1 to (v_singlecount-SCount)
'count1=rs.recordcount
' temp=fix(count1*rnd)+1
' while temp <= 0 or temp >=count1
' temp=fix(count1*rnd)
' wend
if not rs.eof then
Ques(ACount)=rs("QueID")
Questype(ACount)=rs("Que_Type")
ACount=ACount+1
SCount=SCount+1
'rs.move temp
rs("QueMark")=1
rs.movenext
end if
next
rs.close
set rs=nothing
end if
'选出符合条件的多选题
sql1="select * from question_database where Que_Type=1 and Sub_ID="&v_subjectid&" and DiffRate=1 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,conn,3,2
for iCount=1 to (v_multicount*r1/100)
'count1=rs1.recordcount
'temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
' temp=fix(count1*rnd)
' wend
if not rs1.eof then
Ques(ACount)=rs1("QueID")
Questype(ACount)=rs1("Que_Type")
ACount=ACount+1
MCount=MCount+1
'rs1.move temp
rs1("QueMark")=1
rs1.movenext
end if
next
rs1.close
set rs1=nothing
sql2="select * from question_database where Que_Type=1 and Sub_ID="&v_subjectid&" and DiffRate=2 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs2=server.createobject("adodb.recordset")
rs2.open sql2,conn,3,2
for iCount=1 to (v_multicount*r2/100)
'count1=rs2.recordcount
'temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
'temp=fix(count1*rnd)
' wend
if not rs2.eof then
Ques(ACount)=rs2("QueID")
Questype(ACount)=rs2("Que_Type")
ACount=ACount+1
MCount=MCount+1
'rs2.move temp
rs2("QueMark")=1
rs2.movenext
end if
next
rs2.close
set rs2=nothing
sql3="select * from question_database where Que_Type=1 and Sub_ID="&v_subjectid&" and DiffRate=3 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs3=server.createobject("adodb.recordset")
rs3.open sql3,conn,3,2
for iCount=1 to (v_multicount*r3/100)
'count1=rs3.recordcount
' temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
'temp=fix(count1*rnd)
' wend
if not rs3.eof then
Ques(ACount)=rs3("QueID")
Questype(ACount)=rs3("Que_Type")
ACount=ACount+1
MCount=MCount+1
'rs3.move temp
rs3("QueMark")=1
rs3.movenext
end if
next
rs3.close
set rs3=nothing
sql4="select * from question_database where Que_Type=1 and Sub_ID="&v_subjectid&" and DiffRate=4 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs4=server.createobject("adodb.recordset")
rs4.open sql4,conn,3,2
for iCount=1 to (v_multicount*r4/100)
'count1=rs4.recordcount
'temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
' temp=fix(count1*rnd)
'wend
if not rs4.eof then
Ques(ACount)=rs4("QueID")
Questype(ACount)=rs4("Que_Type")
ACount=ACount+1
MCount=MCount+1
'rs4.move temp
rs4("QueMark")=1
rs4.movenext
end if
next
rs4.close
set rs4=nothing
sql5="select * from question_database where Que_Type=1 and Sub_ID="&v_subjectid&" and DiffRate=5 and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs5=server.createobject("adodb.recordset")
rs5.open sql5,conn,3,2
for iCount=1 to (v_multicount*r5/100)
'count1=rs5.recordcount
'temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
' temp=fix(count1*rnd)
'wend
if not rs5.eof then
Ques(ACount)=rs5("QueID")
Questype(ACount)=rs5("Que_Type")
ACount=ACount+1
MCount=MCount+1
' rs5.move temp
rs5("QueMark")=1
rs5.movenext
end if
next
rs5.close
set rs5=nothing
'若产生多选题数目不够,则继续添加
if (v_multicount-MCount)<>0 then
sql="select * from question_database where Que_Type=1 and Sub_ID="&v_subjectid&" and QueMark=0 and Knowledge_ID in ("&knowledgearray(0)&","&knowledgearray(1)&","&knowledgearray(2)&","&knowledgearray(3)&","&knowledgearray(4)&","&knowledgearray(5)&","&knowledgearray(6)&","&knowledgearray(7)&")"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
for iCount=1 to (v_multicount-MCount)
'count1=rs.recordcount
'temp=fix(count1*rnd)+1
'while temp <= 0 or temp >=count1
' temp=fix(count1*rnd)
' wend
if not rs.eof then
Ques(ACount)=rs("QueID")
Questype(ACount)=rs("Que_Type")
ACount=ACount+1
MCount=MCount+1
' rs.move temp
rs("QueMark")=1
rs.movenext
end if
next
rs.close
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?