zoukankan      html  css  js  c++  java
  • 四则运算2

    设计思想:

    先在数据库中存好1000道题,编号序号,题的出法用随机数,出题时判断答案是否符合要求,如果符合则添加到数据库中。然后用户在jsp界面中输入出题的数量,然后随机生成改数量的随机数作为编号,从数据库中调题,分别把数据赋给number对象,显示到jsp界面中。

    源代码:

    package com.jaovo.msg.Dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import com.jaovo.msg.Util.DBUtil;
    import com.jaovo.msg.model.Allnumber;
    
    
    public class NumberDao extends Allnumber {
        public Allnumber load(int id) {
            Connection connection = DBUtil.getConnection();
            //准备sql语句
            String sql = "select * from table_data  where id = ?";
            //创建语句传输对象
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            Allnumber allnumber = null;
            try {
                preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setInt(1, id);
                resultSet = preparedStatement.executeQuery();
                while(resultSet.next()) {
                    allnumber = new Allnumber();
                    allnumber.setFirstnumber(resultSet.getInt("firstnumber"));
                    char fuhao=resultSet.getString("fuhao").charAt(0);
                    allnumber.setFuhao(fuhao);
                    allnumber.setSecondnumber(resultSet.getInt("secondnumber"));
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                DBUtil.close(resultSet);
                DBUtil.close(preparedStatement);
                DBUtil.close(connection);
            }
            return  allnumber;
        }
        public int loadAnswer(int id) {
            Connection connection = DBUtil.getConnection();
            //准备sql语句
            String sql = "select * from table_data  where id = ?";
            //创建语句传输对象
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            Allnumber allnumber = null;int answer = 0;
            try {
                preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setInt(1, id);
                resultSet = preparedStatement.executeQuery();
                while(resultSet.next()) {
                    allnumber = new Allnumber();
                    allnumber.setFirstnumber(resultSet.getInt("firstnumber"));
                    char fuhao=resultSet.getString("fuhao").charAt(0);
                    allnumber.setFuhao(fuhao);
                    allnumber.setSecondnumber(resultSet.getInt("secondnumber"));
                    answer=allnumber.Get_answer(allnumber.getFirstnumber(),allnumber.getSecondnumber(),allnumber.getFuhao());
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally {
                DBUtil.close(resultSet);
                DBUtil.close(preparedStatement);
                DBUtil.close(connection);
            }
            return  answer;
        }
        public void add(Allnumber allnumber)
        {
        //获得连接对象
        Connection connection = DBUtil.getConnection();
        //创建语句传输对象
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
            String sql="insert into table_user(firstnumber,fuhao,secondnumber,answer,state) values (?,?,?,?,?)";
            String fuhao=""+allnumber.getFuhao();
            
            try {
                preparedStatement=connection.prepareStatement(sql);
                preparedStatement.setInt(1, allnumber.getFirstnumber());
                preparedStatement.setString(2, fuhao);
                preparedStatement.setInt(3, allnumber.getSecondnumber());
                
                preparedStatement.setInt(4, allnumber.Get_answer(allnumber.getFirstnumber(), allnumber.getSecondnumber(), allnumber.getFuhao()));
                preparedStatement.executeUpdate();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
            //关闭资源
            DBUtil.close(resultSet);
            DBUtil.close(preparedStatement);
            DBUtil.close(connection);
            }
            
            
        }
        
    
    }
    数据库操作
    package com.jaovo.msg.model;
    
    import java.util.Random;
    
    public class Allnumber {
        private int firstnumber;
        private int secondnumber;
        private char fuhao;
        public void Set_data()
        {
            Random ran= new Random();
            int number1=ran.nextInt(100);setFirstnumber(number1);
            int number2=ran.nextInt(100);
            while(number2==0)number2=ran.nextInt(100);
            setSecondnumber(number2);
            int fuhao=ran.nextInt(4);
            switch(fuhao){
            case(0):setFuhao('+');break;
            case(1):setFuhao('-');break;
            case(2):setFuhao('*');break;
            case(3):setFuhao('/');break;
            }
        }
        public int Get_answer(int firstnumber,int secondnumber,char fuhao)
        {
            int answer=0;
            switch(fuhao){
            case('+'):answer=firstnumber+secondnumber;break;
            case('-'):answer=firstnumber-secondnumber;break;
            case('*'):answer=firstnumber*secondnumber;break;
            case('/'):answer=firstnumber/secondnumber;break;
            }
            return answer;
        }
        public int getFirstnumber() {
            return firstnumber;
        }
        public void setFirstnumber(int firstnumber) {
            this.firstnumber = firstnumber;
        }
        public int getSecondnumber() {
            return secondnumber;
        }
        public void setSecondnumber(int secondnumber) {
            this.secondnumber = secondnumber;
        }
        public char getFuhao() {
            return fuhao;
        }
        public void setFuhao(char fuhao) {
            this.fuhao = fuhao;
        }
    
    }
    Allnumber类
    <%@page import="com.jaovo.msg.Util.EmptyUtil"%>
    <%@ 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="C:Users张强PicturesSaved Pictures/1505615532655.jpg">
           <form action="chuti.jsp" method="get">
           <table align="center" border="1" width="500">
           <tr>
           <div align="center"color="red"  >
           <h3>哒哒哒哒四则运算</h3>
           </div>
           </tr>
           <tr>
                    <td>请输入要做的题数 : </td>
                    <td>
                        <input type="text" name="sum" />
                        <%=EmptyUtil.showError(request,"sum") %>
                    </td>
            </tr>
             <tr>
                    <td>请输入需要几分钟 : </td>
                    <td>
                        <input type="text" name="time" />
                        <%=EmptyUtil.showError(request,"time") %>
                    </td>
            </tr>
            <tr align="center">
                    <td colspan="2">
                        <input type="submit" value="提交" />
                    </td>
                </tr>
                </table>
        </form>
    
    </body>
    </html>
    界面jsp文件
    <%@page import="com.jaovo.msg.Dao.NumberDao"%>
    <%@page import="com.jaovo.msg.Util.EmptyUtil"%>
    <%@page import="java.util.List"%>
    <%@page import="java.util.LinkedList"%>
    <%@page import="java.util.Random"%>
    <%@page import="com.jaovo.msg.model.Allnumber"%>
    <%@ 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="C:Users张强PicturesSaved Pictures/1505615532655.jpg">
    <div align="center"color="red" id="timer"align="center"> 
          <%
        //接收客户端传递过来的参数
        
          String sum = request.getParameter("sum");
          String time = request.getParameter("time");
          boolean validate =EmptyUtil.validateNull(request, new String[]{"sum","time"});
          if(!validate){
      %>
          <jsp:forward page="jiemain.jsp"></jsp:forward>
      <%
          }
          %>
          <form  action="pnaduan.jsp" method="get">
           <table align="center" border="1" width="500">
           <%
           //设置出题数目,并从数据库中抽出题目,赋值给AllNumber
           int newsum=Integer.parseInt(sum);
           int time2=Integer.parseInt(time);
           int t=time2*60000;
           List<Allnumber> AllNumber=new LinkedList<Allnumber>();
           int question=0;
            for(int i=0;i<newsum;i++)
            {
                NumberDao numberdao=new NumberDao();
                Random ran=new Random();
                question=ran.nextInt(1020);
                AllNumber.add(numberdao.load(question));
                session.setAttribute("sum",sum);
                
            }
            session.setAttribute("allnumber",AllNumber);
            %>
            <center>剩余时间:<span id=id2>0</span>秒;</center>
            <script language="javascript">
               var i=<%=time2*60%>;
              function showtime(){
              i=i-1;
              id2.innerHTML=i;
              setTimeout("showtime()",1000);
              if(i==<%=0%>)
                document.forms[0].submit();
            
                }
              showtime();
            </script>
            <%
            
            for(int i=0;i<AllNumber.size();i++)
            {
                Allnumber number=new Allnumber();
                number=AllNumber.get(i);
                out.print(number.getFirstnumber());
                out.print(number.getFuhao());
                out.print(number.getSecondnumber()+"=");
            %>
           <input name="answer"/><br></br>
            <%    
            }
            %>
            <tr align="center">
                    <td colspan="2">
                        <input type="submit" value="提交" />
                    </td>
                </tr>
           </table>
           </form>
          </div>
    </body>
    </html>
    出题jsp文件

    结果截图:

    时间记录日志:

    Personal Software Process Stages

    Time

    计划

     

      · 估计这个任务需要多少时间

     4个小时

    开发

     

      · 需求分析 (包括学习新技术)

     25分钟

      · 生成设计文档

     10分钟

      · 设计复审 (和同事审核设计文档)

     无

      · 代码规范 (为目前的开发制定合适的规范)

     10分钟

      · 具体设计

    20分钟

      · 具体编码

     1小时  

      · 代码复审

     30分钟

      · 测试(自我测试,修改代码,提交修改)

    3小时 

    报告

     

      · 测试报告

     无

      · 计算工作量

     无

      · 事后总结, 并提出过程改进计划

     1小时

    合计

    5小时35分钟

     测试用例

    (1)测试100个题目

    (2)测试1000个题目

    (3)测试10000个题目

    (4)测试100000个题目

    为的是测试出题上限是多少。

    (5)不输入直接点提交测试

    (6)输入负数测试

    (7)输入字符串

    (8)输入特殊字符

    正确性

    用户输入任何都不会导致报错,有足够健壮性

  • 相关阅读:
    宫立秋20201015-3 每周例行报告
    宫立秋 20201008-1 每周例行报告
    分析“中国铁路12306”查询某个火车经过的车站和预计到达时间的request请求和respond响应。
    来自童晶老师的游戏开发课程作业
    飞机大战
    总结
    20201207-总结
    实时时钟
    作业要求 20201126-1 每周例行报告
    要求 20201120-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/zhangliqiangvictory/p/7994051.html
Copyright © 2011-2022 走看看