软件工程作业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分钟

原文地址:https://www.cnblogs.com/877612838zzx/p/8301678.html