一代码: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>
NewFile。Jsp:
<%@ 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分钟 |