一个简单的网上答题及其自动评测系统
【问题描述】
目前,采用网上考试并实现自动评测已经成为了一种趋势,通过本案例学习,理解和掌握在一个提交信息页面中,一个表单可能存在多种不同的输入域,例如,文本框、复选框、单选框、列表框等、在其相应处理页面时如何获得这些参数呢?
【问题分析】
改程序包括两部分,首先是实体页面的设计及其解答的提交,其次是当提交解答后,系统自动评测并给出评测结果
一个是提交信息页面,另一个是获取提交并进行处理现实结果页面。
【答题页面设计】
<form action="ch03_17_show.jsp" method="post"> 一‘2+3=?<br> <input type=radio name=r1 value=2 checked="checked"/>2 <input type=radio name=r1 value=3 >3 <input type=radio name=r1 value=4 >4 <input type=radio name=r1 value=5 >5<br/> 二、下列哪些是偶数?<br/> <input type=checkbox name=c1 value=2 >2 <input type=checkbox name=c1 value=3 >3 <input type=checkbox name=c1 value=4 >4 <input type=checkbox name=c1 value=5 >5<br/> 三、下列哪些是动态网页?<br/> <select size="4" name="list" mutiple="mutiplr"> <option value="asp">ASP</option> <option value="php">PHP</option> <option value="html">HTML</option> <option value="jsp">JSP</option> <option value="xyz" select="selected">xyz</option> </select> <br/>四、下列哪个是服务器端的?<br/> <select size="1" name="list5" > <option value="jsp">JSP</option> <option value="servlet">SERVLET</option> <option value="java">java</option> <option value="jdbc">jdbc</option> <option value="xyz" select="selected">xyz</option> </select><br/> 五、在服务器端用来接收用户请求的对象是: <input type="text" size="20" name="text1"><br/> <div align="left"> <blockquote> <input type="submit" value="提交" name="button1"/> <input type="reset" value="重置" name="button2"/> </blockquote> </div> </form>
【答题评测】
<% request.setCharacterEncoding("utf-8"); String s1=request.getParameter("r1"); if(s1!=null){ out.println("一、解答为:2+3="+s1+" "); if(s1.equals("5")) out.println("正确"+"<br>"); else out.println("回答错误"+"<br"); }else out.println("一、没有填写答案"); out.println("-------------------<br>"); String [] s2=request.getParameterValues("c1"); if(s2!=null){ out.println("二、答案为:"); for(int i=0;i<s2.length;i++){ out.println(s2[i]+" "); } if(s2.length==2&&s2[0].equals("2")&&s2[1].equals("4")) out.println("正确"+"<br>"); else out.println("错误"+"<br>");} else out.println("二、请填写答案!"); out.println("------------------<br>"); String [] s3=request.getParameterValues("list1"); if(s3!=null){ out.println("三、动态网页是:"); for(int i=0;i<s3.length;i++){ out.println(s3[i]+" "); } if(s3.length==3&&s3[0].equals("asp")&&s3[1].equals("php") &&s3[2].equals("jsp")) out.println("正确"+"<br>"); else out.println("错误"+"<br>");} else out.println("三、请填写答案!"); out.println("------------------<br>"); String s4=request.getParameter("list5"); if(s4!=null){ out.println("四、服务器端的组件是:"); out.println(s4+" "); if(s4!=null&&s4.equals("servlet")) out.println("正确"+"<br>"); else out.println("错误"+"<br>"); } else out.println("四、请填写答案!"); out.println("------------------<br>"); String s5=request.getParameter("text1"); if(s5!=null){ out.println("五、解答为:"); out.println(s5+" "); if(s5!=null&&s5.equals("request")) out.println("正确"+"<br>"); else out.println("错误"+"<br>");} else out.println("五、没有填写答案!"); out.println("------------------<br>"); %>