zoukankan      html  css  js  c++  java
  • 软件工程结对作业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;500px"  align="right">你想做几道题? </td>
    16         <td>
    17             <input style="100px;height:30px;" type="text" name="username" />
    18         </td>
    19     </tr>
    20     
    21     <tr>
    22         <td style="font-size:2em;500px"  align="right">设置时间: </td>
    23         <td>
    24             <input style="100px;height:30px;" type="text" name="usertime" />
    25             </td>
    26             <td style="font-size:2em;500px"  align="right">秒 </td>
    27     </tr>
    28     
    29     <tr><td style="150px;height:40px;"></td></tr> <!-- 加了一个自己设置的高度的空行 -->
    30     <tr align="center">
    31     <td colspan="2">
    32         <input  style="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;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

    空指针异常

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

  • 相关阅读:
    EF框架开发后台错误问题集合
    如何实践MVP+RxJava+Retrofit(1)
    Android的FixScrollView自定义控件
    那些React-Native踩过的的坑
    P3105 [USACO14OPEN]公平的摄影Fair Photography
    模板合集
    关于最近情况的说明
    落谷P3941 入阵曲
    51nod 1952 栈
    BZOJ 2298: [HAOI2011]problem a
  • 原文地址:https://www.cnblogs.com/wang-jx/p/7994841.html
Copyright © 2011-2022 走看看