四则运算网页版

一.设计思想:

  1)写出一个菜单界面,有两个选项一个是分数,一个是整数。

     2)而这两个标签后面则是转向其更详细的菜单,题目数量,有无括号,运算的项数等等详细功能,再点击这两个按钮之后,就会跳转过去。 

     3)当选择整数运算时,显示出需要的菜单,输入完要求之后,跳转到生成算式的JSP文件,在此文件中首先是用request方法来获取上个页

面中你所需要的功能,然后再强制类型转化来为下面使用,通过随机数生成,分别生成参与运算的数和符号,0代表加法1代表减法3代表乘法4代

表除法。选择有负数和有余数式子生成,选择没有负数或者没有余数的情况下,就需要将随机的数进行运算,符合条件flag=1,不符合条件的flag

=0。定义一个数来表示他的结果,在每个运算符号的if语句中,将结果运算出来,在整个式子都通过前面的用户需求时,将运算数和符号连成一个

字符串,然后再进行查重,如果没有重复则flag1=1,如果有重复flag1=0。当全部满足条件时,在页面中显示出来,并且在式子右侧写一个文本

框用来填写结果。然后设置一个统计按钮,填完结果之后,统计的答题情况,我们是用session方法来保存式子数组和答案数组的。然后跳转到核对界

面进行核对,如果对了提示回答正确,count++,如果错误提示错误。上面是两个数的运算,多个数的运算则是用的先生成两个数的运算,然后在随

机是否生成括号,如果生成然后在随机括号的位置是在这一组上的前面加括号,还是后面加括号。上面就是整数部分的运算。

    4)分数部分的运算和整数部分差不多,首先随机生成四个数两个构成一个分数,然后再定义个随机数来表示运算符。然后,分子分母进行比较

,是否是真分数。如果不是此次循环结束,i--重新开始。需要满足的条件基本上和整数差不多,不过需要在jsp中写一个求最大公约数的方法,来进行

化简,在运算的时候先运算然后进行化简。最后数字和符号组成字符串,结果字符串。通过session方法进行保存。跳到核对界面进行核对。多个分数

运算有无括号和整数的原理也一致。最后来说说数据库,在jsp中连接数据库的话和在.java文件中连接有所不同,在加载驱动时,加载驱动语句右面要

加.Instance();才能加载成功。然后在情况下,所满足条件的生成式子。通过SQL增加语句进行写入数据库。

二.程序源代码:

  开始界面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>菜单页面</title></head>
<body ><div align="center"><br/><br/><br/><br/><br/><br/><a href="zs.jsp"  >●整数运算</a><br/><br/><a href="fens.jsp">⊙分数运算</a></div>
</body>
</html>

整数菜单

 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 <body>
10     <form name="form1" method=post action="index.jsp">
11     <center> 整数四则运算</center>
12     <table align="center">
13     <tr>
14     <td>请输入需要生成的题目数量</td>
15     <td><input name="shuliang" id="shuliang" type="text" > </td>
16     </tr>
17     <tr>
18     <td>
19          请输入最小值
20     </td>
21         <td>
22         <input name="zuixiao" id="zuixiao" type="text">
23         </td>
24     </tr>
25      <tr>
26      <td>请输入最大值</td>
27      <td> <input name="zuida" id="zuida" type="text"> </td>
28      </tr>
29      <tr>
30      <td> 请选择是否需要括号1有2没有</td>
31      <td> <input name="kuohao" id="kuohao" type="text"> </td>
32      </tr>
33      <tr>
34       <td>请选择生成算式的位数1两位数2多位数</td>
35       <td><input name="weishu" id="weishu" type="text"> </td>
36      </tr>
37      <tr>
38       <td>加减有无负数</td>
39       <td><input name="fs" id="fs" type="text"> </td>
40       </tr>
41       <tr>
42       <td> 除法有无余数</td>
43       <td><input name="ys" id="ys"type="text"></td>
44       </tr>
45     </table>
46         <center><input type="submit" value="开始出题"> </center>
47     </form>
48 </body>
49 </html>

