⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 save_zujuan.asp

📁 这是一个用ASP写的在线考试系统.特别一点 就是考试试卷有两种考法,一种为系统自动出卷,另一种是老师出卷考试.前者的实现是参考网上代码.总的来说还是很值得参考的.
💻 ASP
字号:
 
<!--#include file="conn2.asp"-->
<%
'on error resume next
MaxIdSql="select ID from com_juan order by ID desc"
set rsT=conn.execute(MaxIdSql)
if rsT.eof then
	NextId=1
else
	NextId=rsT("ID")+1
end if
'NextId=rsT("ID")+1

stuNum=trim(request("try_name"))
VerificationSql="select try_name from com_juan where try_name='"&try_name&"'"
set rsT=conn.execute(VerificationSql)
if not rsT.eof then
	Session("sa_help")="对不起,这个试卷名已经有了!请重试!"
	response.redirect("stu_add.asp")
end if

selectkemu=trim(request("selectkemu"))
try_name=trim(request("try_name"))
pand_num=trim(request("pand_num"))
danx_num=trim(request("danx_num"))
duox_num=trim(request("duox_num"))
try_num=trim(request("try_num"))
examtime=trim(request("examtime"))
sum=trim(request("sum"))
for i=1 to cint(try_num)
saveAddSql="insert into com_juan values("&NextId&",'"&selectkemu&"','"&try_name&"','"&pand_num&"','"&danx_num&"','"&duox_num&"','"&i&"','"&examtime&"','"&sum&"')"
set rsT=conn.execute(saveAddSql)
nextid=nextid+1
next
Session("sa_help")="上条记录添加完毕!"

dim paper_number()
	redim paper_number(cint(try_num))
	'rs.requery
	sqlstr="select * from com_juan where try_sub='"&try_sub&"'and try_name='"&try_name&"'"
	set rs=conn.execute(sqlstr)
    i=1
	while not rs.eof
		paper_number(i)=rs("id")		
		rs.movenext
		response.write paper_number(i)
		response.write "   "
		i=i+1
	wend
	
	'按业务要求,将指定科目的题目从题库中全抽取出来,并存入数组
	'rs.requery
	sqlstr="select * from C where try_type=1"   '动态从所选的科目及题型为1的中抽题
	set rs=server.createobject("adodb.recordset")
	rs.source=sqlstr
	rs.activeconnection=conn
	rs.cursortype=1
	rs.open	
	x=rs.recordcount	
	dim topics()
	redim topics(x)
	i=1
	while not rs.eof 
		topics(i)=rs("id")
		i=i+1
		rs.movenext
	wend
	
	' 为以上抽取的题库准备一个副本
	dim copy_topics()
	redim copy_topics(x)
	for i=1 to x	
		copy_topics(i)=topics(i)
	next

	
	y=cint(pand_num)
	dim paper()
	redim paper(y)
	
	'按组卷套数循环
	for m=1 to cint(try_num)	
	'按每套试卷要求的题目个数循环
	for i=1 to y
		randomize timer
		radom=int((1000*rnd())+1) mod (x+1)
		if topics(radom)<>"" then
			paper(i)=topics(radom)
			topics(radom)=""
		else
			do while	topics(radom)=""
				radom=radom+1 
				if radom>x then
					radom=1
				end if
				if topics(radom)<>"" then
					paper(i)=topics(radom)					
				end if			
			loop
			topics(radom)=""
		end if				
		response.write paper(i)	
		response.write "  "
	next
	
	'将信息写入试卷题目表
	score=100/pand_num
	for n=1 to y
		'rs.requery
		sqlstr="insert into test_topic(题目编号,试卷编号,分数) values('"&paper(n)&"','"&paper_number(m)&"','"&score&"')"
		set rs=conn.execute(sqlstr)
	next
	
	'通过副本恢复题库
	for i=1 to x	
		topics(i)=copy_topics(i)
	next
		
   next
	

conn.close
set conn=nothing
server.transfer("db_tryzujuan_tm.asp")
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -