javaweb1(小学生四则运算)
一、设计思想
①设计三个页面,分别为题数设置页面,题目显示页面以及结果显示页面。
②设计题数设置页面。
③从题数设置页面接收题数,作为循环次数。
④利用随机数生成相应符合条件表达式,并存入数据库。
⑤接收网页传来的解答,与数据库中的标准答案比较,得出成绩。
二、源程序代码
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>
三、运行结果截图
四、编程总结分析
这次程序说实话编下来很累很累,因为基本还是一窍不通的情况,所以基本一切的知识都是自己查询加上问人再一个个尝试得出来的。但是编完之后很有成就感,看着自己的网页,虽然还不成熟,但是还是很开心。
五、PSP0级
1.项目计划总结
时间计划:周三下午1点开始,一直做到结束
内容规划:从下午开始完成整个网页开发
2.时间记录日志
实际时间:下午1点-10点20
内容基本完成
3.缺陷记录日志
①界面不美观,字体大小没有调整的好
②时间设置没有写入