整数试题和填写

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!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>
<%String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";Class.forName(driverStr).newInstance();String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=Webys";String dbusername = "sa";String dbpassword = "123456";Connection conn=null;java.sql.Statement stmt=null;conn=DriverManager.getConnection(connStr, dbusername, dbpassword);stmt=conn.createStatement();String weishu=request.getParameter("weishu");String kuohao=request.getParameter("kuohao");String zuix=request.getParameter("zuixiao");String zuid=request.getParameter("zuida");String fss=request.getParameter("fs");String yss=request.getParameter("ys");if(Integer.parseInt(weishu)==1){int ans=0;String j=request.getParameter("shuliang");int sl=Integer.valueOf(j);int litt=Integer.valueOf(zuix);int bi=Integer.valueOf(zuid);String []ss=new String[sl];String s="";String daan[] =new String [sl];String ans2[]=new String[sl];int a[]=new int [sl];int b[]=new int [sl];int flag=0;int flag1=0;   int c[]=new int [sl];int d[]=new int[sl];int e[]=new int[sl];int fs=Integer.valueOf(fss);int ys=Integer.valueOf(yss);for(int i=0;i<sl;i++){daan[i]="name"+i;flag1=0;a[i]=(int)(Math.random()*(bi-litt)+1+litt);b[i]=(int)(Math.random()*(bi-litt)+1+litt);c[i]=(int)(Math.floor((Math.random()*4)));if(fs==1){flag=0;}if(fs==2){if(c[i]==1){if((a[i]-b[i])>=0){flag=0;}else{flag=1;}}}if(c[i]==0){s=" + ";ans=a[i]+b[i];}if(c[i]==1){s=" - ";ans=a[i]-b[i];}if(c[i]==2){s=" * ";ans=a[i]*b[i];}if(c[i]==3){if(b[i]!=0){if(ys==1){s=" ÷ ";ans=a[i]/b[i];}if(ys==2){if((a[i]%b[i])==0){s=" ÷ ";ans=a[i]/b[i];}else{flag=1;}}}elseflag=1;}ss[i]=a[i]+s+b[i];for(int i1=0;i1<i;i1++)   //查重{if((a[i1]==a[i])&&(b[i1]==b[i])&&(c[i1]==c[i]))flag1=1;           if((a[i1]==b[i])&&(b[i1]==a[i])&&(c[i1]==0)&&(c[i]==0))flag1=1;if((a[i1]==b[i])&&(b[i1]==a[i])&&(c[i1]==2)&&(c[i]==2))flag1=1;}if((flag==0)&&(flag1==0))  //输出{String sql="INSERT INTO size VALUES ('"+ss[i]+"','"+ans+"')";stmt.executeUpdate(sql);ans2[i]=""+ans;out.print(ss[i]);%><br><form name="form2" method="post" action="zscheck2.jsp">请输入答案<input name=<%=daan[i] %> type="text" id="daan"><br/>                <%  }else{i--;}}session.setAttribute("v1", ss);session.setAttribute("v2", ans2);%><input type="submit" value="统计结果"> </form><%}if(Integer.parseInt(weishu)==2){String j=request.getParameter("shuliang");int sl=Integer.valueOf(j);int litt=Integer.valueOf(zuix);int bi=Integer.valueOf(zuid);String []ss=new String[sl];String s="";String daan[] =new String [sl];int a[]=new int [sl];int b[]=new int [sl];int flag=0;int flag1=0;String [] ans2=new String[sl];int ans=0;int c[]=new int [sl];int d[]=new int[sl];int e[]=new int[sl];int fs=Integer.valueOf(fss);int ys=Integer.valueOf(yss);int y=0;int y1=0;int y2=0;String j1=request.getParameter("kuohao");int y3=Integer.valueOf(j1);for(int i=0;i<sl;i++){daan[i]="name"+i;int c1 []=new int [20000];flag1=0;y=(int )(Math.random()*4+3);//生成数的个数y1=(int )(Math.random()*2);//有无括号y2=(int )(Math.random()*2);//前后a[i]=(int)(Math.random()*(bi-litt)+1+litt);b[i]=(int)(Math.random()*(bi-litt)+1+litt);c[i]=(int)(Math.floor((Math.random()*4)));if(fs==1){flag=0;}if(fs==2)// 没有负数{if(c[i]==1){if((a[i]-b[i])>=0){flag=0;}else{flag=1;}}}if(c[i]==0){s=" + ";ans=a[i]+b[i];}if(c[i]==1){s=" - ";ans=a[i]-b[i];}if(c[i]==2){s=" * ";ans=a[i]*b[i];}if(c[i]==3){if(b[i]!=0){if(ys==1){s=" ÷ ";ans=a[i]/b[i];}if(ys==2){if((a[i]%b[i])==0){s=" ÷ ";ans=a[i]/b[i];}elseflag=1;}}elseflag=1;}ss[i]=a[i]+s+b[i];if(y3==1)//有括号生成{for(int  r=0;r<(y-2);r++){y1=(int )(Math.random()*2);//有无括号y2=(int )(Math.random()*2);//前后d[r]=(int)(Math.random()*(bi-litt)+1+litt);c1[i]=(int )(Math.random()*4);if(c1[i]==0){s=" + ";ans=ans+d[r];}if(c1[i]==1){s=" - ";ans=ans-d[r];}if(c1[i]==2){s=" * ";ans=ans*d[r];}if(c1[i]==3){if(b[i]!=0){if(ys==1){s=" ÷ ";ans=ans/d[r];}if(ys==2){if((a[i]%b[i])==0){s=" ÷ ";ans=ans/d[r];}elseflag=1;}}elseflag=1;}if(y1==1) //随机数生成没有括号情况{if(y2==0) //加在后面{ss[i]=ss[i]+s+d[r];}if(y2==1)  //加在前面{ss[i]=d[r]+s+ss[i];}}if(y1==0) //随机数生成了括号{if(y2==0)  //加在后面{ss[i]="("+ss[i]+")"+s+d[r];}if(y2==1)  //括号加在前边{ss[i]=d[r]+s+"("+ss[i]+")";}}for(int i2=0;i2<i;i2++){if(ss[i2]==ss[i])flag1=1;elseflag1=0;}}}if(y3==2){for(int  r=0;r<(y-2);r++){y1=(int)(Math.random()*2);//有无括号y2=(int)(Math.random()*2);//前后d[r]=(int)(Math.random()*(bi-litt)+1+litt);c1[i]=(int)(Math.random()*4);if(c1[i]==0){s=" + ";ans=ans+d[r];}if(c1[i]==1){s=" - ";ans=ans-d[r];}if(c1[i]==2){s=" * ";ans=ans*d[r];}if(c1[i]==3){if(b[i]!=0){if(ys==1){s=" ÷ ";ans=ans/d[r];}if(ys==2){if((a[i]%b[i])==0){s=" ÷ ";ans=ans/d[r];}elseflag=1;}}elseflag=1;}if(y1==1) //没有括号{if(y2==0) //加在后面{ss[i]=ss[i]+s+d[r];}if(y2==1)  {ss[i]=d[r]+s+ss[i];}}for(int i2=0;i2<i;i2++){if(ss[i2]==ss[i])flag1=1;elseflag1=0;}} //小for 循环}if((flag==0)&&(flag1==0)){String sql="INSERT INTO size VALUES ('"+ss[i]+"','"+ans+"')";stmt.executeUpdate(sql);ans2[i]=""+ans;out.print(ss[i]+" "); %><br><form name="form2" method="post" action="zscheck2.jsp">请输入答案<input name=<%=daan[i] %> type="text" id="daan"><br/>             <%}elsei--;}session.setAttribute("v1", ss);session.setAttribute("v2", ans2);%><input type="submit" value="统计结果"> </form><%}%></body>
</html>

结果核查

<%@ 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>Insert title here</title>
</head>
<body><%String[] s1= (String[])session.getAttribute("v1");String[] answer= (String[])session.getAttribute("v2");String[] daan=new String[s1.length];int count=0;//正确答案的个数for(int i=0;i<s1.length;i++){out.print("运算式为:");out.print(s1[i]+"  ");out.print("您的输入结果为:");daan[i]=request.getParameter("name"+i);out.print(daan[i]+"   ");out.print("正确结果为:");out.print(answer[i]);if(Integer.parseInt(daan[i])==Integer.parseInt(answer[i])){out.print("恭喜你答对了!");count++;}else{out.print("很遗憾,你答错了!");}out.print("<br>");}out.print("你一共答对的题目数:");out.print(count);%>
</body>
</html>

<%@ 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 ><form name="form3" method=post action="fes.jsp"><center> 整数四则运算</center><table align="center"><tr><td>请输入需要生成的题目数量</td><td><input name="shuliang" id="shuliang" type="text" > </td></tr><tr><td>请输入分数的最大值</td><td> <input name="zuida" id="zuida" type="text"> </td></tr><tr><td> 请选择是否需要括号1有2没有</td><td> <input name="kuohao" id="kuohao" type="text"> </td></tr><tr><td>请选择生成算式的位数1两位数2多位数</td><td><input name="weishu" id="weishu" type="text"> </td></tr><tr><td>加减有无负数</td><td><input name="fs" id="fs" type="text"> </td></tr><tr><td> 除法有无余数</td><td><input name="ys" id="ys"type="text"></td></tr></table><center><input type="submit" value="开始出题"> </center></form>
</body>
</html>

分数出题:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!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>Insert title here</title>
</head>
<body>
<%!class gg{int gongbei(int x,int y){int z;for(z=x;;z++){if(z%x==0&&z%y==0)break;}return z;}int gongyue(int x,int y){int z;for(z=x;z>0;z--){if(x%z==0&&y%z==0)break;}return z;}}
%>
<%String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";Class.forName(driverStr).newInstance();String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=Webys";String dbusername = "sa";String dbpassword = "123456";Connection conn=null;java.sql.Statement stmt=null;conn=DriverManager.getConnection(connStr, dbusername, dbpassword);stmt=conn.createStatement();String weishu=request.getParameter("weishu");String kuohao=request.getParameter("kuohao");String zuid=request.getParameter("zuida");String fss=request.getParameter("fs");String yss=request.getParameter("ys");gg g=new gg();if(Integer.parseInt(weishu)==1){int fenzi=0;int fenmu=0;int huajian=0;String j=request.getParameter("shuliang");int sl=Integer.valueOf(j);int bi=Integer.valueOf(zuid);String []ss=new String[sl];String daan[] =new String [sl];String jj[]=new String[sl];String s="";int ans=0;String ans1[]=new String[sl];int a[]=new int [sl];int a1[]=new int[sl];int b[]=new int [sl];int b1[]=new int[sl];int flag=0;int flag1=0;int flag2=0;int flag3=0;int c[]=new int [sl];int d[]=new int[sl];int d1[]=new int[sl];int e[]=new int[sl];int fs=Integer.valueOf(fss);int ys=Integer.valueOf(yss);for(int i=0;i<sl;i++){daan[i]="name"+i;flag1=0;flag2=0;a[i]=(int)(Math.random()*(bi-1-1)+1);a1[i]=(int)(Math.random()*(bi-1)+1);b[i]=(int)(Math.random()*(bi-1-1)+1);b1[i]=(int)(Math.random()*(bi-1)+1);c[i]=(int)(Math.random()*4);if((a[i]>=a1[i])||(b[i]>=b1[i])) //判断是否为真分数{flag2=1;}else   //是真分数继续进行{flag2=0;}if(fs==1)  //有负数{flag=0;}if(fs==2)  //没有负数{if(c[i]==1){if((a[i]*b1[i]-a1[i]*b[i])>=0){flag=0;}else{flag=1;}}}if(c[i]==0){s=" + ";fenzi=(a[i]*b1[i])+(a1[i]*b[i]);fenmu=a1[i]*b1[i];huajian=g.gongyue(fenzi, fenmu);int o=fenzi/huajian;int p=fenmu/huajian;if(o<p){jj[i]=o+"/"+p;}if((o>p)&&(o%p!=0)){int you=o/p;o=o-p*you;jj[i]=you+"|"+o+"/"+p;}if((o>p)&&(o%p==0)){int you=o/p;jj[i]=""+you;}}if(c[i]==1){s=" - ";fenzi=(a[i]*b1[i])-(a1[i]*b[i]);fenmu=a1[i]*b1[i];if(fenzi>0){huajian=g.gongyue(fenzi, fenmu);int o=fenzi/huajian;int p=fenmu/huajian;if(o<p){jj[i]=o+"/"+p;}if((o>p)&&(o%p!=0)){int you=o%p;o=o-p*you;jj[i]=you+"|"+o+"/"+p;}if((o>p)&&(o%p==0)){int you=o%p;jj[i]=""+you;}}if(fenzi<0){int t=0-fenzi;huajian=g.gongyue(t, fenmu);int o=fenzi/huajian;int p=fenmu/huajian;if(o<p){jj[i]=o+"/"+p;}if((o>p)&&(o%p!=0)){int you=o/p;o=o-p*you;jj[i]=you+"|"+o+"/"+p;}if((o>p)&&(o%p==0)){int you=o/p;jj[i]=""+you;}}if(fenzi==0){jj[i]=""+0;}}if(c[i]==2){s=" * ";fenzi=a[i]*b[i];fenmu=a1[i]*b1[i];huajian=g.gongyue(fenzi, fenmu);int o=fenzi/huajian;int p=fenmu/huajian;if(o<p){jj[i]=o+"/"+p;}if((o>p)&&(o%p!=0)){int you=o/p;o=o-p*you;jj[i]=you+"|"+o+"/"+p;}if((o>p)&&(o%p==0)){int you=o/p;jj[i]=""+you;}}if(c[i]==3){if(ys==1){s=" ÷ ";fenzi=a[i]*b1[i];fenmu=a1[i]*b[i];huajian=g.gongyue(fenzi,fenmu);int o=fenzi/huajian;int p=fenmu/huajian;if(o<p){jj[i]=o+"/"+p;}if((o>p)&&(o%p!=0)){int you=o/p;o=o-p*you;jj[i]=you+"|"+o+"/"+p;}if((o>p)&&(o%p==0)){int you=o/p;jj[i]=""+you;}}if(ys==2){if(((a[i]*b1[i])%(a1[i]*b[i]))==0){s=" ÷ ";fenzi=a[i]*b1[i];fenmu=a1[i]*b[i];huajian=g.gongyue(fenzi,fenmu);int o=fenzi/huajian;int p=fenmu/huajian;if(o<p){jj[i]=o+"/"+p;}if((o>p)&&(o%p!=0)){int you=o%p;o=o-p*you;jj[i]=you+"|"+o+"/"+p;}if((o>p)&&(o%p==0)){int you=o%p;jj[i]=you+"";}}else{flag=1;}}}int y=g.gongyue(a[i],a1[i]);int y1=g.gongyue(b[i],b1[i]);a[i]=a[i]/y;a1[i]=a1[i]/y;b[i]=b[i]/y1;b1[i]=b1[i]/y1;ss[i]=a[i]+"/"+a1[i]+s+b[i]+"/"+b1[i];for(int i1=0;i1<i;i1++)   //查重{if((a[i1]==a[i])&&(a1[i1]==a1[i])&&(b[i1]==b[i])&&(b1[i]==b1[i1])&&(c[i1]==c[i]))flag1=1;           if((a[i1]==b[i])&&(b[i1]==a[i])&&(c[i1]==0)&&(c[i]==0)&&(a1[i1]==b1[i])&&(b1[i1]==a1[i]))flag1=1;if((a[i1]==b[i])&&(b[i1]==a[i])&&(c[i1]==2)&&(c[i]==2)&&(a1[i1]==b1[i])&&(b1[i1]==a1[i]))flag1=1;}if((flag==0)&&(flag1==0)&&(flag2==0))  //输出{String sql="INSERT INTO size VALUES ('"+ss[i]+"','"+jj[i]+"')";            stmt.executeUpdate(sql);ans1[i]=jj[i];out.print(ss[i]);%><br><form  name="form4" method="post" action="fscheck.jsp">请输入答案<input name=<%=daan[i] %> type="text" id="daan"><br/>       <%       }else{i--;}}session.setAttribute("v1", ss);session.setAttribute("v2", ans1);%><input type="submit" value="统计结果"> </form><%}if(Integer.parseInt(weishu)==2){String j=request.getParameter("shuliang");int sl=Integer.valueOf(j);int bi=Integer.valueOf(zuid);String []ss=new String[sl];String daan[] =new String [sl];String s="";int ans=0;String ans1[]=new String[sl];int a[]=new int [sl];int a1[]=new int[sl];int b[]=new int [sl];int b1[]=new int[sl];int flag=0;int flag1=0;int flag2=0;int flag3=0;int c[]=new int [sl];int d[]=new int[sl];int d1[]=new int[sl];int e[]=new int[sl];int fs=Integer.valueOf(fss);int ys=Integer.valueOf(yss);int y=0;int y1=0;int y2=0;for(int i=0;i<sl;i++){String j1=request.getParameter("kuohao");int y3=Integer.valueOf(j1);int c1 []=new int [20000];flag1=0;flag2=0;y=(int)(Math.random()*4+3);//生成数的个数y1=(int)(Math.random()*2);//有无括号y2=(int)(Math.random()*2);//前后a[i]=(int)(Math.random()*(bi-1-1)+1);a1[i]=(int)(Math.random()*(bi-1)+1);b[i]=(int)(Math.random()*(bi-1-1)+1);b1[i]=(int)(Math.random()*(bi-1)+1);c[i]=(int)(Math.random()*4);if((a[i]>=a1[i])||(b[i]>=b1[i])) //判断是否为真分数{flag2=1;}else   //是真分数继续进行{flag2=0;}if(fs==1){flag=0;}if(fs==2)// 没有负数{if(c[i]==1){if((a[i]*b1[i]-a1[i]*b[i])>=0){flag=0;}else{flag=1;}}}if(c[i]==0){s=" + ";}if(c[i]==1){s=" - ";}if(c[i]==2){s=" * ";}if(c[i]==3){if(ys==1){s=" ÷ ";}if(ys==2){if(((a[i]*b1[i])%(a1[i]*b[i]))==0){s=" ÷ ";}else{flag=1;}}}int z=g.gongyue(a[i],a1[i]);int z1=g.gongyue(b[i],b1[i]);a[i]=a[i]/z;a1[i]=a1[i]/z;b[i]=b[i]/z1;b1[i]=b1[i]/z1;c1[i]=(int)(Math.random()*4);ss[i]=a[i]+"/"+a1[i]+s+b[i]+"/"+b1[i];if(y3==1)//有括号生成{for(int  r=0;r<(y-2);r++){y1=(int)(Math.random()*2);//有无括号y2=(int)(Math.random()*2);//前后d[r]=(int)(Math.random()*(bi-1-1)+1);d1[r]=(int)(Math.random()*(bi-1)+1);int z3=g.gongyue(d[r],d1[r]);d[r]=d[r]/z3;d1[r]=d1[r]/z3;if(d[r]>=d1[r]){flag3=1;}else{flag3=0;}if(c1[i]==0){s=" + ";}if(c1[i]==1){s=" - ";}if(c1[i]==2){s=" * ";}if(c1[i]==3){if(ys==1){s=" ÷ ";}if(ys==2){if(y2==0){if((a[i]*b1[i])%(a1[i]*b[i])==0){s=" ÷ ";}elseflag=1;}}}if(y1==0) //随机数生成没有括号情况{if((y2==0)&&(flag3==0)) //加在后面{ss[i]=ss[i]+s+d[r]+"/"+d1[r];}if((y2==1)&&(flag3==0))  //加在前面{ss[i]=d[r]+"/"+d1[r]+s+ss[i];}}if(y1==1) //随机数生成了括号{if((y2==0)&&(flag3==0))  //加在后面{ss[i]="("+ss[i]+")"+s+d[r]+"/"+d1[r];}if((y2==1)&&(flag3==0))  //括号加在前边{ss[i]=d[r]+"/"+d1[r]+s+"("+ss[i]+")";}}for(int i2=0;i2<i;i2++){if(ss[i2]==ss[i])flag1=1;elseflag1=0;}if(flag3!=0)r--;}}if(y3==2)  //没有括号{for(int  r=0;r<(y-2);r++){c1[i]=(int)(Math.random()*4);y1=(int)(Math.random()*2);//有无括号y2=(int)(Math.random()*2);//前后d[r]=(int)(Math.random()*(bi-1-1)+1);d1[r]=(int)(Math.random()*(bi-1)+1);int z4=g.gongyue(d[r],d1[r]);d[r]=d[r]/z4;d1[r]=d1[r]/z4;if(d[r]>=d1[r]){flag3=1;}else{flag3=0;}if(c1[i]==0){s=" + ";}if(c1[i]==1){s=" - ";}if(c1[i]==2){s=" * ";}if(c1[i]==3){if(ys==1){s=" ÷ ";}if(ys==2){if((a[i]*b1[i])%(a1[i]*b[i])==0){s=" ÷ ";}elseflag=1;}}if(y1==1) //没有括号{if((y2==0)&&(flag3==0)) //加在后面{ss[i]=ss[i]+s+d[r]+"/"+d1[r];}if((y2==1)&&(flag3==0)){ss[i]=d[r]+"/"+d1[r]+s+ss[i];}}for(int i2=0;i2<i;i2++){if(ss[i2]==ss[i])flag1=1;elseflag1=0;}if(flag3!=0)r--;} //小for 循环}if((flag==0)&&(flag1==0)&&(flag2==0)&&(flag3==0)){out.print(ss[i]);%><br><form  name="form5" method="post" action="fscheck.jsp">请输入答案<input name=<%=daan[i] %> type="text" id="daan"><br/>       <%      }elsei--;}session.setAttribute("v1", ss);session.setAttribute("v2", ans1);%><input type="submit" value="统计结果"> </form><%}
%>
</body>
</html>

分数核查:

<%@ 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>Insert title here</title>
</head>
<body>
<%String[] s1= (String[])session.getAttribute("v1");String[] answer= (String[])session.getAttribute("v2");String[] daan=new String[s1.length];int count=0;//正确答案的个数for(int i=0;i<s1.length;i++){out.print("运算式为:");out.print(s1[i]+"  ");out.print("您的输入结果为:");daan[i]=request.getParameter("name"+i);out.print(daan[i]+"   ");out.print("正确结果为:");out.print(answer[i]);if(daan[i].equals(answer[i])){out.print("恭喜你答对了!");count++;}else{out.print("很遗憾,你答错了!");}out.print("<br>");}out.print("你一共答对的题目数:");out.print(count);%>
</body>
</html>

 三.运行结果截图:

  

4遇到的问题

在编程当中,遇到了很多麻烦,下面来阐述一下。首先,遇到的是怎么将菜单填入的值让自己和java里面用上,后来通过request方法来解决这个问题。还有就是随机数的生成,之前一直用的是Random类来实现随机数的生成,但是在JSP中好像不能直接那么用了,最后用的(int)(Math.random*n)方法。通过定义一个字符串数字,解决了文本框中输入值,和正确结果比对的问题。在有数据库连接方面,如果想在JSP中进行数据库的连接,在java中的驱语句后面还要加上.Instance()才能加载上。而且的Jdbc还要放在lib文件夹下。另外还有一个问题就是,在分数的情况下,执行SQL语句时,例如用1'1/5表示一又五分之时,会有二义性,最后将'改为|.

转载于:https://www.cnblogs.com/ever1961211/p/6664742.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式交换机配置备份和还原

1.备份和还原vSphere Distributed Switch配置 1.1导出 vSphere Distributed Switch 配置 可以将 vSphere Distributed Switch 和分布式端口组配置导出到某一文件。该文件保留有效的网络配置&#xff0c;使这些配置能够传输至其他环境。 步骤&#xff1a; 1) 在 vSphere Web Cli…

华为鸿蒙系统好在哪,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪

在华为开发者大会上&#xff0c;华为消费业务CEO 余承东&#xff0c;正式发布鸿蒙OS2.0&#xff0c;并宣布华为鸿蒙OS将全面启用全场景生态&#xff0c;并将于2020年12月发布手机版。余承东还表示&#xff0c;明年&#xff0c;华为的智能手机将全面升级&#xff0c;以支持鸿蒙操…

html5画分形图形,2.5 绘制透明图形 - HTML5 Canvas 实战

对于需要图形分层的应用&#xff0c;经常需要处理透明度。本节&#xff0c;我们将学习如何使用全局透明度设置图形的透明度。图2-5 绘制透明图形绘制步骤按照以下步骤&#xff0c;在一个不透明的矩形之上&#xff0c;绘制一个透明的圆&#xff1a;1. 定义2D画布上下文&#xff…

html5录音功能代码,recorder.js 基于 HTML5 实现录音功能

recorder.js 基于 HTML5 实现录音功能2020-06-23 01:49:56recorder.jsmicrophone基于HTML5的录音功能&#xff0c;输出格式为mp3文件。前言完全依赖H5原生API所涉及的API&#xff1a;WebRTC、AudioContext、Worker、Video/Audio API、Blob、URL兼容性Chrome、FF、Edge、QQ、360…

html5页面引入jquery,如何在javascript中引入jQuery?

jquery是一个用来代替JavaScript来快捷书写前端脚本语言的库&#xff0c;jquery可以大大的简化复杂的js代码&#xff0c;使开发人员专注于实现页面的效果。jquery的导入方式有两种&#xff0c;一种是本地导入&#xff0c;一种是从超链接导入。方式一&#xff1a;本地导入我们可…

湖南省普通招生2021高考成绩查询,湖南省2021八省联考成绩可查,附查询入口及往年分数线...

原标题&#xff1a;湖南省2021八省联考成绩可查&#xff0c;附查询入口及往年分数线湖南省2021年八省联考新高考适应性考试成绩公布&#xff0c;这次大家考的如何呢&#xff1f;此次成绩排名对于考生择校及志愿填报有一定的参考意义&#xff0c;小盒一时间收集整理相关消息&…

Ubuntu抛弃了Untiy转向Gnome,美化之路怎么办?不用怕咱一步一步大变身!

跨平台系列汇总&#xff1a;http://www.cnblogs.com/dunitian/p/4822808.html#linux 常用软件安装系统软件卸载&#xff1a;http://www.cnblogs.com/dunitian/p/6670560.html 1.下载UnityGnome版本 https://wiki.ubuntu.com/UbuntuGNOME/GetUbuntuGNOME 2.打开终端 or CtrlAltT…

html木桶布局,CSS3如何实现图片木桶布局?(附代码)

本篇文章给大家通过代码示例介绍一下使用CSS3实现图片木桶布局的方法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。高度相同&#xff0c;而宽度不一样的布局&#xff0c;称之为木桶布局。它有几个鲜明的特点&#xff1a; 每行的图片…

万用表怎么测量电池容量_万用表检测光电耦合器的常用技巧

光电耦合器又称光耦合器或光耦&#xff0c;它属于较新型的电子产品&#xff0c;已经广泛应用在彩色电视机、彩色显示器、计算机、音视频等各种控制电路中。光电耦合器的构成和原理常见的光电耦合器有 4 脚直插和 6 脚两种&#xff0c;它们的典型实物外形和电路符号如图 3-4所示…

hanlp 训练模型_LTP 4.0!单模型完成6项自然语言处理任务

来源|哈工大SCIR语言技术平台&#xff08;Language Technology Platform, LTP&#xff09;是哈工大社会计算与信息检索研究中心&#xff08;HIT-SCIR&#xff09;历时多年研发的一整套高效、高精度的中文自然语言处理开源基础技术平台。该平台集词法分析&#xff08;分词、词性…

typescript 学习

typescript将在不久的将来从前端大一统的趋势中脱颖而出成为主流编译器。学习ts对前端开发人员来说是不可或缺的。同时&#xff0c;也要抓紧学习es2015/6/7。ts和es6并不是对立的。而是相辅相成的。ts的竞争和打击对象实质上是babel…… 官方资料 # 官方地址&#xff1a; https…

计算机中央处理器cpu_中央处理器(CPU)| 计算机科学组织

计算机中央处理器cpu中央处理器(CPU) (Central Processing Unit (CPU)) The CPU is the brain of the computer system. It works as an administrator of a system. CPU是计算机系统的大脑。 它以系统管理员的身份工作。 All the operations within the system are supervised…

computed set 自定义参数_深入理解vmodel之自定义组件用法

根据上一篇《深入理解 v-model 之表单用法》基本对 v-model 有了比较深的理解&#xff0c;接下来我们看看它如何在自定义组件中使用。首先&#xff0c;我们知道下面两个用法等价的&#xff1a;<input v-model"msg" /><input :value"msg" input&qu…

AYUSH的完整形式是什么?

AYUSH&#xff1a;阿育吠陀&#xff0c;瑜伽和自然疗法&#xff0c;乌纳尼&#xff0c;悉达多和顺势疗法 (AYUSH: Ayurvedic, Yoga and Naturopathy, Unani, Siddha and Homeopathy) AYUSH is an abbreviation of Ayurvedic, Yoga and Naturopathy, Unani, Siddha, and Homeopa…

arraylist能否接收强转类型_ArrayList 源码解析

点击上方"IT牧场"&#xff0c;选择"设为星标"技术干货每日送达&#xff01;前言 JDK源码解析系列文章&#xff0c;都是基于JDK8分析的&#xff0c;虽然JDK14已经出来&#xff0c;但是JDK8我还不会&#xff0c;我…类图 实现了RandomAccess接口&#xff0c;…

mc有什么红石机器人_我的世界10月考试!来测测你的MC成绩吧~

考试规则&#xff1a;本次考试为闭卷考试&#xff0c;考生需要在30分钟内完成试卷。试卷总分为100分&#xff0c;其中包括单项选择题50分&#xff0c;多项选择题20分&#xff0c;判断题30分。考试内容包括《我的世界》手游1.11.0及以上版本在不添加任何模组的情况下的所有游戏内…

自定义分页 html,MVC 自定义HtmlHelper帮助类型之分页

方法一&#xff1a;在项目中增加App_Code文件夹&#xff0c;新增一个MyHtmlper.cshtml视图文件写入代码&#xff1a;helper Pagger(int pageIndex, int pageCount){for (int i 1; i < pageCount; i){if (i ! pageIndex){(i)}else{i}}}新增一个HomeControllerpublic class H…

js console 输出到文件_Node.js核心入门

正文核心模块是Node.js的心脏&#xff0c;主要是有一些精简高效的库组成(这方面和Python有很大的相似之处)&#xff0c;为Node.js提供了基础的API。主要内容包括&#xff1a;Node.js核心入门(一)全局对象常用工具事件机制Node.js核心入门(二)文件系统访问HTTP服务器与客户端全局…

eclipse中项目内存溢出问题

2019独角兽企业重金招聘Python工程师标准>>> SpringBoot项目热启动Perm区内存溢出。 Failed to instantiate [org.springframework.orm.jpa.JpaVendorAdapter]: Factory method jpaVendorAdapter threw exception; nested exception is java.lang.OutOfMemoryErro…

express rest_Express / Node中用于REST API的邮递员工具

express restWhen dealing with routes (like in express), we may use any of the REST verbs and at times, the browser is limited to facilitate testing the routes/REST API. 在处理路由时(如快速表达)&#xff0c;我们可以使用任何REST动词&#xff0c;有时浏览器会受到…