博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算2(最终版)java+jps+sqlServer
阅读量:5076 次
发布时间:2019-06-12

本文共 11126 字,大约阅读时间需要 37 分钟。

 

 

 

1,设计思想

(1)java Resources里建立包和类

(2)在类里面写入方法,其中包括生成算式create()和删除算式delete()用来更新数据库中的题目

(3)Show()方法用来随机抽取数据库中的算式并显示

(4)Caculate()方法用来接收参数,验证计算的结果

(5)建立jsp文件,搭建网页的布局,调用java方法

2,源程序代码

 java代码

package com.jaovo.msg.model;public class Equation {   int firstNum;   int secondNum;   String symbol;   String id;   int result;   public String s[]={"+","-","*","/"};   public String getSymbol() {    return symbol;}public void setSymbol(String symbol) {    this.symbol = symbol;}public String getId() {    return id;}public void setId(String id) {    this.id = id;}public int getFirstNum() {    return firstNum;}public void setFirstNum(int firstNum) {    this.firstNum = firstNum;}public int getSecondNum() {    return secondNum;}public void setSecondNum(int secondNum) {    this.secondNum = secondNum;}public int getResult() {    return result;}public void setResult(int result) {    this.result = result;}    }

 

package com.jaovo.msg.dao;import java.sql.*;import java.util.ArrayList;import java.util.List;import java.util.Random;import com.jaovo.msg.Util.DBUtil;import com.jaovo.msg.Util.UserException;import com.jaovo.msg.model.Equation;import java.io.*;public class EquationDaoImpl  {    public void create() {        // TODO Auto-generated method stub        Equation equ=new Equation();        Random ran=new Random();        for(int i=1;i<=1000;i++){            Connection con=DBUtil.getConnection();            equ.setFirstNum(ran.nextInt(0+100));            equ.setSecondNum(ran.nextInt(0+100));            equ.setSymbol(equ.s[ran.nextInt(4)]);            if(i<10)            equ.setId("000"+i);            if(i>=10&&i<100)                equ.setId("00"+i);            if(i>=100&&i<1000)                equ.setId("0"+i);            if(i==1000)                equ.setId("1000");            if(equ.getSymbol()=="+")                equ.setResult(equ.getFirstNum()+equ.getSecondNum());            if(equ.getSymbol()=="-")                equ.setResult(equ.getFirstNum()-equ.getSecondNum());            if(equ.getSymbol()=="*")                equ.setResult(equ.getFirstNum()*equ.getSecondNum());            if(equ.getSymbol()=="/"&&equ.getSecondNum()!=0&&(equ.getFirstNum()%equ.getSecondNum()==0)&&equ.getFirstNum()>=equ.getSecondNum())                equ.setResult(equ.getFirstNum()/equ.getSecondNum());            {                if(equ.getResult()<100&&equ.getResult()>=0){                try{                    String sql="insert into equation(id,firstNum,symbol,secondNum,result)values('"+equ.getId()+"','"+equ.getFirstNum()+"','"+equ.getSymbol()+"','"+equ.getSecondNum()+"','"+equ.getResult()+"')";                    Statement stmt=con.createStatement();                    stmt.executeUpdate(sql);//更新                }catch(SQLException e){                    e.printStackTrace();                }finally {                    DBUtil.close(con);                }            }            else i--;                }         }    }    public void delete(){        Equation equ=new Equation();        Connection con = DBUtil.getConnection();        for(int i=0;i<1000;i++){            equ.setId(i+1+"");            try {                Statement stmt=con.createStatement();                String sql = "delete from equation where id = "+Integer.parseInt(equ.getId());                stmt.executeUpdate(sql);            } catch (SQLException e) {                e.printStackTrace();            }        }    }        public String show(){        Equation equ=new Equation();        Connection con=DBUtil.getConnection();        String str ="";        Random ran=new Random();        Statement stmt;        try {            stmt = con.createStatement();            int id1=ran.nextInt(999)+1;            ResultSet rs=stmt.executeQuery("SELECT * FROM equation where id="+id1);            while(rs.next()){                str=rs.getString("id")+" "+rs.getString("firstNum")+rs.getString("symbol")+rs.getString("secondNum")+"=";            }        } catch (SQLException e) {                        e.printStackTrace();        }                return str;    }    public String show1(String id1){        Equation equ=new Equation();        Connection con=DBUtil.getConnection();        String str ="";        Statement stmt;        try {            stmt = con.createStatement();            ResultSet rs=stmt.executeQuery("SELECT * FROM equation where id="+id1);            while(rs.next()){                str=rs.getString("firstNum")+rs.getString("symbol").trim()+rs.getString("secondNum")+"="+rs.getString("result");            }        } catch (SQLException e) {                        e.printStackTrace();        }//        BufferedWriter bw;//        try {//            bw = new BufferedWriter(new FileWriter("wrong.txt",true));//            bw.write("nlc");//            bw.close();//        } catch (IOException e) {//            // TODO Auto-generated catch block//            e.printStackTrace();//        }        return str;    }    public String caculate(String result,String id){        Equation equ=new Equation();        Connection con=DBUtil.getConnection();        String str = "";        int result1=Integer.parseInt(result);        int id1=Integer.parseInt(id);        Statement stmt;        try {            stmt = con.createStatement();            ResultSet rs=stmt.executeQuery("SELECT * FROM equation where id = "+id1);            while(rs.next()){                if((rs.getInt("result"))==result1)                    {str="正确";}                if((rs.getInt("result"))!=result1)                    str="错误";            }                    } catch (SQLException e) {                        e.printStackTrace();        }        return str;    }}

jsp代码

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
四则运算
<%if(request.getAttribute("error1")!=null){ out.print("
)"); } %> <%if(request.getAttribute("error2")!=null){ out.print("
)"); } %>
欢迎来到四则运算
请输入出题数目
请设置做题时间(秒)
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%> <%@page import="com.jaovo.msg.Util.showAnswer"%> <%@page import="com.jaovo.msg.dao.EquationDaoImpl" %><%          String url = "http://localhost:8080/四则运算2/equation/start.jsp";   //设置跳转的地址        int time=Integer.parseInt(request.getParameter("time"));      int number=Integer.parseInt(request.getParameter("number"));      EquationDaoImpl equ=new EquationDaoImpl();      String time1=request.getParameter("time");      String number1=request.getParameter("number");%>     <%if("".equals(time1.trim())||"".equals(number1.trim())){        request.setAttribute("error1", "题数和时间不能为空");    %>        
<% } %> <% if(time<0||number<0){ request.setAttribute("error2", "请正确输入"); %>
<% } %>四则运算
;url=<%=url %>>

答题剩余时间:

重新设题

<% for(int i=0;i
<% } %>
<%=str.substring(6, str.length()) %>
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    <%@page import="java.util.*" %>    <%@page import="com.jaovo.msg.dao.EquationDaoImpl" %>
计算结果 <% String[] result=request.getParameterValues("result"); String[] id=request.getParameterValues("id"); String[] idNum=new String[100]; int I=0; for(String i:id){ idNum[I]=i; I++; } String[] RCaculate=new String[100]; int x=0; String[] WCaculate=new String[100]; int y=0; String[] KCaculate=new String[100]; int z=0; I=0; EquationDaoImpl equDao=new EquationDaoImpl(); for(String str:result){ if(str == null || "".equals(str.trim())){ KCaculate[z]=equDao.show1(idNum[I]);z++;continue; } if(equDao.caculate(str,idNum[I]).equals("正确")){ RCaculate[x]=equDao.show1(idNum[I]);x++; } if(equDao.caculate(str,idNum[I]).equals("错误")){ WCaculate[y]=equDao.show1(idNum[I]);y++; } I++; } out.println("正确的数量:"+x); %>
<% out.print("错误的题目数量:"+y); %>
<% out.print("未答的题目数量:"+z); %>
更新题目
重新计算
<% for(int i=0;i
<%} %> <% for(int i=0;i
<%} %>
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
错题 <% String[] wrong=request.getParameterValues("wrong"); String[] kong=request.getParameterValues("kong"); out.println("错题"); %>
<% for(String w:wrong){ out.println(w); %>
<% } out.print("未做的题"); %>
<% for(String k:kong){ out.print(k); %>
<% } out.print("那你是很棒棒"); %> 再来一次
<%@page import="com.jaovo.msg.dao.EquationDaoImpl" %><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%> 
创建题目

更新题目库成功

<% EquationDaoImpl equDao=new EquationDaoImpl(); equDao.delete(); equDao.create(); %>

 

3,运行结果截图

 

 

4,编程总结分析

在jsp页面中尽量少使用java代码,养成良好习惯,应该在java中写入方法,然后调用即可

在定义变量和方法时,应该根据具体情况来起名,增减参数,定义返回值类型

5,时间记录日志

日期 开始时间 结束时间 中断时间 净时 活动 备注 C U
12/1 9:00 15:40 2个小时 4小时40分钟 编程序 四则运算,休息    
12/2 9:00 17:00 4个小时 4小时 编程序 四则运算,休息    
12/3 9:00 11:00 0 2小时 编程序 四则运算    
12/4 16:00 17:00 0 2小时 编程序 四则运算    
12/5 8:00 12:00 0 4小时 上课 软件工程概论,数据结构    

 

Personal Software Process Stages   time
计划  
估计这个任务需要的时间 3天
开发  
需求分析(包括学习新技术) 传参数(结果集)
生成设计文档
设计复审(和同事审核设计文档)
代码规范(为目前的开发制定合适的规范) 首行缩进,大括号另起一行
具体设计 在jsp中调用java方法,将结果在页面上显示
具体编码 参考上面(两天)
代码复审 每次修改后都会检查
测试(自我测试,修改代码,提交修改) 半天
报告  
测试报告 1个小时
计算工作量 3天
事后总结,并提出过程改进计划 无法记录错题,改进计划:将错题保存在数据库中
合计 3天

10个测试用例

1,能出题   2,能倒计时 3,能判断错对 4,能将错题显示出来 5,能判断是否有空题 6,能更新题目(数据库)7,能重新出题 8,能判断不能输入负数 

9,能出多道题目10,能重新计算错题

进过验证以上功能都能实现

学到了要灵活运用各种自定义的方法,学会给jsp页面布局,能灵活运用数据库

转载于:https://www.cnblogs.com/news1997/p/7994302.html

你可能感兴趣的文章
C#二维码与条形码的生成
查看>>
【leetcode】Container With Most Water
查看>>
如何熟悉一个项目?
查看>>
用户类热门排行榜特效
查看>>
Java基础学习,一些零散的笔记之Java的包
查看>>
Android工作学习第5天之TabHost实现菜单栏底部显示
查看>>
小巧精致的ASP.Net分页控件
查看>>
WPF/MVVM 快速开始指南(译)(转)
查看>>
Angular1.0路由的Hashbang和HTML5模式
查看>>
uboot配置过程详解1
查看>>
ajax复选框的选中添加
查看>>
万门大学-人工智能、大数据与复杂系统-01.复杂系统
查看>>
《机器学习基石》---线性回归
查看>>
js实现滑动返回顶部
查看>>
BZOJ 1208 [HNOI2004]宠物收养所:Splay(伸展树)
查看>>
vm setup灰色解决办法
查看>>
机器学习基石笔记14——机器可以怎样学得更好(2)
查看>>
jquery radio,checkbox,select相关【转】
查看>>
Software--Spring Boot--Contact 项目初期
查看>>
什么是位、字节、字、KB、MB?
查看>>