一個簡單的網上答題及其自動評測系統
【問題描述】
目前,采用網上考試並實現自動評測已經成為了一種趨勢,通過本案例學習,理解和掌握在一個提交信息頁面中,一個表單可能存在多種不同的輸入域,例如,文本框、復選框、單選框、列表框等、在其相應處理頁面時如何獲得這些參數呢?
【問題分析】
改程序包括兩部分,首先是實體頁面的設計及其解答的提交,其次是當提交解答后,系統自動評測並給出評測結果
一個是提交信息頁面,另一個是獲取提交並進行處理現實結果頁面。
【答題頁面設計】
<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>"); %>
