• 软件工程作业02


    一代码:suanshi.java:

    package p1;

    public class Suanshi {

    final int MAX=1000;

    double[] e= new double[MAX];

    String[] f=new String[MAX];

    private int num;

    public int getNum() {

    return num;

    }

    public void setNum(int num) {

    this.num = num;

    }

    public Suanshi(){}

    public Suanshi(int n)

    {

    creatSuanshi(n);

    this.num=n;

    }

    public void creatSuanshi(int n)

    {

      int a;

      int c;

      int d;

      int h;

      for(int i=0;i<n;i++)

      {

      a=(int)(Math.random()*100+1);

      d=(int)(Math.random()*8+1);

      c=(int)(Math.random()*100+1);

      h=(int)(Math.random()*100+1);

      switch(d){

      case 1:

       if(a+c>100)

       {

       i--;

       break;

       }

       e[i]=a+c;

        f[i]=""+a+"+"+c;

       break;

      case 2:

       if(a-c<0)

       {

       i--;

       break;

       }

       e[i]=a-c;

       f[i]=""+a+"-"+c;

       break;

      case 3:

       while(a*c>100)

       {

        a=(int)(Math.random()*10);

        c=(int)(Math.random()*10);

       }

       e[i]=a*c;

       f[i]=""+a+"*"+c;

       break;

      case 4:

         

       e[i]= (int)(Math.random()*10+1);

       c= (int)(Math.random()*10+1);

       a=(int)(c*e[i]);

       f[i]=""+a+"/"+c;

       if((c==0)&&(a>100))

       {

       i--;

       break;

       }

      case 5:

      if(a+c+h>100)

      {

      i--;

      break;

      }

      e[i]=a+c+h;

      f[i]=""+a+"+"+c+"+"+h;   

       break;

      case 6:

      if(a+c-h>100||a+c-h<0)

      {

      i--;

      break;

      }

      e[i]=a+c-h;

      f[i]=""+a+"+"+c+"-"+h;   

       break;

      case 7:

           if(a-c+h>100||a-c+h<0)

           {

      i--;

      break;

           }

           e[i]=a-c+h;

           f[i]=""+a+"-"+c+"+"+h;   

           break;

      case 8:

           if(a-c-h>100||a-c-h<0)

           {

      i--;

      break;

           }

           e[i]=a-c-h;

           f[i]=""+a+"-"+c+"-"+h;   

           break;

       }

       }

    }

    public String getSuanshi(int i)

    {

    return f[i];

    }

    public double getDaan(int i)

    {

    return e[i];

    }

    }

    add.jsp

    <%@page import="p1.Suanshi"%>

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <body background="C:新建文件夹2.jpg">

    <body onLoad="TimeClose();">

    <script language="javascript">

    var cTime=100;

    function TimeClose()

    {

    window.setTimeout('TimeClose()',1000);

    if(cTime<=0)

    CloseWindow_Click();

    this.ShowTime.innerHTML="倒计时"+cTime+"秒后结束答题";

    cTime--;

    }

    function CloseWindow_Click()

    {

    window.close();

    }

    </script>

    <%

    //获取客户端传递过来的参数

    if("".equals(request.getParameter("number").trim()))

    {

    request.setAttribute("loginError","不能为空");

    %>

    <jsp:forward page="index.jsp"></jsp:forward>

    <%

    }

    else 

    {

    if(Integer.parseInt(request.getParameter("number").trim())==0)

    {

    request.setAttribute("loginError","不能为0");

    %>

    <jsp:forward page="index.jsp"></jsp:forward>

    <%

    }

    }

    int number=Integer.parseInt(request.getParameter("number").trim());

        Suanshi suanshi=new Suanshi(number);

        session.setAttribute("suanshi", suanshi);

    %>

    <center><h1>答题</h1></center>

        <div align="right" id="ShowTime">倒计时100秒后结束答题</div>

        <hr>

        <form action="judge.jsp">

        <table align="center" border="1" width="450">

        <tr>

    <td align="center">题号</td>

    <td align="center">表达式</td>

    <td align="center">你的答案</td>

    </tr>

    <% 

    for(int i=0;i<number;i++)

      {

    %>

    <tr>

    <td align="center">第<%=i+1%>题</td>

    <td align="center"><%=suanshi.getSuanshi(i)%>=</td>

    <td><input type="text" name="daan<%=i%>"></td>

    </tr>

    <% 

     }

    %>

    </table><br>

    <center><input type="submit" value="提交"></center>

    </form>

    </body>

    </html>

    Index.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

      <head> 

       <title>输入数量页面</title>    

      </head>

    <body background="C:新建文件夹5.jpg">

    <br><br><br><br><br><br><br>

    <%

    String loginError = (String)request.getAttribute("loginError");

    if(loginError == null)

    {

    loginError = "";

    }

    %>

    <form action="add.jsp" method="get">

    <center><h1>输入页面</h1>

    数量:<input type="text" name="number"/><%=loginError %><br><br>

    时间一共为<font color="red">100</font>秒<br><br>

    <input type="submit" value="开始答题" /></center>

    </form>

    </body>

    </html>

    Judge.jsp

    <%@page import="p1.Suanshi"%>

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>Insert title here</title>

    </head>

    <body background="C:新建文件夹1.jpg">

    <%

    Suanshi suanshi = (Suanshi)session.getAttribute("suanshi") ;

    int dui=0;

    int cuo=0;

    int meizuo=0;

    int[] flag=new int[suanshi.getNum()];

    String daan[]=new String[suanshi.getNum()];

    double daan1[]=new double[suanshi.getNum()];

    for(int i=0;i<suanshi.getNum();i++)

    {

    daan[i]=request.getParameter("daan"+i).trim();

    if((daan[i]==null)||("".equals(daan[i].trim())))

    {

    flag[i]=0;

    meizuo++;

    }

    else

    {

       daan1[i] =Double.parseDouble(daan[i]);

    if(Math.abs(daan1[i]-suanshi.getDaan(i))<0.01)

    {

    flag[i]=1;

    dui++;

    }

    else

    {

    flag[i]=0;

    cuo++;

    }

    }

    }

    %>

    <body>

    <hr size="1" color="black">

    <center>

    <h1>测试成绩</h1>

    <hr size="1" color="black">

    一共:<%=suanshi.getNum()%>道<br>

    没做的:<%=meizuo %>道<br>

    做错的:<%=cuo %>道<br>

    作对的:<%=dui %>道<br></center>

    <hr width="800" color="red">

    <center><h3>错误题目</h3></center>

    <hr width="800" color="red">

    <table align="center" border="1" width="450">

    <tr>

    <td align="center">题号</td>

    <td align="center">表达式</td>

    <td align="center">正确答案</td>

    <td align="center">你的结果</td>

    </tr>

    <% 

    for(int i=0;i<suanshi.getNum();i++)

    if(flag[i]==0)

      {

    %>

    <tr>

    <td align="center">第<%=i+1%>题</td>

    <td align="center"><%=suanshi.getSuanshi(i)%>=</td>

    <td align="center"><%=suanshi.getDaan(i)%></td>

    <td align="center"><%=daan[i]%></td>

    </tr>

    <% 

     }

    %>

    </table>

    </body>

    </html>

    NewFileJsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <title>倒计时关闭网页</title>

    <head>

    <script language="javascript">

    var cTime=100;

    function TimeClose()

    {

    window.setTimeout('TimeClose()',1000);

    if(cTime<=0)

    CloseWindow_Click();

    this.ShowTime.innerHTML="倒计时"+cTime+"秒后关闭当前窗口";

    cTime--;

    }

    function CloseWindow_Click()

    {

    window.close();

    }

    </script>

    </head>

    <body onLoad="TimeClose();">

    <div id="ShowTime">倒计时100秒后关闭当前窗口</div>

    <input type="button" name="CloseWindow" onClick="CloseWindow_Click();" value="立即关闭当前网页">

    </body>

    </html>

    二结果截图

    PSP2.1

    Personal Software Process Stages

    Planning

    计划

      · Estimate

      · 估计这个任务需要多少时间

    20小时

    Development

    开发

      · Analysis

      · 需求分析 (包括学习新技术)

    5小时

      · Design Spec

      · 生成设计文档

    1小时

      · Design Review

      · 设计复审 (和同事审核设计文档)

    10分钟

      · Coding Standard

      · 代码规范 (为目前的开发制定合适的规范)

      · Design

      · 具体设计

      · Coding

      · 具体编码

    10小时

      · Code Review

      · 代码复审

    1小时

      · Test

      · 测试(自我测试,修改代码,提交修改)

    1小时

    Reporting

    报告

    1小时

      · Test Report

      · 测试报告

      · Size Measurement

      · 计算工作量

      · Postmortem & Process Improvement Plan

      · 事后总结, 并提出过程改进计划

    1小时

    合计20小时10分钟

  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/877612838zzx/p/8301678.html
Copyright © 2020-2023  润新知