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

📄 admincreatepaper3.asp

📁 基于asp的遗传算法组卷系统
💻 ASP
📖 第 1 页 / 共 2 页
字号:
    ren_temp=left(ren_temp,pm_i-1)&"0"&right(ren_temp,len(ren_temp)-pm_i)
    '//修正,补1
    call variety1()
  end if
end function

function variety0()'修正,补0涵数
  dim pm_ii'pm_ii为要补0的位置
  pm_ii=rando(1,len(ren_temp))
  do while right(left(ren_temp,pm_ii),1)=0
    if pm_ii=len(ren_temp) then
      pm_ii=1
    else
      pm_ii=pm_ii+1
    end if
  loop
  ren_temp=left(ren_temp,pm_ii-1)&"0"&right(ren_temp,len(ren_temp)-pm_ii)
end function

function variety1()'修正,补1涵数
  dim pm_ii'pm_ii为要补1的位置
  pm_ii=rando(1,len(ren_temp))
  if right(left(ren_temp,pm_ii),1)=0 then
    ren_temp=left(ren_temp,pm_ii-1)&"1"&right(ren_temp,len(ren_temp)-pm_ii)
  else
    call variety1()
  end if
end function

function main()
	'//选择
	call ch()
	
	'//交叉
	call cross()

	'//变异
	call variety()

	'//再计算适应度
	call suit()

end function
'//开始
dim encode(),encode_temp()'存初始化群体的数组
dim ren_temp'ren_num(),'记录生成随机数数串'全局临时随机变量
dim group',group_new'当前群大小,下一代群大小
dim gen'当前世代数
dim maxgen'最大世代数
dim zj_q,time_q,nd_q,qu_q'章节,时间,难度,区分度权值
dim zj1_num,zj2_num,zj3_num,zj4_num,zj5_num'各章节题数
dim t_type_1,t_type_2,t_type_3'需要题型数量,单选,多选,判断
dim t_type_f1,t_type_f2,t_type_f3'题型分数,单选,多选,判断
dim total_time,total_nd,total_qfd'总时间,总难度,总区分度
dim km'科目
dim i,j
'//初始化各数值
group = 50
maxgen = 5
gen = 1
redim encode(group-1,4),encode_temp(group-1,4)
zj_q = 2'Cint(request.Form ("zj_q"))
time_q = 2'Cint(request.Form ("time_q"))
nd_q = 2'Cint(request.Form ("nd_q"))
qu_q = 2'Cint(request.Form ("qu_q"))
zj1_num = Cint(request.Form ("chapt1_num"))
zj2_num = Cint(request.Form ("chapt2_num"))
zj3_num = Cint(request.Form ("chapt3_num"))
zj4_num = Cint(request.Form ("chapt4_num"))
zj5_num = Cint(request.Form ("chapt5_num"))
t_type_1 = Cint(request.Form ("singlecount"))
t_type_2 = Cint(request.Form ("multicount"))
t_type_3 = Cint(request.Form ("judgecount"))
t_type_f1 = Cint(request.Form ("singleper"))
t_type_f2 = Cint(request.Form ("multiper"))
t_type_f3 = Cint(request.Form ("judgeper"))
total_time = Cint(request.Form ("testtime")*60)
total_nd = Cint(request.Form ("nandu"))
total_qfd = Cint(request.Form ("qufendu"))
km = request.Form ("subject")
'染色体编码
dim type_num1,type_num2,type_num3'现有的题型数量
dim sql_type1,sql_type2,sql_type3
dim rs_type

set rs_type = server.CreateObject ("ADODB.Recordset")
sql_type1 = "select * from exam_database where type='单选题' and subject='"&km&"' and fenzhi="&t_type_f1&" order by ID"
rs_type.Open sql_type1,conn,3,1
type_num1 = rs_type.RecordCount
rs_type.Close

sql_type2 = "select * from exam_database where type='多选题' and subject='"&km&"' and fenzhi="&t_type_f2&" order by ID"
rs_type.Open sql_type2,conn,3,1
type_num2 = rs_type.RecordCount
rs_type.Close

sql_type3 = "select * from exam_database where type='判断题' and subject='"&km&"' and fenzhi="&t_type_f3&" order by ID"
rs_type.Open sql_type3,conn,3,1
type_num3 = rs_type.RecordCount
rs_type.Close

	'response.Write ("  共有符合条件的单选:"&type_num1)
	'response.Write ("  共有符合条件的多选:"&type_num2)
	'response.Write ("  共有符合条件的判断:"&type_num3&"<br>")
if t_type_1>type_num1 or t_type_2>type_num2 or t_type_3>type_num3 then
  response.Write ("题库中没有足够的题目生成试卷<br>")
  response.Write ("  共有符合条件的单选:"&type_num1)
  response.Write ("  共有符合条件的多选:"&type_num2)
  response.Write ("  共有符合条件的判断:"&type_num3&"<br>")
  response.End
