四则运算2
2017-12-06 19:08 默默不语 阅读(192) 评论(0) 编辑 收藏 举报1.程序设计思想
⑴ 设计登陆界面,提示用户输入想要生成的题目数量。
⑵ 编写代码实现传递用户输入题目数量的参数,异常判断输入是否异常。
⑶ 实现随机生成算式的功能,并按照用户输入的题目数量生成相应数量的题目。
⑷ 将生成的算式写入数据库中,并将用户做对的题目与做错的题目分开存放。
⑸ 实现计时的功能。
2.程序源代码
登录界面
<%@ 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 xmlns="http://www.w3.org/1999/xhtml"> <head> <title>在线答题系统</title> <style type="text/css"> body {background-image:url(3.jpg);} </style> </head> <body > <form id="form2" name="form2" method="post" action="ZhengShu.jsp"> <div style="text-align:center;color:#F09"> <br> <br> <br> <br> <br> <br> 请输入出题的个数:<input name="amount" type="text" value=""/> </br></br> <input type="submit" value="提交" /> <input type="reset" value="重置" /> </div> </form> </body> </html>
判断输入是否异常
<%@ 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> <% try { int amount=Integer.parseInt(request.getParameter("amount")); session.setAttribute("amount",amount); response.setHeader("refresh","0;url = ZhengShu.jsp"); } catch(Exception e){ %> <script type="text/javascript"> alert("输入错误,点击确定返回重新输入!!!") </script> <% response.setHeader("refresh","0;url = WelcomeInput.jsp"); } %> </body> </html>
随机生成题目
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.Random" import="java.sql.Connection" import="java.sql.DriverManager" import="java.util.Scanner" %> <!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> <style type="text/css"> body { background-image: url(3.jpg); } </style> </head> <body> <% String suanshi[]=new String [10000]; String result1[]=new String[10000]; int num=Integer.parseInt(request.getParameter("amount")); Scanner in = new Scanner(System.in); Random random = new Random(); int count = 0; int result = 0; int a=0,b=0; String fuhao="***"; for(int i=0;i<num;i++) { count=random.nextInt(4)+1;//随机产生乘除法 if(count==1) { //乘法 fuhao="*"; a = random.nextInt(9)+1; b = random.nextInt(9)+1; result = a*b; } else if(count==2) { //除法 fuhao="/"; a = random.nextInt(9)+1; b = random.nextInt(9)+1; a = a*b; result = a/b; } else if(count==3) { //减法 fuhao="-"; a = random.nextInt(99)+1; b = random.nextInt(a); result = a-b; } else{ //加法 fuhao="+"; a = random.nextInt(99); b = random.nextInt(100-a)+1; result = a+b; } suanshi[i]=String.valueOf(a)+fuhao+String.valueOf(b); result1[i]=String.valueOf(result); request.setAttribute("suanshi", suanshi[i]); request.setAttribute("result1",result1[i]); request.setAttribute("i",i); if((i+1)==num) { %> <form id="form2" name="form2" method="post" action="toDatebase.jsp"> <div style="text-align:center"> <br> <% out.print(suanshi[i]+"="); %> <br> 请输入答案:<input name="result" type="text" value=""/><br /><br/> <input name="" type="submit" value="提交" /> </div> </form> <% } else { %> <form id="form2" name="form2" method="post" action="toDatebase.jsp"> <div style="text-align:center"> <br> <% out.print(suanshi[i]+"="); %> <br> 请输入答案:<input name="result" type="text" value=""/><br /><br/> </div> </form> <% } } %> </body> </html>
将算式写入数据库
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.Connection" import="java.sql.DriverManager"%> <!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> <style type="text/css"> body { background-image: url(3.jpg); } </style> </head> <body> <% int tishu1; String zhengque="",error=""; int dui=0,cuo=0; try { Connection con = null; //定义一个MYSQL链接对象 Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","chen123"); //链接本地MYSQL java.sql.Statement stmt; //创建声明 stmt = con.createStatement(); System.out.println("***"); String suanshi=String.valueOf(request.getAttribute("suanshi")); System.out.println(suanshi); String result1=String.valueOf(request.getAttribute("result1")); int i=Integer.parseInt(String.valueOf(request.getAttribute("i"))); tishu1=Integer.parseInt((String.valueOf(request.getAttribute("amount")))); String result=request.getParameter("result"); String sql="INSERT INTO 整数的四则计算 (shizi,result,userresult) VALUES ('"+suanshi+" = "+"','"+result1+"','"+result+"')"; stmt.executeUpdate(sql); if(result.equals(result1)) { zhengque=zhengque+String.valueOf(i+1)+","; dui++; sql="INSERT INTO Grade (zhengque) VALUES ('"+zhengque+"')"; } else { error=error+String.valueOf(i+1)+","; cuo++; sql="INSERT INTO Grade (cuowu) VALUES ('"+error+"')"; } if(i+1==tishu1) { stmt.executeUpdate(sql); %> <form id="form2" name="form2" method="post" action="Welcome.html"> <div style="text-align:center;color:#F00"> <strong> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <% out.print("正确的题目是:"+zhengque+"<br>"+"正确的题目数为:"+dui+"<br>"); out.print("错误的题目是:"+error+"<br>"+"错误的题目数为"+cuo+"<br>"+"点击确定返回主界面"); zhengque=""; error=""; %> <input name="" type="submit" value="确定" /> </strong> </div> </form> <% } else { response.setHeader("refresh","0;url = ZhengShu.jsp"); } } catch (Exception e) { System.out.print("MYSQL ERROR:" + e.getMessage()); } %> </body> </html>
3.运行结果截图
4.编程总结分析
在此程序中,我们对随机生成算式的方法做了一点改动,根据不同的运算生成不同范围的整数,例如:随机为乘法运算,则生成0-9范围内的整数。难点有计时功能的实现,以及将算式写入数据库中,后者因为对数据库操作的不熟练导致。在此程序中,我学会了不用界面中参数的传递使用session或 request的get/set方法。
5.PSP0
时间记录日志
姓名:陈美琪 日期:2017/12/6
任务
时间 |
上课 |
编写代码 |
查找资料 |
日总结 |
|
周二 |
2h |
3h |
2h |
7h |
|
周三 |
|
3h |
1h |
4h |
|
时间记录日志
学生:陈美琪 日期:2017/12/6
教师:王建民 课程:软件工程概论
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
12/5 |
8:00 |
9:50 |
10 |
100 |
上课 |
|
14:00 |
18:00 |
10 |
230 |
编写代码 |
12/6 |
16:00 |
18:00 |
|
120 |
编写代码 |
|
|
|
|
|
|
缺陷记录日志
学生:陈美琪
日期:2017/12/6
教师:王建民
程序号:03
日期 |
编号 |
引入阶段 |
排除阶段 |
修复时间 |
2017/12/6 |
1 |
设计 |
运行 |
1min |
描述:欢迎界面设计成为了表格形式。 |
||||
|
2 |
编码 |
运行 |
30min |
描述:生成的算式不符合要求的范围 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!