软件工程 四则运算(结对编程)
结对编程博客园http://www.cnblogs.com/cairsha
一、设计思想
①设计三个页面,分别为题数设置页面,题目显示页面以及结果显示页面。
②设计题数设置页面。
③从题数设置页面接收题数,作为循环次数。
④利用随机数生成相应符合条件表达式,并存入数据库。
⑤接收网页传来的解答,与数据库中的标准答案比较,得出成绩。
二、源程序代码
主界面:number.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>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>整数二级菜单页面</title>
</head>
<body background="../img/4.jpg">
<form name="form1" method=post action="index.jsp">
<center> <font color=blue >欢迎来到口算练习网</font></center>
<table align="center">
<tr>
<td> <font color=blue >请输入需要生成的题目数量</font></td>
<td><input name="shuliang" id="shuliang" type="text" > </td>
</tr>
</table>
<center><input type="submit" value="开始出题"> </center>
</form>
</body>
</html>
做题界面:index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!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>整数页面</title>
</head>
<body background="../img/5.jpg">
<center><font color=green >做题开始了呦!</font></center>
<%
String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driverStr).newInstance();
String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=source";
String dbusername = "sa";
String dbpassword = "123456";
Connection conn=null;
java.sql.Statement stmt=null;
conn=DriverManager.getConnection(connStr, dbusername, dbpassword);
stmt=conn.createStatement();
int ans=0;
String j=request.getParameter("shuliang");
int sl=Integer.valueOf(j);
String []ss=new String[sl];
String s="";
String s1="-";
String daan[] =new String [sl];
String ans2[]=new String[sl];
int a[]=new int [sl];
int b[]=new int [sl];
int a1[]=new int [sl];
int b1[]=new int [sl];
int a2[]=new int [sl];
int flag=0;
int flag1=0;
int c[]=new int [sl];
for(int i=0;i<sl;)
{
daan[i]="name"+i;
flag1=0;
a[i]=(int)(Math.random()*98+1);
b[i]=(int)(Math.random()*98+1);
c[i]=(int)(Math.floor((Math.random()*5)));
a1[i]=(int)(Math.random()*8+1);
b1[i]=(int)(Math.random()*8+1);
a2[i]=(int)(Math.random()*98+1);
if(c[i]==0){
s="+";
if(ans<100){
ans=a[i]+b[i];
ss[i]=a[i]+s+b[i];
flag1=1;
}
}
else if(c[i]==1){
s="-";
if(a[i]>b[i]){
ans=a[i]-b[i];
ss[i]=a[i]+s+b[i];
}
else if(a[i]<b[i]){
ans=b[i]-a[i];
ss[i]=b[i]+s+a[i];
}
flag1=1;
}
else if(c[i]==2){
s="*";
ans=a1[i]*b1[i];
ss[i]=a1[i]+s+b1[i];
flag1=1;
}
else if(c[i]==3){
s="/";
int sum=a1[i]*b1[i];
ans=b1[i];
ss[i]=sum+s+a1[i];
flag1=1;
}
else{
s="+";
ans=a[i]+b[i]-a2[i];
int sum=a[i]+b[i];
if(ans>0&&sum<100){
flag1=1;
ss[i]=a[i]+s+b[i]+s1+a2[i];
}
}
if(flag1==1){
String sql="INSERT INTO size VALUES ('"+ss[i]+"','"+ans+"')";
stmt.executeUpdate(sql);
ans2[i]=""+ans;
out.print(ss[i]);
%>
<br>
<form name="form2" method="post" action="result.jsp">
<font color=green >请输入答案<input name=<%=daan[i] %> type="text" id="daan"></font>
<br/>
<%
i++;
session.setAttribute("v1", ss);
session.setAttribute("v2", ans2);
}
}
%>
<input type="submit" value="统计结果"> </form>
</body>
</html>
结果界面:result.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>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="../img/7.jpg">
<%
String[] s1= (String[])session.getAttribute("v1");
String[] answer= (String[])session.getAttribute("v2");
String[] daan=new String[s1.length];
int count=0;//正确答案的个数
for(int i=0;i<s1.length;i++)
{
out.print("运算式为:");
out.print(s1[i]+" ");
out.print("您的输入结果为:");
daan[i]=request.getParameter("name"+i);
out.print(daan[i]+" ");
out.print("正确结果为:");
out.print(answer[i]);
if(Integer.parseInt(daan[i])==Integer.parseInt(answer[i]))
{
out.print("恭喜你答对了!");
count++;
}
else
{
out.print("很遗憾,你答错了!");
}
out.print("<br>");
}
out.print("你一共答对的题目数:");
out.print(count);
%>
</body>
</html>
三、编程总结分析
这次结对编程完成的不是很理想。
不足:1.不了解java web需要的各种语言,无法给伙伴相应的帮助指导。
2.个人缺乏合作意识,不懂得如何合作。
3.个人的交流能力差。
收获:1.了解到自己有很多能力上欠缺,知识面窄。
2.在与人交流合作上得到锻炼,了解好的软件工程是一个团队的协作,团队的合作非常重要。
四、PSP0级
1.项目计划总结
时间计划:周三下午1点开始,一直做到结束
内容规划:从下午开始完成整个网页开发
2.时间记录日志
实际时间:下午1点-10点20
内容基本完成
3.缺陷记录日志
①界面不美观,字体大小没有调整的好
②时间设置没有写入

浙公网安备 33010602011771号