• 软件工程个人作业03


      设计思想:根据学到的web应用知识设计了出题界面,连接上数据库,通过对数据库的操作,来进行对运算式的操作,完成实验。

    程序源代码:

    复制代码
    复制代码
     
    1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>四则运算</title> 8 </head> 9 <script> 10 function myFunction() 11 { 12 var x=document.getElementById("demo").value; 13 if(x==""||isNaN(x)) 14 { 15 alert("限制条件输入错误,请重新输入"); 16 } 17 } 18 </script> 19 <body> 20 <form mehod="post" action="ct.jsp"> 21 <center> 22 请输入出题数目:<input id="demo" type="test" name="numbers"><br><br> 23 请输入出题的运算元数最大值:<input id="demo" type="test" name="yuanshu"><br><br> 24 请输入出题中最大数字:<input id="demo" type="test" name="fanwei"><br><hr> 25 是否含有乘除法:<input type="radio" name="chengchu" value=1>是 26 <input type="radio" name="chengchu" value=0>否<br><br> 27 是否含有括号:<input type="radio" name="kuohao" value=1>是 28 <input type="radio" name="kuohao" value=0>否<br><br> 29 是否包含假分数:<input type="radio" name="jiafenshu" value=1>是 30 <input type="radio" name="jiafenshu" value=0>否<br><hr> 31 <input type="submit" onclick="myFunction()" value="出题"> 32 <input type="reset" value="重置"> 33 </center> 34 </form> 35 </body> 36 </html>
    //ct.jsp
    复制代码
    复制代码
      1 <%@ page language="java" contentType="text/html; charset=utf-8"
      2     pageEncoding="utf-8"%>
      3 <%@ page import="java.util.*"%>
      4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      5 <html>
      6 <head>
      7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      8 <title>请回答题目</title>
      9 </head>
     10 <body>
     11 <form action="judge.jsp" method="post">
     12 <%
     13     int numbers=Integer.parseInt(request.getParameter("numbers"));
     14     int yuanshu=Integer.parseInt(request.getParameter("yuanshu"));
     15     int fanwei=Integer.parseInt(request.getParameter("fanwei"));
     16     int chengchu=Integer.parseInt(request.getParameter("chengchu"));
     17     int kuohao=Integer.parseInt(request.getParameter("kuohao"));
     18     int jiafenshu=Integer.parseInt(request.getParameter("jiafenshu"));
     19     int i,n;
     20     int dzs;//定制题的数目;
     21     int js = 1;//题目序号计数;
     22     int szs ;//字符随机产生的个数
     23     int fhs;//符号产生的个数
     24     int[] re = new int[numbers];
     25     int[] result = new int[numbers];
     26     dzs=numbers;
     27     int number[]=new int[10000000];
     28     char fu[]=new char[10000000];
     29     char fu2[]=new char[10000000];
     30     char c[]={'+','-','*','/'};
     31     char d[]={'+','-'};
     32     //生成题目的随机数数组
     33     for(i=0;i<10000000;i++)
     34     {
     35         int x=(int)(Math.random()*fanwei);
     36         number[i]=x;
     37     }
     38     //生成随机符号的数组
     39     for(i=0;i<10000000;i++)
     40     {
     41         Random random=new Random();
     42         int index=random.nextInt(c.length);
     43         int index2=random.nextInt(c.length-2);
     44         char resultChar=c[index];
     45         char resultChar2=d[index2];
     46         fu[i]=resultChar;
     47         fu2[i]=resultChar2;
     48         
     49     }
     50     
     51     //输出题目
     52     if(chengchu==1&&jiafenshu==1&&kuohao==0)
     53     {
     54         for(n=0;n<dzs;n++)
     55         {
     56             Random random1=new Random();//随机运算数字数以及符号数
     57             szs = random1.nextInt(yuanshu)%(yuanshu-2+1)+2;
     58             fhs=szs-1;
     59             out.print(js+". ");
     60             for(i=0;i<szs-1;i++)
     61             {
     62                 Random random2=new Random();
     63                 int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
     64                 out.print(number[op]);
     65                 out.print(fu[op]);
     66             }
     67             Random random2=new Random();
     68             int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
     69             out.print(number[op]);
     70             out.print(" = "+"<br>");
     71             js++;
     72             %>
     73             <input type="text" name=<%=re[n]%>><br>
     74             <%
     75         }
     76     }
     77     if(chengchu==0&&jiafenshu==1&&kuohao==0)
     78     {
     79         for(n=0;n<dzs;n++)
     80         {
     81         Random random1=new Random();//随机运算数字数以及符号数
     82         szs = random1.nextInt(yuanshu)%(yuanshu-2+1)+2;
     83         fhs=szs-1;
     84         out.print(js+". ");
     85         for(i=0;i<szs-1;i++)
     86         {
     87             Random random2=new Random();
     88             int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
     89             out.print(number[op]);
     90             out.print(fu2[op]);
     91         }
     92         Random random2=new Random();
     93         int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
     94         out.print(number[op]);
     95         out.print(" = "+"<br>");
     96         js++;
     97         %>
     98         <input type="text" name=<%=re[n]%>><br>
     99         <%
    100         }
    101     }
    102      if(chengchu==1&&jiafenshu==0&&kuohao==0)
    103         {
    104             for(n=0;n<dzs;n++)
    105             {
    106                 Random random1=new Random();//随机运算数字数以及符号数
    107                 szs = random1.nextInt(yuanshu)%(yuanshu-2+1)+2;
    108                 fhs=szs-1;
    109                 out.print(js+". ");
    110                 for(i=0;i<szs-1;i++)
    111                 {
    112                     Random random2=new Random();
    113                     int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
    114                     out.print(number[op]);
    115                     out.print(fu[op]);
    116                 }
    117                 Random random2=new Random();
    118                 int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
    119                 out.print(number[op]);
    120                 out.print(" = "+"<br>");
    121                 js++;
    122                 %>
    123                 <input type="text" name=<%=re[n]%>><br>
    124                 <%
    125             }
    126         }
    127      if(chengchu==0&&jiafenshu==0&&kuohao==0)
    128         {
    129             for(n=0;n<dzs;n++)
    130             {
    131                 Random random1=new Random();//随机运算数字数以及符号数
    132                 szs = random1.nextInt(yuanshu)%(yuanshu-2+1)+2;
    133                 fhs=szs-1;
    134                 out.print(js+". ");
    135                 for(i=0;i<szs-1;i++)
    136                 {
    137                     Random random2=new Random();
    138                     int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
    139                     out.print(number[op]);
    140                     out.print(fu2[op]);
    141                 }
    142                 Random random2=new Random();
    143                 int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
    144                 out.print(number[op]);
    145                 out.print(" = "+"<br>");
    146                 js++;
    147                 %>
    148                 <input type="text" name=<%=re[n]%>><br>
    149                 <%
    150             }
    151         }
    152     if(chengchu==1&&jiafenshu==1&&kuohao==1)
    153     {
    154         for(n=0;n<dzs;n++)
    155         {
    156         Random random1=new Random();//随机运算数字数以及符号数
    157         szs = random1.nextInt(yuanshu)%(yuanshu-2+1)+2;
    158         fhs=szs-1;
    159         out.print(js+". ");
    160         for(i=0;i<szs-1;i++)
    161         {
    162             Random random2=new Random();
    163             int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
    164             out.print(number[op]);
    165             if(szs>=3 && i==2)
    166             {
    167                 out.print(")");
    168             }
    169         
    170             out.print(fu[op]);
    171             if(szs>=3 && i==0)
    172             {
    173                 out.print("(");
    174             }
    175         
    176         }
    177         Random random2=new Random();
    178         int op=random2.nextInt(1000000);//数组内的随机调用所用的下表随机减少重复
    179         out.print(number[op]);
    180         out.print(" = "+"<br>");
    181         js++;
    182         %>
    183         <input type="text" name=<%=re[n]%>><br>
    184         <%
    185         }
    186     }
    187     session.setAttribute("huida", re);
    188     session.setAttribute("daan",result);
    189     session.setAttribute("timushu",numbers);
    190 %>
    191 <input type="submit" value="提交题目">
    192 <input type="reset" value="清空所答的答案!">
    193 </form>
    194 </body>
    195 </html>
    复制代码
    复制代码

    运行截图:

    编程分析总结:

    这个程序连接上数据库,要求我们要完成对数据的记录,只要把结果写入到数据库中就好,这就要求我们一方面对编程要过关,还有一定的SQL语句能力,总的来说,对于我们二人感觉还是不太好做,

    但是通过这个实验也掌握到了很多的东西。

    总时间记录日志

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    C

    U

    3/13

    14:00

    16:00

     

    120

    听课

    软件工程概论

     

     

     

    19:00

    21:40

     

    160

    两人合作讨论思路

    初步写一写测试语句

     

     

    3/15

    15:00

    17:00

     

    120

    编程序

    四则运算3

     

     

    3/16

    20:00

    22:20

     

    140

    编程序

    四则运算3

     

     

    3/17

    12:20

    13:00

     

    40

    测试程序

    四则运算的报告

     

    估计各个模块花费的时间

    模块

    估计时间

    四则运算功能的完整实现

    2.5小时

    连接数据库

    1小时

    将四则运算写入源代码

    3小时

    程序进行排查错误、测试

    3小时

    实际花费的时间

    模块

    估计时间

    四则运算功能的完整实现

    2小时

    连接数据库

    0.5小时

    将四则运算写入源代码

    3小时

    程序进行排查错误、测试

    4小时

    学到的东西:

    在这个我们两个人一起合作完成这个程序,花费的精力很大,两个人合作可能会出现一些分歧吧,但是通过我们的交流我们解决了这些问题,我们感觉两人合作所体会到的东西是一个人单独去写所不能了解的,另外我们还觉得合作会一定程度上促进程序的完成。

    两人合作的照片:

  • 相关阅读:
    codeforces 707D-(DFS+bitset)
    codeforces Educational Codeforces Round 16-E(DP)
    codeforces 597C (树状数组+DP)
    codeforces #round363 div2.C-Vacations (DP)
    Codeforces Round #365 (Div. 2)-D Mishka and Interesting sum(树状数组)
    codeforces round367 div2.C (DP)
    June Challenge 2018 Division 2
    Codeforces Round #487 (Div. 2)
    Educational Codeforces Round 45 (Rated for Div. 2)
    [Offer收割]编程练习赛63
  • 原文地址:https://www.cnblogs.com/kangzhijia/p/6563507.html
Copyright © 2020-2023  润新知