四則運算網頁版

一.設計思想:

  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.pswp.cn/news/541665.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541665.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541665.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java RandomAccessFile seek()方法與示例

RandomAccessFile類seek()方法 (RandomAccessFile Class seek() method) seek() method is available in java.io package. seek()方法在java.io包中可用。 seek() method is used to sets the file pointer position calculated from the starting of this file at which the …

Javascript開發技巧(JS中的變量、運算符、分支結構、循環結構)

一、Js簡介和入門 繼續跟進JS開發的相關教程。 <!-- [使用JS的三種方式] 1、HTML標簽中內嵌JS&#xff08;不提倡使用&#xff09;&#xff1a; 示例&#xff1a;<button οnclick"javascript:alert(你真點啊&#xff01;)">有本事點我呀&#xff01;&#…

android 顏色范圍,Android系統顏色的適用范圍

###All Clickable Views:ripple effect (Lollipop only) — “colorControlHighlight”###Status Bar:background (Lollipop only) – “colorPrimaryDark”###Navigation Bar:background (Lollipop only) – “android:navigationBarColor”###EditText:underline (unfocused)…

bytevalue_Java Short類byteValue()方法及示例

bytevalue短類byteValue()方法 (Short class byteValue() method) byteValue() method is available in java.lang package. byteValue()方法在java.lang包中可用。 byteValue() method is used to return the value denoted by this Short object converted to type byte (by …

分布式交換機配置備份和還原

1.備份和還原vSphere Distributed Switch配置 1.1導出 vSphere Distributed Switch 配置 可以將 vSphere Distributed Switch 和分布式端口組配置導出到某一文件。該文件保留有效的網絡配置&#xff0c;使這些配置能夠傳輸至其他環境。 步驟&#xff1a; 1) 在 vSphere Web Cli…

html自動執行函數,JS 自執行函數原理及用法

js自執行函數&#xff0c;聽到這個名字&#xff0c;首先會聯想到函數。接下來&#xff0c;我來定義一個函數&#xff1a;function aaa(a,b){return sum a b}定義了一個名為aaa的函數&#xff0c;在里面可以計算兩個數的和。如果想執行它&#xff0c;就必須得調用它&#xff0…

java reverse_Java Integer類reverse()方法與示例

java reverse整數類reverse()方法 (Integer class reverse() method) reverse() method is available in java.lang package. reverse()方法在java.lang包中可用。 reverse() method is used to returns the value generated by reversing the order of bits in binary 2s comp…

華為鴻蒙系統好在哪,華為鴻蒙2.0可以替代安卓嗎,華為鴻蒙2.0優勢在哪

在華為開發者大會上&#xff0c;華為消費業務CEO 余承東&#xff0c;正式發布鴻蒙OS2.0&#xff0c;并宣布華為鴻蒙OS將全面啟用全場景生態&#xff0c;并將于2020年12月發布手機版。余承東還表示&#xff0c;明年&#xff0c;華為的智能手機將全面升級&#xff0c;以支持鴻蒙操…

Java GregorianCalendar add()方法與示例

GregorianCalendar類的add()方法 (GregorianCalendar Class add() method) add() method is available in java.util package. add()方法在java.util包中可用。 add() method is used to add the given quantity to the specified GregorianCalendar field (fi). add()方法用于…

JVM(三)——對象的訪問定位

JVM&#xff08;三&#xff09;——對象的訪問定位創建完對象&#xff0c;到了使用對象的時候&#xff0c;通常聲明一個同類型的引用指向該類型的對象&#xff0c;由這個引用來操作對象的字段、方法等。 Object obj new Object();復制代碼我們的Java程序需要通過棧上的 refere…

html5滑動刪除置頂,html5向左滑動刪除特效

html5向左滑動刪除特效* {padding: 0;margin: 0;list-style: none;}header {background: #f7483b;border-bottom: 1px solid #ccc}header h2 {text-align: center;line-height: 54px;font-size: 16px;color: #fff}.list-ul {overflow: hidden}.list-li {line-height: 60px;bord…

Java Double類hashCode()方法及示例

雙類hashCode()方法 (Double class hashCode() method) hashCode() method is available in java.lang package. hashCode()方法在java.lang包中可用。 hashCode() method is used to return hashcode of the Double-object. hashCode()方法用于返回Double對象的哈希碼。 hashC…

Java DataOutputStream size()方法及示例

DataOutputStream類的size()方法 (DataOutputStream Class size() method) size() method is available in java.io package. size()方法在java.io包中可用。 size() method is used to return the size of this stream or in other words, we can say it returns the value of…

html怎樣讓列表向下移動,Html無序列表ul控件實現行上下移動.

new document // 創建一個ulvar ul document.createElement("ul");ul.id "oList";// 創建divvar div document.getElementById(mergeCase);// 把ul放置到div中div.appendChild(ul);// 遍歷所有的li條目function trace(){var strTest "";for …

創建laravel項目

下載項目到本地 git clone https://github.com/251068550/LaraBlog.gitcompoer安裝 cd LaraBlog composer install如果composer install安裝很慢&#xff0c;推薦安裝國內鏡像 執行 composer config -g repo.packagist composer https://packagist.phpcomposer.com 配置.env文件…

Java ArrayList removeRange()方法與示例

ArrayList類removeRange()方法 (ArrayList Class removeRange() method) removeRange() method is available in java.util package. removeRange()方法在java.util包中可用。 removeRange() method is used to remove the elements whose range is between st_in(start index)…

Spring注釋事務失效及解決辦法

如果帶上事務&#xff0c;那么用annotation方式的事務注解和bean配置&#xff0c;事務會失效&#xff0c;要將service bean配置到xml文件中才行 在主容器中&#xff08;applicationContext.xml&#xff09;&#xff0c;將Controller的注解排除掉 <context:component-scan …

html5畫分形圖形,2.5 繪制透明圖形 - HTML5 Canvas 實戰

對于需要圖形分層的應用&#xff0c;經常需要處理透明度。本節&#xff0c;我們將學習如何使用全局透明度設置圖形的透明度。圖2-5 繪制透明圖形繪制步驟按照以下步驟&#xff0c;在一個不透明的矩形之上&#xff0c;繪制一個透明的圓&#xff1a;1. 定義2D畫布上下文&#xff…

計算機網絡子網劃分_子網劃分和超網| 計算機網絡

計算機網絡子網劃分1)子網劃分 (1) Subnetting) Subnetting is a concept of diving a block of addresses into sub-blocks of addresses. During the era of classful addressing (as it’s obscured now), subnetting was introduced. Say, an organization is granted a la…

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…