软件工程结对作业01

四则运算三

把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判。

 

  1. 程序设计思想

用JAVA程序随机生成运算表达式的String类型的数组,并同时计算出每个运算表达式应得的正确结果,分别将其设置到arithmetic属性中,在jsp页面可以选择题目数量和做题时间。

答完题提交或时间到后会显示出答题结果,哪道题错误,答对题目数量,答错题目数量,多少题没有答。

        2. 源程序代码

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>出题数目</title>
 8 </head>
 9 
10 <h1 style="font-family:新蒂黑板报底字 ; font-size:5em">选择题目吧</h1>
11 
12     <form action="Chuti.jsp"  method="post">
13     <table align="center" border="0" width="500" style="margin:00px 200px 00px 5px">
14     <tr>
15         <td style="font-size:2em;width:500px"  align="right">你想做几道题? </td>
16         <td>
17             <input style="width:100px;height:30px;" type="text" name="username" />
18         </td>
19     </tr>
20     
21     <tr>
22         <td style="font-size:2em;width:500px"  align="right">设置时间: </td>
23         <td>
24             <input style="width:100px;height:30px;" type="text" name="usertime" />
25             </td>
26             <td style="font-size:2em;width:500px"  align="right">秒 </td>
27     </tr>
28     
29     <tr><td style="width:150px;height:40px;"></td></tr> <!-- 加了一个自己设置的高度的空行 -->
30     <tr align="center">
31     <td colspan="2">
32         <input  style="width:100px;height:30px;  margin:00px 20px 00px 150px" type="submit" value="我选好了" />
33 </body>
34 </html>
 1 <%@page import="com.jaovo.msg.model.arithmetic"%>
 2 <%@ page import="javax.swing.*" %>
 3 <%@ page language="java" contentType="text/html; charset=UTF-8"
 4     pageEncoding="UTF-8"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head><title>出题页</title></head>
 8 <body background="./images/tu2.jpg">
 9 <%
10   //接收客户端传递过来的参数
11     request.setCharacterEncoding("UTF-8");
12     String time = request.getParameter("usertime");//接收时间
13     int time1=0;
14     int x=1;
15     for(int m=0;m<time.length();m++)
16     {
17         time1+=(time.charAt(time.length()-m-1)-'0')*x;
18         x*=10;
19     }//字符串类型的数字转换为整型  成为参数
20 %>
21 <script>
22 var c=1;
23 var t;
24 var num1=<%=time1%>
25 function timeCount()
26 {
27     document.getElementById("txt").innerHTML=num1-c;
28     c=c+1;
29     t=setTimeout("timeCount()",1000);
30     if(num1==c-1)
31     {
32         clearTimeout(t);
33         alert("时间到了!");
34         load();
35     }
36 }
37 function load(){  
38         document.getElementById("anniu").click();  
39 }
40 window.onload =function(){
41     timeCount();//onload 事件会在页面或图像加载完成后立即发生。
42 }
43 
44 </script>
45 <h2 align="center" style="font-family:新蒂黑板报底字 ; font-size:4em">开始答题</h2>
46 <td style="font-size:1em;width:500px"  align="right">倒计时:</td>
47 <p id = "txt"></p>
48 <form action="Result.jsp" onsubmit="return validate()==1" method="get">
49 
50 <%
51   //接收客户端传递过来的参数
52     request.setCharacterEncoding("UTF-8");
53     String num = request.getParameter("username");//接收出题的数目
54     int num1=0;
55       x=1;
56     for(int m=0;m<num.length();m++)
57     {
58         num1+=(num.charAt(num.length()-m-1)-'0')*x;
59         x*=10;
60     }//字符串类型的数字转换为整型  成为参数
61     
62     arithmetic demo=new arithmetic();//定义对象
63     String []biaodashi1=new String[num1];
64     biaodashi1=demo.biaodashi(num1);//接收算式
65     demo.setsuanshi(biaodashi1);//调用函数 给数据成员算式赋值 以便用于传递
66     
67     for(int i=0;i<num1;i++)
68     {
69 %>
70 <table align="center" border="0" width="600">
71     <tr>
72         <td>
73         <% 
74             out.println(biaodashi1[i]);//输出表达式
75         %>
76         </td>
77         <td>
78              <input  type="text" name="result[<%=i%>]"/>  
79          </td> 
80      </tr>                     
81  <% 
82     }
83     session.setAttribute("jieshou",demo);
84 %>
85 </table>
86  <input type="submit" value="交卷" /> 
87 
88 
89 
90 </body>
91 </html>

 

 1 <%@page import="com.jaovo.msg.model.arithmetic"%>
 2 <%@ page import="javax.swing.*" %>
 3 <%@ page language="java" contentType="text/html; charset=UTF-8"
 4     pageEncoding="UTF-8"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head><title>出题</title></head>
 8 
 9 <body background="./images/tu3.jpg">
