软件工程个人作业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 的报告 |
|
|
估计各个模块花费的时间
|
模块 |
估计时间 |
|
四则运算功能的完整实现 |
2.5小时 |
|
连接数据库 |
1小时 |
|
将四则运算写入源代码 |
3小时 |
|
程序进行排查错误、测试 |
3小时 |
实际花费的时间
|
模块 |
估计时间 |
|
四则运算功能的完整实现 |
2小时 |
|
连接数据库 |
0.5小时 |
|
将四则运算写入源代码 |
3小时 |
|
程序进行排查错误、测试 |
4小时 |
学到的东西:
在这个我们两个人一起合作完成这个程序,花费的精力很大,两个人合作可能会出现一些分歧吧,但是通过我们的交流我们解决了这些问题,我们感觉两人合作所体会到的东西是一个人单独去写所不能了解的,另外我们还觉得合作会一定程度上促进程序的完成。
两人合作的照片:


浙公网安备 33010602011771号