软件工程结对作业01
Posted Kefi的个人博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程结对作业01相关的知识,希望对你有一定的参考价值。
程序设计思想:
首先,由于之前的四则运算已经基本上把需要实现的功能都实现了,所以这次任务的重心在于怎么把一个Java程序变成网页版的。
第一步我的想到需要哪几个网页,每个网页都实现什么功能。那么,主页是必不可少的,用户需要在主页上选择一些出题的基本参数,比如说自然数的范围、
除法有无余数,减法有无负数等,当用于选择好之后,由后台开始出题,于另一个页面显示后台出的题目,用户于此页面进行答题,做完之后,
提交到另一个页面,对用户输入的答案与出题同时写进数据库的答案进行比较,同时告诉用户做对的题目是哪些,做错的题目是哪些。
以上是这个在线答题系统的整体框架,接下来就是对上述描述进行实现,代码如下:
首先是主页的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>index</title> <link href="css/css01.css" rel="stylesheet" type="text/css"/> <script language="javascript"> function istrue(form1){ text1=form1.text1.value; text2=form1.text2.value; if(text1.length==0) { alert("题目数量不能为空!"); form1.text1.focus(); return false; } if(text2.length==0) { alert("自然数范围不能为空!"); form1.text2.focus(); return false; } } </script> </head> <body> <h2>Online答题系统</h2> <div id="index" > <form action="jsp01.jsp" name="form1" id="form1" method="post" onsubmit="return istrue(form1)"> <table> <tr> <td> <label for="text1">请输入题目的数量:</label></td><td> <input type="text" name="text1" id="text1" value="10" /> </td> </tr> <tr> <td> <label for="text2">请输入自然数的范围:</label></td><td> <input type="text" name="text2" id="text2" value="10"/> </td> </tr> <tr> <td> <label for="text3">请输入真分数的范围:</label></td><td> <input type="text" name="text3" id="text3" value="10"/> </td> </tr> <tr> <td> <label for="text4">请输入真分数分母的范围:</label></td><td> <input type="text" name="text4" id="text4" value="10" /> </td> </tr> <tr> <td> <label id="label1">请选择是否需要乘除法?</label></td><td> <input type="radio" name="radio1" checked="checked" id="radio1" value="y" /> <label for="radio1">是</label> <input type="radio" name="radio1" id="radio1" value="n" /> <label for="radio1">否</label> </td> </tr> <tr> <td> <label id="label2">请选择是否需要括号?</label></td><td> <input type="radio" checked="checked" name="radio2" id="radio2" value="y" /> <label for="radio2">是</label> <input type="radio" name="radio2" id="radio2" value="n" /> <label for="radio2">否</label> </td> </tr> <tr> <td> <label id="label3">请选择是否需要负数?</label></td><td> <input type="radio" name="radio3" checked="checked" id="radio3" value="y" /> <label for="radio3">是</label> <input type="radio" name="radio3" id="radio3" value="n" /> <label for="radio3">否</label> </td> </tr> <tr> <td> <label id="label4">请选择是否需要余数?</label></td><td> <input type="radio" name="radio4" checked="checked" id="radio4" value="y" /> <label for="radio4">是</label> <input type="radio" name="radio4" id="radio4" value="n" /> <label for="radio4">否</label> </td> </tr> <tr> <td> <input type="submit" name="submit" id="submit" value="开始出题"/> </td> </tr> </table> </form> </div> </body> </html>
接下来是答题页面的代码:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*,java.util.*,javabean01.*,javax.sql.*,javax.naming.*" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- TemplateBeginEditable name="doctitle" --> <title>无标题文档</title> <!-- TemplateEndEditable --> <!-- TemplateBeginEditable name="head" --> <!-- TemplateEndEditable --> <link href="css/css01.css" rel="stylesheet" type="text/css"/> </head> <body> <% int number=Integer.parseInt(request.getParameter("text1")); int i; //用于循环 Random ran=new Random(); //专门用于产生随机数 int ranNumber;//存随机产生的数 //建一个Ways类的对象,用于方法的调用 Ways ways=new Ways(); //用于存储用户的选择 char choice[]=new char[4]; choice[0]=request.getParameter("radio1").charAt(0); choice[1]=request.getParameter("radio2").charAt(0); choice[2]=request.getParameter("radio3").charAt(0); choice[3]=request.getParameter("radio4").charAt(0); int range1=Integer.parseInt(request.getParameter("text2")); int range2=Integer.parseInt(request.getParameter("text3")); int range3=Integer.parseInt(request.getParameter("text4"));%> <form name=form2 action="jsp02.jsp" method=post> <% //清空数据库中原来的东西 Connection conn=null; Statement stmt=null; try{ Context ctx=new InitialContext(); DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/calculation"); conn=ds.getConnection(); stmt=conn.createStatement(); String sql="truncate table biaodashi"; stmt.execute(sql); sql="truncate table anwsy"; stmt.execute(sql); } catch(SQLException se){ se.printStackTrace(); } finally{ if(stmt!=null){ try{ stmt.close(); } catch(SQLException se) { se.printStackTrace(); } stmt=null; } if(conn!=null){ try { conn.close(); } catch(SQLException se) { se.printStackTrace(); } conn=null; } } for(i=1;i<=number;i++){ //开始出题 int ran1=ran.nextInt(8)+1; switch(ran1){ case 1: String result1=ways.addInt(range1); if(result1!=null){ out.println(result1);%><input type="text" class=daan name="text<%=i%>"></input><br/><% } else i--; break; case 2: String result2=ways.mimusInt(range1, choice[2]); if(result2!=null){ out.println(result2);%><input type="text" class=daan name="text<%=i%>"></input><br/><% } else i--; break; case 3: String result3=ways.multiplyInt(range1, choice[0]); if(result3!=null){ out.println(result3);%><input type="text" class=daan name="text<%=i%>"></input><br/><% } else i--; break; case 4: String result4=ways.divideInt(range1, choice[0],choice[3]); if(result4!=null){ out.println(result4); %><input type="text" class=daan name="text<%=i%>"></input><br/><% } els以上是关于软件工程结对作业01的主要内容,如果未能解决你的问题,请参考以下文章