软件工程个人作业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小时

学到的东西:

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

两人合作的照片:

posted on 2017-03-17 07:33  zhijia  阅读(121)  评论(0编辑  收藏  举报

导航