end if
'//初始化群体
for i=0 to group-1
  encode(i,0) = i+1
  encode(i,1) = ran_n(t_type_1,type_num1)
  encode(i,2) = ran_n(t_type_2,type_num2)
  encode(i,3) = ran_n(t_type_3,type_num3)
next
'//计算适应度
call suit()
 
'//主程序开始,进化开始
do while not gen=maxgen-1
call main()
loop
'//终止==============
  call ch()
  '//显示试题中题目的ID
    i=0
    content=""
    ren_temp = encode(i,1)'单选
    rs_type.Open sql_type1,conn,3,1
    for j=1 to len(ren_temp)
      if right(left(ren_temp,j),1)=1 then
        'response.Write (rs_type.Fields ("ID")&"<br>")'检验是否命中“1”的题目
        'response.Write ("<br>|"&rs_type.Fields ("ID"))
        'response.Write (rs_type.Fields ("ID")&",")
        content=content&rs_type.Fields ("ID")&","
      end if
      rs_type.MoveNext      
    next    
    rs_type.Close
    ren_temp = encode(i,2)'多选
    rs_type.Open sql_type2,conn,3,1
    for j=1 to len(ren_temp)
      if right(left(ren_temp,j),1)=1 then
        'response.Write (rs_type.Fields ("ID")&"<br>")'检验是否命中“1”的题目
        'response.Write ("<br>|"&rs_type.Fields ("ID"))
        'response.Write (rs_type.Fields ("ID")&",")
        content=content&rs_type.Fields ("ID")&","
      end if
      rs_type.MoveNext      
    next    
    rs_type.Close
    ren_temp = encode(i,3)'判断
    rs_type.Open sql_type3,conn,3,1
    for j=1 to len(ren_temp)
      if right(left(ren_temp,j),1)=1 then
        'response.Write (rs_type.Fields ("ID")&"<br>")'检验是否命中“1”的题目
        'response.Write (rs_type.Fields ("ID")&",")
        content=content&rs_type.Fields ("ID")&","
      end if
      rs_type.MoveNext      
    next    
    rs_type.Close 
    
content=left(content,len(content)-1)
'response.Write (content)
%>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>祝贺您</title>
<link rel="stylesheet" type="text/css" href="css.css">
</head>
<body>
<%
sql="select * from exam_test"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
rs.addnew
randomize
testid=100000000+fix(100000000*Rnd)
rs("testid")=testid
rs("subject")=request("subject")
rs("totalper")=request("totalper")
rs("singlecount")=request("singlecount")
rs("multicount")=request("multicount")
rs("judgecount")=request("judgecount")
rs("singleper")=request("singleper")
rs("multiper")=request("multiper")
rs("judgeper")=request("judgeper")
rs("testtime")=request("testtime")'
rs("starttime")=request("starttime")
rs("endtime")=request("endtime")
rs("settime")=date()
rs("qufendu")=request("qufendu")
rs("nandu")=request("nandu")
rs("chapt1_num")=request("chapt1_num")
rs("chapt2_num")=request("chapt2_num")
rs("chapt3_num")=request("chapt3_num")
rs("chapt4_num")=request("chapt4_num")
rs("chapt5_num")=request("chapt5_num")
rs("content")=content
rs("setuserid")=request.cookies("userid")
rs.update
rs.close
userid=split(request("userid"),",")
i=ubound(userid)
for j=0 to i
sql="select * from exam_testuser"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
rs.addnew
rs("testid")=testid
rs("userid")=userid(j)
rs.update
rs.close
next
'sql="select * from waitforpass"
'set rs=server.createobject("adodb.recordset")
'rs.open sql,conn,3,2
'rs.addnew
'rs("objid")=testid
'rs("objname")="考试计划"
'rs("passuserid")=request("shenhr")
'rs.update
'rs.close
%>
<p> </p>
<p> </p>
<div align="center">
  <center>
  <table cellspacing="0" style="border-collapse: collapse" bordercolor="#336699" width="480" id="AutoNumber2" cellpadding="0" border="1">
    <tr>
      <td width="100%" height="25" bgcolor="#6699CC"><b>&nbsp;<font color="#FFFFFF">操作成功</font></b></td>
    </tr>
    <tr>
      <td width="100%" height="160" bgcolor="#EFEFEF">
      <p align="center"><font size="2">祝贺您,已经成功生成试卷!按下返回按钮返回系统首页!</font></p>
      <p align="center"></td>
    </tr>
    <tr>
      <td width="100%" height="25" bgcolor="#6699CC">
      <p align="center">
      <input type="button" value=" 返 回 " name="B3" class="s02" onclick="window.location='news.asp'"></td>
    </tr>
  </table>
  </center>
</div>
</body>
</html>

⌨️ 快捷键说明

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