10 <h1 align="center"  style="font-family:新蒂黑板报底字 ; font-size:5em">答题结果</h1>
11 <table align="center" border="0" width="600">
12 <%
13   //接收客户端传递过来的参数
14     arithmetic newdemo=new arithmetic();
15     newdemo=(arithmetic)session.getAttribute("jieshou");//用于接收CHUti界面传过来的数 (对象)
16     String []yoursolution=new String[newdemo.shumu];//接收传过来的文本框的答案
17     int sumright=0,sumerror=0,empty=0;
18     
19     
20     for(int i=0;i<newdemo.shumu;i++)
21     {
22         request.setCharacterEncoding("UTF-8");
23         %>
24         <tr>
25         
26         <% 
27             out.print(newdemo.suanshi[i]);//算式
28             yoursolution[i] = request.getParameter("result["+i+"]");//你的答案
29             out.println(yoursolution[i]);
30         %>
31        
32         
33         
34         <% 
35         int num1=0;
36         int x=1;
37         for(int m=0;m<yoursolution[i].length();m++)
38         {
39             num1+=(yoursolution[i].charAt(yoursolution[i].length()-m-1)-'0')*x;
40             x*=10;
41         }//字符串类型的数字转换为整型  用于和正确答案比较 因为从出题界面接受的答案是字符串类型
42         if(yoursolution[i].equals(""))
43         {
44             out.println("你没有回答哦!         ");
45             empty++;
46             out.println("正确答案是:             ");
47             out.println(newdemo.answer[i]);//正确的答案
48         }
49         else if(num1==newdemo.answer[i])
50         {
51             sumright++;
52             out.println("恭喜你!回答正确!");
53         }
54         else
55         {
56             sumerror++;
57             out.println("回答错误,再接再厉!         ");
58             out.println("正确答案是:             ");
59             out.println(newdemo.answer[i]);//正确的答案
60         }
61         
62         %>
63 </tr><br>
64     <% 
65     }
66     %>
67     <tr>
68     <td>
69     <% 
70         out.println("回答正确了"+sumright+"道题!");
71     %>
72     </td>
73     </tr>
74     <tr>
75         <td>
76         <% 
77             out.println("回答错误了"+sumerror+"道题!");
78         %>
79         </td>
80     </tr>
81     <tr>
82         <td>
83         <% 
84             out.println("有"+empty+"道题你没有回答哟!");
85         %>
86         </td>
87     </tr>
88     </table>
89 <a href="chutishumu.jsp">退出</a>
90 </body>
91 </html>

 

3.   运行结果截图

 

 

4.    编程总结或体会

对于随机出题难度不大,但是在页面上填入结果往回传值,与正确答案相比较时,总是报空指针的错误,主要是这里的问题。

 

 

项目计划总结

 

周活动总结表

 

姓名:王金萱                                                     日期:2017/12/6

 

听课

编写程序

阅读课本

准备考试

 

 

日总计

周日12.3

 

180

20

 

 

 

200

周一

 

120

20

 

 

 

140

周二

130

210

 

 

 

 

340

周三

 

150

 

 

 

 

 

周四

 

 

 

 

 

 

 

周五

 

 

 

 

 

 

 

周六

 

 

 

 

 

 

 

周总计

 

 

 

 

 

 

 

 

时间记录日志

姓名:王金萱                                                     日期:2017/12/6

教师:王建民                                                    课程:PSP

日期

开始时间

结束时间

中断时间

净时间

活动

备注

C

U

12.5

周二

8:00

8:50

 

50

听课

软件工程概论

 

 

 

 

9:30

9:50

 

20

编程序

两人结对 写子数组最大和代码

 

 

 

 

10:10

12:00

10

100

数据结构课

课间

写子数组最大和代码

 

 

 

14:00

15:30

 

90

改进程序大赛的参赛程序

 

 

 

 

16:00

17:20

 

80

程序大赛初赛

 

 

 

 

21:00

0:30

30

180

写四则运算三的网页程序

洗漱

 

 

12.6

周三

14:00

17:30

 

150

写四则运算三的网页程序

 

 

 

 

19:30

 

 

 

继续完善四则运算

 

 

 

 

缺陷记录日志

 姓名:王金萱

日期:2017/12/6

程序:四则运算三

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

12/6

1

空指针异常

 

 

 

重新写一个计算并返回正确结果的方法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-12-06 19:46  顾北清歌寒。  阅读(200)  评论(0编辑  收藏  举报