📄 free_test_paper.jsp
字号:
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="jinghua.*"%>
<%@ page import="java.text.*" %>
<%@ page import="java.util.*" %>
<jsp:useBean id="DBCon" class="jinghua.JinghuaConn" scope="session">
</jsp:useBean>
<%! boolean debug=false;
String studentID;
%>
<%
try{
studentID=(String)session.getAttribute("studentID");
//Tools.showalert(studentID,out);
if(studentID==null){
throw new Exception();
}
}catch(Exception e){
Tools.showalert("您还没有登录,或连接超时,请重新登录!",out);
Tools.showJS("window.open('../login.jsp','_self')",out);
}
int subID=Integer.parseInt(request.getParameter("Subject"));//-1为全部
int knowID=Integer.parseInt(request.getParameter("KnowPoint"));//-1为全部
//1:任意;2:容易;3:中等;4:较难
int hardID=Integer.parseInt(request.getParameter("hard"));
//testorder:2随机顺序;2从难到易;3从易到难
int testorder=Integer.parseInt(request.getParameter("testorder"));
int testnumber=Integer.parseInt(request.getParameter("testnumber"));
//难易度设置:A,B,C,D,E
//容易:E:30%,D:30%,C:30%;B:10%
//中等:D:20%,C:30%,B:30%,A:10%,E:10%;
//较难:C:20%,B:20%,A:50%,D:10%
int numA=0,numB=0,numC=0,numD=0,numE=0,numElse=0;//各难度试题的个数
switch(hardID){
case 1:
numElse=testnumber;
break;
case 2:
numA=0;
numB=(int)Math.floor(testnumber*0.1);
numC=(int)Math.floor(testnumber*0.3);
numD=(int)Math.floor(testnumber*0.3);
numE=(int)Math.floor(testnumber*0.3);
numElse=testnumber-numA-numB-numC-numD-numE;
break;
case 3:
numA=(int)Math.floor(testnumber*0.1);
numB=(int)Math.floor(testnumber*0.3);
numC=(int)Math.floor(testnumber*0.3);
numD=(int)Math.floor(testnumber*0.2);
numE=(int)Math.floor(testnumber*0.1);
numElse=testnumber-numA-numB-numC-numD-numE;
break;
case 4:
numA=(int)Math.floor(testnumber*0.4);
numB=(int)Math.floor(testnumber*0.2);
numC=(int)Math.floor(testnumber*0.2);
numD=(int)Math.floor(testnumber*0.1);
numE=(int)Math.floor(testnumber*0.1);
numElse=testnumber-numA-numB-numC-numD-numE;
break;
}
if(debug){
out.print("<br>studentID="+studentID+
"<br>subID="+subID+
"<br>knowID="+knowID+
"<br>hardID="+hardID+
"<br>testorder="+testorder+
"<br>numA="+numA+
"<br>numB="+numB+
"<br>numC="+numC+
"<br>numD="+numD+
"<br>numE="+numE+
"<br>numElse="+numElse
);
}
ResultSet rs=null;
String sql="";
String sqlcon="";
String sqlorder="";
int testnum=0;
int testmark=0;
int i=0;
String strQuestIDs=null;
Statement stmt=null;
StringBuffer testIDs=new StringBuffer();
//StringBuffer Answer=new StringBuffer();
//StringBuffer Mark=new StringBuffer();
int testNumber=0;
try{
Connection con=DBCon.getConnection();
//构造查询条件
//科目
sqlcon="(`question`.`Source` =1)";
if(subID!=-1){
sqlcon=sqlcon+" AND "+" (`question`.`SubjectID`="+subID+") ";
}
//知识点
if(knowID!=-1){
if(sqlcon.equals(""))
sqlcon=" ((`question`.`KnowPointID1` = "+knowID+") OR "+
" (`question`.`KnowPointID2` = "+knowID+") OR "+
" (`question`.`KnowPointID3` = "+knowID+")) ";
else
sqlcon=sqlcon+ " AND "+
"((`question`.`KnowPointID1` = "+knowID+") OR "+
" (`question`.`KnowPointID2` = "+knowID+") OR "+
" (`question`.`KnowPointID3` = "+knowID+")) ";
}
if(debug){
out.println("<br>sqlcon="+sqlcon);
}
//testorder:2随机顺序;2从难到易;3从易到难
switch(testorder){
case 1:
sqlorder=" ORDER BY RAND()";
break;
case 2:
sqlorder=" ORDER BY `question`.`PreHard` ASC,`question`.`ID` ASC";
break;
case 3:
sqlorder=" ORDER BY `question`.`PreHard` DESC,`question`.`ID` ASC";
break;
default:
break;
}
//难易度
Vector questIDs=new Vector();
//A
if(numA>0){
if(sqlcon.equals(""))
sql="SELECT `question`.`ID` FROM `question` WHERE "+
"(`question`.`PreHard` = 'A')"+" ORDER BY RAND() "+" LIMIT "+numA;
else
sql="SELECT `question`.`ID` FROM `question` WHERE "+
sqlcon+" AND "+"(`question`.`PreHard` = 'A')"+" ORDER BY RAND() "+" LIMIT "+numA;
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
questIDs.addElement(new String(rs.getString("ID")));
}
if(debug)
out.print("<br>select numA sql="+sql);
}
catch(Exception e){
out.print("<br> query question hard A error sql="+sql);
out.print("<br>"+e.toString());
}
}
if(debug){
out.print("<br>vector number A="+questIDs.size());
}
//B
if(numB>0){
if(sqlcon.equals(""))
sql="SELECT `question`.`ID` FROM `question` WHERE "+
"(`question`.`PreHard` = 'B')"+" ORDER BY RAND() "+" LIMIT "+numB;
else
sql="SELECT `question`.`ID` FROM `question` WHERE "+
sqlcon+" AND "+"(`question`.`PreHard` = 'B')"+" ORDER BY RAND() "+" LIMIT "+numB;
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
questIDs.addElement(new String(rs.getString("ID")));
}
if(debug)
out.print("<br>select numB sql="+sql);
}
catch(Exception e){
out.print("<br> query question hard B error sql="+sql);
out.print("<br>"+e.toString());
}
}
if(debug){
out.print("<br>vector number B="+questIDs.size());
}
//C
if(numC>0){
if(sqlcon.equals(""))
sql="SELECT `question`.`ID` FROM `question` WHERE "+
"(`question`.`PreHard` = 'C')"+" ORDER BY RAND() "+" LIMIT "+numC;
else
sql="SELECT `question`.`ID` FROM `question` WHERE "+
sqlcon+" AND "+"(`question`.`PreHard` = 'C')"+" ORDER BY RAND() "+" LIMIT "+numC;
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
questIDs.addElement(new String(rs.getString("ID")));
}
if(debug)
out.print("<br>select numC sql="+sql);
}
catch(Exception e){
out.print("<br> query question hard C error sql="+sql);
out.print("<br>"+e.toString());
}
}
if(debug){
out.print("<br>vector number C="+questIDs.size());
}
//D
if(numD>0){
if(sqlcon.equals(""))
sql="SELECT `question`.`ID` FROM `question` WHERE "+
"(`question`.`PreHard` = 'D')"+" ORDER BY RAND() "+" LIMIT "+numD;
else
sql="SELECT `question`.`ID` FROM `question` WHERE "+
sqlcon+" AND "+"(`question`.`PreHard` = 'D')"+" ORDER BY RAND() "+" LIMIT "+numD;
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
questIDs.addElement(new String(rs.getString("ID")));
}
if(debug)
out.print("<br>select numD sql="+sql);
}
catch(Exception e){
out.print("<br> query question hard D error sql="+sql);
out.print("<br>"+e.toString());
}
}
if(debug){
out.print("<br>vector number D="+questIDs.size());
}
//E
if(numE>0){
if(sqlcon.equals(""))
sql="SELECT `question`.`ID` FROM `question` WHERE "+
"(`question`.`PreHard` = 'E')"+" ORDER BY RAND() "+" LIMIT "+numE;
else
sql="SELECT `question`.`ID` FROM `question` WHERE "+
sqlcon+" AND "+"(`question`.`PreHard` = 'E')"+" ORDER BY RAND() "+" LIMIT "+numE;
try{
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
questIDs.addElement(new String(rs.getString("ID")));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -