mn_test_paper.jsp
上传用户:nbluoke
上传日期:2013-08-09
资源大小:4851k
文件大小:9k
源码类别:

教育系统应用

开发平台:

WORD

  1. <%@ page contentType="text/html; charset=gb2312" language="java" %>
  2. <%@ page import="java.sql.*" %>
  3. <%@ page import="jinghua.*"%>
  4. <%@ page import="java.text.*" %>
  5. <jsp:useBean id="DBCon" class="jinghua.JinghuaConn" scope="session">
  6. </jsp:useBean>
  7. <%! boolean debug=false;%>
  8. <%
  9. String testID=request.getParameter("testID");
  10. String studentID=request.getParameter("stuID");
  11. String mn_testID=request.getParameter("mn_testID");
  12. if(debug){
  13.     out.print("<br>mn_testID="+mn_testID);
  14. }
  15. ResultSet rs=null;
  16. String sql="";
  17. String title="";
  18. int testnum=0;
  19. int testmark=0;
  20. int old=Integer.parseInt(request.getParameter("old"));
  21. if(old==1){
  22.     Tools.showalert("您在模拟考试中做过相同科目的试卷,本系统已经记录下您第一次做该科目试卷的成绩,"+
  23.         "\n现在您可以做这份试卷,但系统不记录成绩,如有疑问请与系统管理员联系。",out);
  24. }
  25. int valid=Integer.parseInt(request.getParameter("valid"));
  26. PreparedStatement pstmt=null;
  27. Statement stmt=null;
  28. StringBuffer dbmsg=new StringBuffer();
  29. StringBuffer testIDs=new StringBuffer();
  30. //StringBuffer Answer=new StringBuffer();
  31. //StringBuffer Mark=new StringBuffer();
  32. int testNumber=0;
  33. try{
  34.     Connection con=DBCon.getConnection();
  35.     if(old==0){
  36.     //查询是否完成过相同科目的考试:
  37.     int sub_id=-1;
  38.     sql="select subid from test where id="+testID;
  39.     try{
  40.         stmt=con.createStatement();
  41.         rs=stmt.executeQuery(sql);
  42.         if(rs.next()){
  43.             sub_id=rs.getInt("subid");
  44.         }
  45.         rs.close();
  46.         stmt.close();
  47.         if(debug){
  48.             out.print("<br>query test sub sql="+sql);
  49.         }
  50.     }
  51.     catch(SQLException se){
  52.         out.print("<br>query test sub sql="+sql);
  53.         out.print("<br>"+se.toString());
  54.     }
  55.     catch(Exception e){
  56.         out.print("<br>query test sub sql="+sql);
  57.         out.print("<br>"+e.toString());
  58.     }
  59.     sql=" select count(*) as tested_sub from mn_scores where mn_test_id="+mn_testID+
  60.         " and stu_id='"+studentID+"' and sub_id="+sub_id;
  61.     try{
  62.         stmt=con.createStatement();
  63.         rs=stmt.executeQuery(sql);
  64.         if(rs.next()){
  65.             old=rs.getInt("tested_sub");
  66.             if(old==1){
  67.                  Tools.showalert("您在模拟考试中做过相同科目的试卷,本系统已经记录下您第一次做该科目试卷的成绩,"+
  68.             "\n现在您可以做这份试卷,但系统不记录成绩,如有疑问请与系统管理员联系。",out);
  69.             }
  70.         }
  71.         rs.close();
  72.         stmt.close();
  73.         if(debug){
  74.             out.print("<br>query sub old sql="+sql);
  75.         }
  76.     }
  77.     catch(SQLException se){
  78.         out.print("<br>query sub old sql="+sql);
  79.         out.print("<br>"+se.toString());
  80.     }
  81.     catch(Exception e){
  82.         out.print("<br>query sub old sql="+sql);
  83.         out.print("<br>"+e.toString());
  84.     }
  85.     }//end if(old==0)
  86.     sql="select id,paper,title,testnum from test where id="+testID;
  87.     pstmt=con.prepareStatement(sql);
  88.     rs=pstmt.executeQuery();
  89.     if(rs.next()){
  90.         //分析试题:试题ID@答案@分数@难易度;     一道试题的格式,以#号结束
  91.         String paper=rs.getString("paper");
  92.         title=rs.getString("title");
  93.         testnum=rs.getInt("testnum");
  94.         if(debug) dbmsg.append("<br>paper="+paper);
  95.         String [] tests=paper.split("#");
  96.         for(int i=0;i<tests.length;i++){
  97.             //取回试题号
  98.             String [] test=tests[i].split("@");
  99.             testIDs.append(test[0]+",");//题号
  100.             //Answer.append(test[1]+"#");//答案
  101. //Mark.append(test[2]+"#");
  102.             testmark+=Float.parseFloat(test[2]);
  103.         }
  104.         sql=testIDs.toString().substring(0,testIDs.length()-1);
  105.         sql="select id,questtext,mark from question where id in ("+sql+") order by id";
  106. rs.close();
  107.         pstmt.close();
  108.         pstmt=con.prepareStatement(sql);
  109.         rs=pstmt.executeQuery();
  110. %>
  111. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  112. <!-- saved from url=(0041)http://jsptestonline.cosoft.org.cn/senior/none_xt.jsp -->
  113. <HTML><HEAD><TITLE>共创学堂-<%=title%></TITLE>
  114. <META http-equiv=Content-Type content="text/html; charset=gb2312">
  115. <LINK
  116. href="style/style.css" type=text/css rel=stylesheet>
  117. <SCRIPT src="js/html.js"></SCRIPT>
  118. <SCRIPT src="js/gnb_menus_layer.js"></SCRIPT>
  119. <SCRIPT src="js/menu.js"></SCRIPT>
  120. <SCRIPT src="js/jumpmenu.js"></SCRIPT>
  121. <SCRIPT src="js/Valid.js"></SCRIPT>
  122. <META content="MSHTML 6.00.2722.900" name=GENERATOR></HEAD>
  123. <BODY text=#000000 bgColor=#ffffff>
  124. <CENTER><form name="viewdatabase"  ACTION="mn_test_rs.jsp"  method="post">
  125.   <table width="650" border="0" cellspacing="0" cellpadding="0">
  126.     <tr>
  127.       <td><img src="images/test_pop_01.gif" width="102" height="27"></td>
  128.       <td align="right"><img src="images/test_pop_02.gif" width="134" height="27"></td>
  129.     </tr>
  130.   </table>
  131.   <!--begin test -->
  132.   <table width="650" border="0" cellspacing="0" cellpadding="0">
  133.     <tr>
  134.       <td class="title1" align="center"><font color="#74a8d1" size="+2">
  135.                             <strong><B>
  136.                                 <%=title%>
  137.                                     </B>
  138.                             </strong>
  139.                         </font></td>
  140.     </tr>
  141.   </table>
  142.   <br>
  143.   <table id=AutoNumber1 style="BORDER-COLLAPSE: collapse"
  144. height=82 cellspacing=1 width="650" border=0 cellpadding="2" bgcolor="#c1c1c1">
  145.     <tbody>
  146.       <tr class=trh>
  147.         <td align=center width=80 bgcolor=#eaeaea><b>序号</b></td>
  148.         <td align=middle bgcolor=#eaeaea> <p align=center><b>共<%=testnum%>题,<%=testmark%>分</b></p></td>
  149.       </tr>
  150.   <%while(rs.next()){%>
  151.       <tr class=trh1 bgcolor="#FFFFFF">
  152.         <td align=middle width=80> 
  153.           <table width="100%" border=0>
  154.             <tbody>
  155.               <tr>
  156.                 <td> <center>
  157.                    <%=(++testNumber)%> </center></td>
  158.               </tr>
  159.               <tr>
  160.                 <td> <center>
  161.                       <%DecimalFormat df=new DecimalFormat("###");
  162.                   String numNF=df.format(rs.getFloat("mark"));
  163.               out.print("("+numNF+"分)");%>
  164.                     </center></td>
  165.               </tr>
  166.             </tbody>
  167.           </table></td>
  168.         <td align=left>
  169. <br>
  170.          <%=rs.getString("questtext")%>
  171.  <br>
  172.  </td>
  173.       </tr>
  174.   <%}
  175.     rs.close();
  176.     pstmt.close();
  177.     %>
  178.     </tbody>
  179.   </table>
  180.   <table cellspacing=0 cellpadding=8 width=650 border=0>
  181.     <tbody>
  182.     <tr>
  183.       <td align=center>
  184.         <!--begin botton-->
  185.         <input class=s02 type=submit value=提交 name=submit1>
  186.         &nbsp;&nbsp;
  187.         <input class=s02 type=reset value=重置 name=submit2>
  188.         <input name="testid" type="hidden" id="testid2" value="<%=testID %>">
  189.           <input name="studentid" type="hidden" id="studentid2" value="<%=studentID %>">
  190.   <input id=mn_testID type="hidden" value=<%=mn_testID%> name="mn_testID">
  191.           <input name="valid" type="hidden" id="valid" value="<%=valid%>">
  192.           <input name="old" type="hidden" id="old" value="<%=old%>">
  193.         <!--end button-->
  194.       </td>
  195.     </tr>
  196.     </tbody>
  197.   </table>
  198.   <!--end test -->
  199.   <!--begin bottom -->
  200.   <TABLE
  201. style="BORDER-TOP: #dbdbdb 1px solid; MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px; BACKGROUND-COLOR: #f6f6f6"
  202. cellSpacing=0 cellPadding=0 width="100%" border=0>
  203.   <TBODY>
  204.   <TR>
  205.     <TD align=middle colSpan=2 height=30>
  206.       <TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
  207.         <TBODY>
  208.         <TR>
  209.           <TD><A href="http://jsptestonline.cosoft.org.cn/index.html"
  210.             target=_blank>关于我们</A> | <A
  211.             href="http://jsptestonline.cosoft.org.cn/contact/3_ywhz.html"
  212.             target=_blank>联系方式</A> | 网站地图 | <A
  213.             href="http://jsptestonline.cosoft.org.cn/about/service.html"
  214.             target=_blank>服务条款</A> | <A
  215.             href="http://jsptestonline.cosoft.org.cn/about/privacy.html"
  216.             target=_blank>隐私权保护</A> | <A
  217.             href="http://jsptestonline.cosoft.org.cn/about/copyright.html"
  218.             target=_blank>版权声明</A></TD>
  219.           <TD align=middle width=220>版权所有:<A href="http://jsptestonline.cosoft.org.cn/"
  220.             target=_blank>共创教育机构</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!--end bottom --></form></CENTER></BODY></HTML>
  221. <%
  222. }else{
  223.         Tools.showalert("从数据库中取出试题出错,没有找到相应试卷!",out);
  224.         Tools.goback(out);
  225. }
  226. }catch(SQLException e){
  227.     out.print("<br>SQL Error:sql="+sql+"<br>"+e.toString());
  228. }catch(Exception e){
  229.     out.print(e.toString() );
  230. }
  231. finally{
  232.     DBCon.dropConnection();
  233. }
  234. %>