软件工程结对作业02
設計思想:
? ? ? 寫好java程序后,需要將程序嵌入網頁中,編寫jsp腳本文件,使用數組來實現java和jsp的交互;session標簽,可以實現網頁之間參數的傳遞。
源程序代碼(java):
import java.util.Scanner; import java.util.ArrayList; public class random_03{public static void main(String[] args){int N,i,N1,N2;int sum=0;String str;String hh; Scanner in=new Scanner(System.in); change fra=new change();System.out.println("請輸入需要打印的運算題的數目:");N=in.nextInt();System.out.println("請選擇是否需要分數運算(Y/N):");hh=in.next();if(hh.equals("Y"))//分數運算 {for(i=0;i<N;i++){ int a,b,c,d;int s1,s2;a=(int) (Math.random()*100);b=(int) (Math.random()*99+1);//分母不等于0c=(int) (Math.random()*100);d=(int) (Math.random()*99+1);int h=(int)(Math.random()*4);int aa=0,bb=0,cc=0,dd=0;//為了產生分數,分子也不可為零if(a==0)a=(int) (Math.random()*99+1);if(c==0)c=(int) (Math.random()*99+1);//化簡分數int j;j=fra.change_(a,b);aa=a/j;bb=b/j;//化簡分數int p;p=fra.change_(c,d);cc=c/p;dd=d/p;int j1;int s11,s22;String str1;if(h==0){ //化簡后,分母等于1時,直接輸出分子if(bb!=1&&dd!=1)System.out.println(aa+"/"+bb+" + "+cc+"/"+dd+"=");else if(bb==1&&dd!=1)System.out.println(aa+" + "+cc+"/"+dd+"=");else if(bb!=1&&dd==1)System.out.println(aa+"/"+bb+" + "+cc+"=");elseSystem.out.println(aa+"+"+cc+"=");//分數加法計算s1=aa*dd+bb*cc;s2=bb*dd;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題."); }else if(h==1){//不能產生負數int t1,t2;if((a/b-c/d)<0){t1=aa;aa=cc;cc=t1;t2=bb;bb=dd;dd=t2;}//化簡后,分母等于1時,直接輸出分子 if(bb!=1&&dd!=1)System.out.println(aa+"/"+bb+" - "+cc+"/"+dd+"="); else if(bb==1&&dd!=1)System.out.println(aa+" - "+cc+"/"+dd+"=");else if(bb!=1&&dd==1)System.out.println(aa+"/"+bb+" - "+cc+"=");elseSystem.out.println(aa+"-"+cc+"=");//分數減法計算s1=aa*dd-bb*cc;s2=bb*dd;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題.");}else if(h==2){//化簡后,分母等于1時,直接輸出分子if(bb!=1&&dd!=1)System.out.println(aa+"/"+bb+" * "+cc+"/"+dd+"=");else if(bb==1&&dd!=1)System.out.println(aa+" * "+cc+"/"+dd+"=");else if(bb!=1&&dd==1)System.out.println(aa+"/"+bb+" * "+cc+"=");elseSystem.out.println(aa+"*"+cc+"=");//分數乘法計算s1=aa*cc;s2=bb*dd;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題.");}else{ //化簡后,分母等于1時,直接輸出分子if(bb!=1&&dd!=1)System.out.println("("+aa+"/"+bb+")"+" / "+"("+cc+"/"+dd+")"+"=");else if(bb==1&&dd!=1)System.out.println(aa+" / "+"("+cc+"/"+dd+")"+"=");else if(bb!=1&&dd==1)System.out.println("("+aa+"/"+bb+")"+" / "+cc+"=");elseSystem.out.println(aa+"/"+cc+"=");//分數除法計算s1=aa*dd;s2=bb*cc;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題.");}}}else if(hh.equals("N"))//整數運算 {System.out.println("請選擇是否需要產生括號的運算題(Y/N):");String str1,str2;double strr2;str=in.next();double strr1=0;double ss;if(str.equals("Y")){System.out.println("請輸入數值范圍:");N1=in.nextInt();for(i=0;i<N;i++){ArrayList<Integer> al1=new ArrayList<Integer>();//申請動態數組存放操作數ArrayList<Integer> al2=new ArrayList<Integer>();//申請動態數組存放運算符int m,n,a,b;int j,k;int h1;h1=(int) (Math.random()*5+1);int h2=0;m=(int) (Math.random()*2+3);//限制操作數個數n=m-1;//運算符個數for(j=0;j<m;j++){a=(int) (Math.random()*(N1-1)+1);al1.add(a);}//將操作數壓入al1數組for(k=0;k<n;k++){b=(int) (Math.random()*4);al2.add(b);}//將運算符壓入al2數組if(m==3)//產生的操作數是3個 {if((int)al2.get(0)>(int)al2.get(1))//比較優先級 {if((int)al2.get(0)==1){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"+"+(int)al1.get(2));strr1=(int)al1.get(0)-(int)al1.get(1)+(int)al1.get(2);} else if((int)al2.get(0)==2){if((int)al2.get(1)==0){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");strr1=(int)al1.get(0)*((int)al1.get(1)+(int)al1.get(2));}else if((int)al2.get(1)==1){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")");strr1=(int)al1.get(0)*((int)al1.get(1)-(int)al1.get(2));}}else if((int)al2.get(0)==3){if((int)al2.get(1)==0){h2=h1*((int)al1.get(1)+(int)al1.get(2));System.out.print(h2+"/"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");strr1=h1;}else if((int)al2.get(1)==1){if((int)al1.get(1)>(int)al1.get(2)){h2=h1*((int)al1.get(1)-(int)al1.get(2));System.out.print((h2+"/"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")"));strr1=h1;}else{h2=h1*((int)al1.get(2)-(int)al1.get(1));System.out.print((h2+"/"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")"));strr1=h1;}}if((int)al2.get(1)==2){h2=h1*(int)al1.get(1);System.out.print((h2+"/"+(int)al1.get(1)+"*"+(int)al1.get(2)));strr1=h1*(int)al1.get(2);}}}else if((int)al2.get(0)<(int)al2.get(1)||(int)al2.get(0)==(int)al2.get(1))//比較優先級 {if((int)al2.get(0)==0){if((int)al2.get(1)==0){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"+"+(int)al1.get(2));strr1=(int)al1.get(0)+(int)al1.get(1)+(int)al1.get(2);}else if((int)al2.get(1)==1){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"-"+(int)al1.get(2));strr1=(int)al1.get(0)+(int)al1.get(1)-(int)al1.get(2);}else if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"*"+(int)al1.get(2));strr1=(int)al1.get(0)+(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>=(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(2));strr1=(int)al1.get(0)+h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(1));strr1=(int)al1.get(0)+h1;}}}else if((int)al2.get(0)==1){if((int)al2.get(1)==1){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"-"+(int)al1.get(2));strr1=(int)al1.get(0)-(int)al1.get(1)-(int)al1.get(2);}else if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"*"+(int)al1.get(2));strr1=(int)al1.get(0)-(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>=(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(2));strr1=(int)al1.get(0)-h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(1));strr1=(int)al1.get(0)-h1;}}}else if((int)al2.get(0)==2){if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"*"+(int)al1.get(1)+"*"+(int)al1.get(2));strr1=(int)al1.get(0)*(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"*"+h2+"/"+(int)al1.get(2));strr1=(int)al1.get(0)*h2/(int)al1.get(2);}}else if((int)al2.get(0)==3){if((int)al1.get(1)>=(int)al1.get(2)){h2=h1*(int)al1.get(2);int h22=0;h22=h1*(h2/(int)al1.get(2));System.out.print(h22+"/"+"("+(h2+"/"+(int)al1.get(2)+")"));strr1=h1;}else{h2=h1*(int)al1.get(1);int h22=0;h22=h1*(h2/(int)al1.get(1));System.out.print(h22+"/"+"("+h2+"/"+(int)al1.get(1)+")");strr1=h1;}}}System.out.print("=");ss=in.nextDouble();if(fra.judge(strr1,ss)==1){sum++;}System.out.println("正確"+sum+"道題.");}else if(m==4)//產生的操作數等于4個 {double sumss=0;int r=0;double list[]=new double[2];//存放和for(r=0;r<2;r++){list[r]=0;}System.out.print("(");if((int)al2.get(0)>(int)al2.get(1))//比較運算符優先級 {if((int)al2.get(0)==1)//第一個出現減法 {if(((int)al1.get(0)-(int)al1.get(1))>=0){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"+"+(int)al1.get(2));list[0]=(int)al1.get(0)-(int)al1.get(1)+(int)al1.get(2);}else{System.out.print((int)al1.get(1)+"-"+(int)al1.get(0)+"+"+(int)al1.get(2));list[0]=(int)al1.get(1)-(int)al1.get(0)+(int)al1.get(2);}}else if((int)al2.get(0)==2)//第一個出現乘法 {if((int)al2.get(1)==0){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");list[0]=(int)al1.get(0)*+((int)al1.get(1)+(int)al1.get(2));}else if((int)al2.get(1)==1){if(((int)al1.get(1)-(int)al1.get(2))>=0){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")");list[0]=(int)al1.get(0)*((int)al1.get(1)-(int)al1.get(2));}else{System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(2)+"-"+(int)al1.get(1)+")");list[0]=(int)al1.get(0)*((int)al1.get(2)-(int)al1.get(1));}}}else if((int)al2.get(0)==3)//第一個出現除法 {if((int)al2.get(1)==0){h2=h1*((int)al1.get(1)+(int)al1.get(2));System.out.print(h2+"/"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");list[0]=h1;}else if((int)al2.get(1)==1){if((int)al1.get(1)==(int)al1.get(2)){h2=h1*(((int)al1.get(1)+1)-(int)al1.get(2));System.out.print(h2+"/"+"("+((int)al1.get(1)+1)+"-"+(int)al1.get(2)+")");list[0]=h1;}else {if(((int)al1.get(1)-(int)al1.get(2))>0){h2=h1*((int)al1.get(1)-(int)al1.get(2));System.out.print(h2+"/"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")");list[0]=h1;}else{h2=h1*((int)al1.get(2)-(int)al1.get(1));System.out.print(h2+"/"+"("+(int)al1.get(2)+"-"+(int)al1.get(1)+")");list[0]=h1;}}}if((int)al2.get(1)==2){h2=h1*(int)al1.get(1);System.out.print(h2+"/"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=h1*(int)al1.get(2);}}}else if((int)al2.get(0)<(int)al2.get(1)||(int)al2.get(0)==(int)al2.get(1)){if((int)al2.get(0)==0){if((int)al2.get(1)==0)//第一個出現加法 {System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"+"+(int)al1.get(2));list[0]=(int)al1.get(0)+(int)al1.get(1)+(int)al1.get(2);}else if((int)al2.get(1)==1){if((int)al1.get(1)-(int)al1.get(2)>=0){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"-"+(int)al1.get(2));list[0]=(int)al1.get(0)+(int)al1.get(1)-(int)al1.get(2);}else{System.out.print((int)al1.get(0)+"+"+(int)al1.get(2)+"-"+(int)al1.get(1));list[0]=(int)al1.get(0)+(int)al1.get(2)-(int)al1.get(1);}}else if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=(int)al1.get(0)+(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(2));list[0]=(int)al1.get(0)+h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(1));list[0]=(int)al1.get(0)+h1;}}}else if((int)al2.get(0)==1)//第一個出現減法 {if((int)al2.get(1)==1){if(((int)al1.get(0)-(int)al1.get(1))>=0){if(((int)al1.get(0)-(int)al1.get(1)-(int)al1.get(2))>=0){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"-"+(int)al1.get(2));list[0]=(int)al1.get(0)-(int)al1.get(1)-(int)al1.get(2);}else{System.out.print((int)al1.get(2)+"-"+(int)al1.get(0)+"+"+(int)al1.get(1));list[0]=(int)al1.get(2)-(int)al1.get(0)-(int)al1.get(1);}}else{if(((int)al1.get(1)-(int)al1.get(0)-(int)al1.get(2))>=0){System.out.print((int)al1.get(1)+"-"+(int)al1.get(0)+"-"+(int)al1.get(2));list[0]=(int)al1.get(1)-(int)al1.get(0)-(int)al1.get(2);}else{System.out.print((int)al1.get(2)+"-"+(int)al1.get(1)+"+"+(int)al1.get(0));list[0]=(int)al1.get(2)-(int)al1.get(1)-(int)al1.get(0);}}}else if((int)al2.get(1)==2){if(((int)al1.get(0)-(int)al1.get(1)*(int)al1.get(2))>=0){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=(int)al1.get(0)-(int)al1.get(1)*(int)al1.get(2);}else{System.out.print((int)al1.get(1)+"*"+(int)al1.get(2)+"-"+(int)al1.get(0));list[0]=(int)al1.get(1)*(int)al1.get(2)-(int)al1.get(0);}}else if((int)al2.get(1)==3){if((int)al1.get(1)>(int)al1.get(2)){if(((int)al1.get(0)-(int)al1.get(1)/(int)al1.get(2))>=0){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(2));list[0]=(int)al1.get(0)-h1;}else{h2=h1*(int)al1.get(2);System.out.print(h2+"/"+(int)al1.get(2)+"-"+(int)al1.get(0));list[0]=h1-(int)al1.get(0);}}else{if(((int)al1.get(0)-(int)al1.get(2)/(int)al1.get(1))>=0){h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(1));list[0]=(int)al1.get(0)-h1;}else{h2=h1*(int)al1.get(1);System.out.print(h2+"/"+(int)al1.get(1)+"-"+(int)al1.get(0));list[0]=h1-(int)al1.get(0);}}}}else if((int)al2.get(0)==2)//第一個出現乘法 {if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"*"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=(int)al1.get(0)*(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"*"+h2+"/"+(int)al1.get(2));list[0]=(int)al1.get(0)*h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"*"+h2+"/"+(int)al1.get(1));list[0]=(int)al1.get(0)*h1;}}}else if((int)al2.get(0)==3)//第一個出現除法 {if((int)al1.get(1)>(int)al1.get(2)){h2=h1*(int)al1.get(2);int hh2=0;hh2=h1*((int)al1.get(1)/(int)al1.get(2));System.out.print(hh2+"/"+"("+h2+"/"+(int)al1.get(2)+")");list[0]=h1;}else{h2=h1*(int)al1.get(1);int hh2=0;hh2=h1*((int)al1.get(2)/(int)al1.get(1));System.out.print(hh2+"/"+"("+h2+"/"+(int)al1.get(1)+")");list[0]=h1;}}}System.out.print(")");list[1]=(int)al1.get(3);if((int)al2.get(2)==0){System.out.print("+"+(int)al1.get(3));sumss=list[0]+(int)al1.get(3);}else if((int)al2.get(2)==1){if(list[0]-list[1]>=0){System.out.print("-"+(int)al1.get(3));sumss=list[0]-(int)al1.get(3);}else if(list[0]<list[1]){System.out.print("+"+(int)al1.get(3));sumss=(int)al1.get(3)+list[0];}}else if((int)al2.get(2)==2){System.out.print("*"+(int)al1.get(3));sumss=list[0]*(int)al1.get(3);}else if((int)al2.get(2)==3){System.out.print("*"+(int)al1.get(3));sumss=list[0]*(int)al1.get(3);}System.out.print("=");strr1=in.nextDouble();if(fra.judge(sumss,strr1)==1){sum++;}System.out.println(sumss);System.out.println("正確"+sum+"道題.");}}}else if(str.equals("N"))//不需要產生括號 {System.out.println("請輸入數值范圍:");N2=in.nextInt();System.out.println("請選擇是否有無乘除法的運算題(Y/N):");str1=in.next();if(str1.equals("Y"))// 有乘除法 { System.out.println("請選擇是否有無余數的運算題(Y/N):");str2=in.next(); if(str2.equals("Y"))//需要有余數 {for(i=0;i<N;i++){int a,b,c,c1,h;a=(int) (Math.random()*N2);b=(int) (Math.random()*N2);h=(int) (Math.random()*4);//控制加減運算符c=(int) (Math.random()*(N2-1)+1);c1=(int) (Math.random()*10+1);//控制倍數if(h==0){System.out.println(a+"+"+b+"=");double s;s=a+b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==1){double s;if(a-b>=0){System.out.println(a+"-"+b+"=");s=a-b;}else{System.out.println(b+"-"+a+"=");s=b-a;}strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==2){System.out.println(a+"*"+b+"=");double s;s=a*b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;} }if(h==3){int d,k,dd,cc; int j1;k=(int) (Math.random()*(c-1)+1);//必須產生余數d=c*c1+k;System.out.println(d+"/"+c+"=");String s = null;String result;if(c!=1)s=d+"/"+c;if(c==1)s=String.valueOf(d);result=in.next();if(fra.judge_FRA(s,result)==1){sum++;}}}System.out.println("正確"+sum+"道題");}else if(str2.equals("N"))//不需要產生余數 {for(i=0;i<N;i++){int a,b,c,c1,h;a=(int) (Math.random()*N2);b=(int) (Math.random()*N2);h=(int) (Math.random()*4);//控制加減運算符c=(int) (Math.random()*(N2-1)+1);c1=(int) (Math.random()*10+1);//控制倍數 if(h==0){System.out.println(a+"+"+b+"=");double s;s=a+b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==1){System.out.println(a+"-"+b+"=");double s;s=a-b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==2)//乘法 {System.out.println(a+"*"+b+"=");double s;s=a*b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==3)//除法,不產生余數 {int d; //不能產生余數d=c*c1;System.out.println(d+"/"+c+"=");double s;s=d/c;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}}System.out.println("正確"+sum+"道題");}}else if(str1.equals("N"))//沒有乘除法 {int a,b,h; for(i=0;i<N;i++){a=(int) (Math.random()*N2);b=(int) (Math.random()*N2);h=(int) (Math.random()*2);//控制運算符if(h==0){System.out.println(a+"+"+b+"=");double s;s=a+b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==1){System.out.println(a+"-"+b+"=");double s;s=a-b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}}System.out.println("正確"+sum+"道題");}}}in.close();} } class change{Scanner in=new Scanner(System.in);int change_(int a,int b)//化簡分數 {int r1;if(a>b){r1=b;}elser1=a;int k=0;for(int j=1;j<=r1;j++){if(a%j==0&&b%j==0){k=j;} }return k;}int judge_FRA(String str1,String str)//分數運算判斷對錯,計算正確次數 {int ju;if(str.equals(str1)){System.out.println("正確");ju=1;}else{System.out.println("錯誤");ju=0;}return ju;}int judge(double s,double ss)//整數判斷對錯,計算正確次數 {int ju;if(s==ss){System.out.println("正確");ju=1;}else{System.out.println("錯誤");ju=0;}return ju;} }結果截圖:
?
NewFile.html
<!DOCTYPE html><html><head><title>首頁</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="keywords" content="keyword1,keyword2,keyword3"><meta name="description" content="this is my page"><!--<link rel="stylesheet" type="text/css" href="./styles.css">--></head> <body background="images/A1.jpg"><h1 align="center">二柱子四則運算</h1><!-- 傳遞參數的值給NewFile.jsp處理 --><form action="NewFile.jsp" method="post"> <!-- 互斥選擇,值只能有一個 --><center><br>請選擇數值范圍的最小值:<input type="radio" checked name="TopNumber" value=20>20<input type="radio" name="TopNumber" value=30>30<input type="radio" name="TopNumber" value=50>50<input type="radio" name="TopNumber" value=80>80<input type="radio" name="TopNumber" value=100>100<br><br>請選擇數值范圍的最大值:<input type="radio" checked name="BaseNumber" value=0>0<input type="radio" name="BaseNumber" value=1>1<input type="radio" name="BaseNumber" value=3>3<input type="radio" name="BaseNumber" value=5>5<input type="radio" name="BaseNumber" value=10>10<br><!-- 多項選擇,值可以有多個,在jsp中用數組保存 --><br>請在以下選項中打勾(可多選):<input type="checkbox" name="function" value=1>有乘除<input type="checkbox" name="function" value=2>無余數<input type="checkbox" name="function" value=3>有括號<br><br><input type="submit" name="submit" value="進入答題"></center></form></body></html>?
NewFile.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="ttes.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>答題</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body background="images/A2.jpg">
<%
String[] s=new String[30];
float k[]=new float[30];
random3 a=new random3();
request.setCharacterEncoding("UTF-8");
// String[] function = request.getParameterValues("function");
int N1;
N1=request.getParameter("N1");
a.SetValue(N1,1);
if(function!=null){
/* for(int i=0;i<function.length;i++){
if(function[i].equals("1"))
{
a.SetValue1(1);
}
if(function[i].equals("2"))
{
a.SetValue2(1);
}
if(function[i].equals("3"))
{
a.SetValue3(0);
}
}*/
}
%>
<form action="Myjsp.jsp" method="post">
<center>
<%
a.main();
float temp;
String[] se=new String[30];
for(int i=0;i<30;i++){
s[i]=a.sumss; //求和
se[i]="name";
se[i]=se[i]+i;
k[i]=a.strr2; //正確答案
out.print("<tr>"+s[i]+"</tr>");
out.println("<br>");
%>
<input type="text" name=<%=se[i] %>><br>
<%
}
session.setAttribute( "v1",s);
session.setAttribute( "v2",k);
%>
<br><input type="submit" name="submit" value="提交">
<% %>
</center>
</form>
</body>
</html>
random3.java
package ttes;public class random3{public static void main(){int N,i,N1,N2;int sum=0;String str;String hh; Scanner in=new Scanner(System.in); change fra=new change();System.out.println("請輸入需要打印的運算題的數目:");N=in.nextInt();System.out.println("請選擇是否需要分數運算(Y/N):");hh=in.next();if(hh.equals("Y"))//分數運算 {for(i=0;i<N;i++){ int a,b,c,d;int s1,s2;a=(int) (Math.random()*100);b=(int) (Math.random()*99+1);//分母不等于0c=(int) (Math.random()*100);d=(int) (Math.random()*99+1);int h=(int)(Math.random()*4);int aa=0,bb=0,cc=0,dd=0;//為了產生分數,分子也不可為零if(a==0)a=(int) (Math.random()*99+1);if(c==0)c=(int) (Math.random()*99+1);//化簡分數int j;j=fra.change_(a,b);aa=a/j;bb=b/j;//化簡分數int p;p=fra.change_(c,d);cc=c/p;dd=d/p;int j1;int s11,s22;String str1;if(h==0){ //化簡后,分母等于1時,直接輸出分子if(bb!=1&&dd!=1)System.out.println(aa+"/"+bb+" + "+cc+"/"+dd+"=");else if(bb==1&&dd!=1)System.out.println(aa+" + "+cc+"/"+dd+"=");else if(bb!=1&&dd==1)System.out.println(aa+"/"+bb+" + "+cc+"=");elseSystem.out.println(aa+"+"+cc+"=");//分數加法計算s1=aa*dd+bb*cc;s2=bb*dd;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題."); }else if(h==1){//不能產生負數int t1,t2;if((a/b-c/d)<0){t1=aa;aa=cc;cc=t1;t2=bb;bb=dd;dd=t2;}//化簡后,分母等于1時,直接輸出分子 if(bb!=1&&dd!=1)System.out.println(aa+"/"+bb+" - "+cc+"/"+dd+"="); else if(bb==1&&dd!=1)System.out.println(aa+" - "+cc+"/"+dd+"=");else if(bb!=1&&dd==1)System.out.println(aa+"/"+bb+" - "+cc+"=");elseSystem.out.println(aa+"-"+cc+"=");//分數減法計算s1=aa*dd-bb*cc;s2=bb*dd;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題.");}else if(h==2){//化簡后,分母等于1時,直接輸出分子if(bb!=1&&dd!=1)System.out.println(aa+"/"+bb+" * "+cc+"/"+dd+"=");else if(bb==1&&dd!=1)System.out.println(aa+" * "+cc+"/"+dd+"=");else if(bb!=1&&dd==1)System.out.println(aa+"/"+bb+" * "+cc+"=");elseSystem.out.println(aa+"*"+cc+"=");//分數乘法計算s1=aa*cc;s2=bb*dd;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題.");}else{ //化簡后,分母等于1時,直接輸出分子if(bb!=1&&dd!=1)System.out.println("("+aa+"/"+bb+")"+" / "+"("+cc+"/"+dd+")"+"=");else if(bb==1&&dd!=1)System.out.println(aa+" / "+"("+cc+"/"+dd+")"+"=");else if(bb!=1&&dd==1)System.out.println("("+aa+"/"+bb+")"+" / "+cc+"=");elseSystem.out.println(aa+"/"+cc+"=");//分數除法計算s1=aa*dd;s2=bb*cc;j1=fra.change_(s1,s2);s11=s1/j1;s22=s2/j1;str1=s11+"/"+s22;str=in.next();if(fra.judge_FRA(str1,str)==1){sum++;}System.out.println("正確"+sum+"道題.");}}}else if(hh.equals("N"))//整數運算 {System.out.println("請選擇是否需要產生括號的運算題(Y/N):");String str1,str2;double strr2;str=in.next();double strr1=0;double ss;if(str.equals("Y")){System.out.println("請輸入數值范圍:");N1=in.nextInt();for(i=0;i<N;i++){ArrayList<Integer> al1=new ArrayList<Integer>();//申請動態數組存放操作數ArrayList<Integer> al2=new ArrayList<Integer>();//申請動態數組存放運算符int m,n,a,b;int j,k;int h1;h1=(int) (Math.random()*5+1);int h2=0;m=(int) (Math.random()*2+3);//限制操作數個數n=m-1;//運算符個數for(j=0;j<m;j++){a=(int) (Math.random()*(N1-1)+1);al1.add(a);}//將操作數壓入al1數組for(k=0;k<n;k++){b=(int) (Math.random()*4);al2.add(b);}//將運算符壓入al2數組if(m==3)//產生的操作數是3個 {if((int)al2.get(0)>(int)al2.get(1))//比較優先級 {if((int)al2.get(0)==1){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"+"+(int)al1.get(2));strr1=(int)al1.get(0)-(int)al1.get(1)+(int)al1.get(2);} else if((int)al2.get(0)==2){if((int)al2.get(1)==0){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");strr1=(int)al1.get(0)*((int)al1.get(1)+(int)al1.get(2));}else if((int)al2.get(1)==1){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")");strr1=(int)al1.get(0)*((int)al1.get(1)-(int)al1.get(2));}}else if((int)al2.get(0)==3){if((int)al2.get(1)==0){h2=h1*((int)al1.get(1)+(int)al1.get(2));System.out.print(h2+"/"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");strr1=h1;}else if((int)al2.get(1)==1){if((int)al1.get(1)>(int)al1.get(2)){h2=h1*((int)al1.get(1)-(int)al1.get(2));System.out.print((h2+"/"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")"));strr1=h1;}else{h2=h1*((int)al1.get(2)-(int)al1.get(1));System.out.print((h2+"/"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")"));strr1=h1;}}if((int)al2.get(1)==2){h2=h1*(int)al1.get(1);System.out.print((h2+"/"+(int)al1.get(1)+"*"+(int)al1.get(2)));strr1=h1*(int)al1.get(2);}}}else if((int)al2.get(0)<(int)al2.get(1)||(int)al2.get(0)==(int)al2.get(1))//比較優先級 {if((int)al2.get(0)==0){if((int)al2.get(1)==0){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"+"+(int)al1.get(2));strr1=(int)al1.get(0)+(int)al1.get(1)+(int)al1.get(2);}else if((int)al2.get(1)==1){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"-"+(int)al1.get(2));strr1=(int)al1.get(0)+(int)al1.get(1)-(int)al1.get(2);}else if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"*"+(int)al1.get(2));strr1=(int)al1.get(0)+(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>=(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(2));strr1=(int)al1.get(0)+h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(1));strr1=(int)al1.get(0)+h1;}}}else if((int)al2.get(0)==1){if((int)al2.get(1)==1){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"-"+(int)al1.get(2));strr1=(int)al1.get(0)-(int)al1.get(1)-(int)al1.get(2);}else if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"*"+(int)al1.get(2));strr1=(int)al1.get(0)-(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>=(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(2));strr1=(int)al1.get(0)-h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(1));strr1=(int)al1.get(0)-h1;}}}else if((int)al2.get(0)==2){if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"*"+(int)al1.get(1)+"*"+(int)al1.get(2));strr1=(int)al1.get(0)*(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"*"+h2+"/"+(int)al1.get(2));strr1=(int)al1.get(0)*h2/(int)al1.get(2);}}else if((int)al2.get(0)==3){if((int)al1.get(1)>=(int)al1.get(2)){h2=h1*(int)al1.get(2);int h22=0;h22=h1*(h2/(int)al1.get(2));System.out.print(h22+"/"+"("+(h2+"/"+(int)al1.get(2)+")"));strr1=h1;}else{h2=h1*(int)al1.get(1);int h22=0;h22=h1*(h2/(int)al1.get(1));System.out.print(h22+"/"+"("+h2+"/"+(int)al1.get(1)+")");strr1=h1;}}}System.out.print("=");ss=in.nextDouble();if(fra.judge(strr1,ss)==1){sum++;}System.out.println("正確"+sum+"道題.");}else if(m==4)//產生的操作數等于4個 {double sumss=0;int r=0;double list[]=new double[2];//存放和for(r=0;r<2;r++){list[r]=0;}System.out.print("(");if((int)al2.get(0)>(int)al2.get(1))//比較運算符優先級 {if((int)al2.get(0)==1)//第一個出現減法 {if(((int)al1.get(0)-(int)al1.get(1))>=0){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"+"+(int)al1.get(2));list[0]=(int)al1.get(0)-(int)al1.get(1)+(int)al1.get(2);}else{System.out.print((int)al1.get(1)+"-"+(int)al1.get(0)+"+"+(int)al1.get(2));list[0]=(int)al1.get(1)-(int)al1.get(0)+(int)al1.get(2);}}else if((int)al2.get(0)==2)//第一個出現乘法 {if((int)al2.get(1)==0){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");list[0]=(int)al1.get(0)*+((int)al1.get(1)+(int)al1.get(2));}else if((int)al2.get(1)==1){if(((int)al1.get(1)-(int)al1.get(2))>=0){System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")");list[0]=(int)al1.get(0)*((int)al1.get(1)-(int)al1.get(2));}else{System.out.print((int)al1.get(0)+"*"+"("+(int)al1.get(2)+"-"+(int)al1.get(1)+")");list[0]=(int)al1.get(0)*((int)al1.get(2)-(int)al1.get(1));}}}else if((int)al2.get(0)==3)//第一個出現除法 {if((int)al2.get(1)==0){h2=h1*((int)al1.get(1)+(int)al1.get(2));System.out.print(h2+"/"+"("+(int)al1.get(1)+"+"+(int)al1.get(2)+")");list[0]=h1;}else if((int)al2.get(1)==1){if((int)al1.get(1)==(int)al1.get(2)){h2=h1*(((int)al1.get(1)+1)-(int)al1.get(2));System.out.print(h2+"/"+"("+((int)al1.get(1)+1)+"-"+(int)al1.get(2)+")");list[0]=h1;}else {if(((int)al1.get(1)-(int)al1.get(2))>0){h2=h1*((int)al1.get(1)-(int)al1.get(2));System.out.print(h2+"/"+"("+(int)al1.get(1)+"-"+(int)al1.get(2)+")");list[0]=h1;}else{h2=h1*((int)al1.get(2)-(int)al1.get(1));System.out.print(h2+"/"+"("+(int)al1.get(2)+"-"+(int)al1.get(1)+")");list[0]=h1;}}}if((int)al2.get(1)==2){h2=h1*(int)al1.get(1);System.out.print(h2+"/"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=h1*(int)al1.get(2);}}}else if((int)al2.get(0)<(int)al2.get(1)||(int)al2.get(0)==(int)al2.get(1)){if((int)al2.get(0)==0){if((int)al2.get(1)==0)//第一個出現加法 {System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"+"+(int)al1.get(2));list[0]=(int)al1.get(0)+(int)al1.get(1)+(int)al1.get(2);}else if((int)al2.get(1)==1){if((int)al1.get(1)-(int)al1.get(2)>=0){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"-"+(int)al1.get(2));list[0]=(int)al1.get(0)+(int)al1.get(1)-(int)al1.get(2);}else{System.out.print((int)al1.get(0)+"+"+(int)al1.get(2)+"-"+(int)al1.get(1));list[0]=(int)al1.get(0)+(int)al1.get(2)-(int)al1.get(1);}}else if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"+"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=(int)al1.get(0)+(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(2));list[0]=(int)al1.get(0)+h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"+"+h2+"/"+(int)al1.get(1));list[0]=(int)al1.get(0)+h1;}}}else if((int)al2.get(0)==1)//第一個出現減法 {if((int)al2.get(1)==1){if(((int)al1.get(0)-(int)al1.get(1))>=0){if(((int)al1.get(0)-(int)al1.get(1)-(int)al1.get(2))>=0){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"-"+(int)al1.get(2));list[0]=(int)al1.get(0)-(int)al1.get(1)-(int)al1.get(2);}else{System.out.print((int)al1.get(2)+"-"+(int)al1.get(0)+"+"+(int)al1.get(1));list[0]=(int)al1.get(2)-(int)al1.get(0)-(int)al1.get(1);}}else{if(((int)al1.get(1)-(int)al1.get(0)-(int)al1.get(2))>=0){System.out.print((int)al1.get(1)+"-"+(int)al1.get(0)+"-"+(int)al1.get(2));list[0]=(int)al1.get(1)-(int)al1.get(0)-(int)al1.get(2);}else{System.out.print((int)al1.get(2)+"-"+(int)al1.get(1)+"+"+(int)al1.get(0));list[0]=(int)al1.get(2)-(int)al1.get(1)-(int)al1.get(0);}}}else if((int)al2.get(1)==2){if(((int)al1.get(0)-(int)al1.get(1)*(int)al1.get(2))>=0){System.out.print((int)al1.get(0)+"-"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=(int)al1.get(0)-(int)al1.get(1)*(int)al1.get(2);}else{System.out.print((int)al1.get(1)+"*"+(int)al1.get(2)+"-"+(int)al1.get(0));list[0]=(int)al1.get(1)*(int)al1.get(2)-(int)al1.get(0);}}else if((int)al2.get(1)==3){if((int)al1.get(1)>(int)al1.get(2)){if(((int)al1.get(0)-(int)al1.get(1)/(int)al1.get(2))>=0){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(2));list[0]=(int)al1.get(0)-h1;}else{h2=h1*(int)al1.get(2);System.out.print(h2+"/"+(int)al1.get(2)+"-"+(int)al1.get(0));list[0]=h1-(int)al1.get(0);}}else{if(((int)al1.get(0)-(int)al1.get(2)/(int)al1.get(1))>=0){h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"-"+h2+"/"+(int)al1.get(1));list[0]=(int)al1.get(0)-h1;}else{h2=h1*(int)al1.get(1);System.out.print(h2+"/"+(int)al1.get(1)+"-"+(int)al1.get(0));list[0]=h1-(int)al1.get(0);}}}}else if((int)al2.get(0)==2)//第一個出現乘法 {if((int)al2.get(1)==2){System.out.print((int)al1.get(0)+"*"+(int)al1.get(1)+"*"+(int)al1.get(2));list[0]=(int)al1.get(0)*(int)al1.get(1)*(int)al1.get(2);}else if((int)al2.get(1)==3){if((int)al1.get(1)>(int)al1.get(2)){h2=h1*(int)al1.get(2);System.out.print((int)al1.get(0)+"*"+h2+"/"+(int)al1.get(2));list[0]=(int)al1.get(0)*h1;}else{h2=h1*(int)al1.get(1);System.out.print((int)al1.get(0)+"*"+h2+"/"+(int)al1.get(1));list[0]=(int)al1.get(0)*h1;}}}else if((int)al2.get(0)==3)//第一個出現除法 {if((int)al1.get(1)>(int)al1.get(2)){h2=h1*(int)al1.get(2);int hh2=0;hh2=h1*((int)al1.get(1)/(int)al1.get(2));System.out.print(hh2+"/"+"("+h2+"/"+(int)al1.get(2)+")");list[0]=h1;}else{h2=h1*(int)al1.get(1);int hh2=0;hh2=h1*((int)al1.get(2)/(int)al1.get(1));System.out.print(hh2+"/"+"("+h2+"/"+(int)al1.get(1)+")");list[0]=h1;}}}System.out.print(")");list[1]=(int)al1.get(3);if((int)al2.get(2)==0){System.out.print("+"+(int)al1.get(3));sumss=list[0]+(int)al1.get(3);}else if((int)al2.get(2)==1){if(list[0]-list[1]>=0){System.out.print("-"+(int)al1.get(3));sumss=list[0]-(int)al1.get(3);}else if(list[0]<list[1]){System.out.print("+"+(int)al1.get(3));sumss=(int)al1.get(3)+list[0];}}else if((int)al2.get(2)==2){System.out.print("*"+(int)al1.get(3));sumss=list[0]*(int)al1.get(3);}else if((int)al2.get(2)==3){System.out.print("*"+(int)al1.get(3));sumss=list[0]*(int)al1.get(3);}System.out.print("=");strr1=in.nextDouble();if(fra.judge(sumss,strr1)==1){sum++;}System.out.println(sumss);System.out.println("正確"+sum+"道題.");}}}else if(str.equals("N"))//不需要產生括號 {System.out.println("請輸入數值范圍:");N2=in.nextInt();System.out.println("請選擇是否有無乘除法的運算題(Y/N):");str1=in.next();if(str1.equals("Y"))// 有乘除法 { System.out.println("請選擇是否有無余數的運算題(Y/N):");str2=in.next(); if(str2.equals("Y"))//需要有余數 {for(i=0;i<N;i++){int a,b,c,c1,h;a=(int) (Math.random()*N2);b=(int) (Math.random()*N2);h=(int) (Math.random()*4);//控制加減運算符c=(int) (Math.random()*(N2-1)+1);c1=(int) (Math.random()*10+1);//控制倍數if(h==0){System.out.println(a+"+"+b+"=");double s;s=a+b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==1){double s;if(a-b>=0){System.out.println(a+"-"+b+"=");s=a-b;}else{System.out.println(b+"-"+a+"=");s=b-a;}strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==2){System.out.println(a+"*"+b+"=");double s;s=a*b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;} }if(h==3){int d,k,dd,cc; int j1;k=(int) (Math.random()*(c-1)+1);//必須產生余數d=c*c1+k;System.out.println(d+"/"+c+"=");String s = null;String result;if(c!=1)s=d+"/"+c;if(c==1)s=String.valueOf(d);result=in.next();if(fra.judge_FRA(s,result)==1){sum++;}}}System.out.println("正確"+sum+"道題");}else if(str2.equals("N"))//不需要產生余數 {for(i=0;i<N;i++){int a,b,c,c1,h;a=(int) (Math.random()*N2);b=(int) (Math.random()*N2);h=(int) (Math.random()*4);//控制加減運算符c=(int) (Math.random()*(N2-1)+1);c1=(int) (Math.random()*10+1);//控制倍數 if(h==0){System.out.println(a+"+"+b+"=");double s;s=a+b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==1){System.out.println(a+"-"+b+"=");double s;s=a-b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==2)//乘法 {System.out.println(a+"*"+b+"=");double s;s=a*b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==3)//除法,不產生余數 {int d; //不能產生余數d=c*c1;System.out.println(d+"/"+c+"=");double s;s=d/c;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}}System.out.println("正確"+sum+"道題");}}else if(str1.equals("N"))//沒有乘除法 {int a,b,h; for(i=0;i<N;i++){a=(int) (Math.random()*N2);b=(int) (Math.random()*N2);h=(int) (Math.random()*2);//控制運算符if(h==0){System.out.println(a+"+"+b+"=");double s;s=a+b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}if(h==1){System.out.println(a+"-"+b+"=");double s;s=a-b;strr2=in.nextDouble();if(fra.judge(s,strr2)==1){sum++;}}}System.out.println("正確"+sum+"道題");}}}in.close();} } class change{Scanner in=new Scanner(System.in);int change_(int a,int b)//化簡分數 {int r1;if(a>b){r1=b;}elser1=a;int k=0;for(int j=1;j<=r1;j++){if(a%j==0&&b%j==0){k=j;} }return k;}int judge_FRA(String str1,String str)//分數運算判斷對錯,計算正確次數 {int ju;if(str.equals(str1)){System.out.println("正確");ju=1;}else{System.out.println("錯誤");ju=0;}return ju;}int judge(double s,double ss)//整數判斷對錯,計算正確次數 {int ju;if(s==ss){System.out.println("正確");ju=1;}else{System.out.println("錯誤");ju=0;}return ju;} }結果截圖:
編程總結:
? ? ? 我們已經寫好了java程序,功能也基本實現,但是在程序嵌入到網頁過程中,我們遇到了很多困難,由于我們的程序并沒有分模塊去寫,所以在調用時出現了很多困難,正確結果及用戶輸入的結果也沒有保存在數組里面,所以在網頁中不能傳遞數組值進行判斷;后我們查閱了資料,借鑒閱讀了一些已完成的程序,但是我們的程序并沒有修改正確,嵌入不正確,沒有完成后面的功能。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?周活動總結表
?
? ? ?姓名:楊茵???????????????????????????日期?2016/4/8
| ? | 聽課 | 編寫代碼 | 閱讀課本 | 準備考試 | 總結程序 | ? | 日總計 |
| 周日 | ? | ? | ? | ? | ? | ? | ? |
| 周一 | ? | ? | ? | ? | ? | ? | ? |
| 周二 | 100 | 103 | ? | ? | ? | ? | 203 |
| 周三 | ? | 140 | ? | ? | ? | ? | 140 |
| 周四 | ? | 203 | ? | ? | ? | ? | 203 |
| 周五 | ? | 338 | ? | ? | ? | ? | 338 |
| 周六 | ? | ? | 120 | ? | 82 | ? | 202 |
| 周總計 | 100 | 784 | 120 | ? | 82 | ? | 1086 |
??
?
??????????????????????????????
???????????????????????????????
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?時間記錄日志
?
??????????學生:楊茵????????????????????日期:2016/4/8
??????????教師:王建民????????????????????課程:軟件工程
| 日期 | 開始時間 | 結束時間 | 中斷時間 | 凈時間 | 活動 | 備注 | C | U |
| 4/3 | ? | ? | ? | ? | ? | ? | ? | ? |
| 4/4 | ? | ? | ? | ? | ? | ? | ? | ? |
| 4/5 | 14:00 | 15:50 | 10 | 100 | 聽課 | ? | ? | ? |
| 4/5 | 16:14 | 17:57 | 10 | 103 | 編程序 課堂測試 | ? | ? | ? |
| 4/6 | 15:00 | 17:30 | 10 | 140 | 編程序 網頁 | ? | ? | ? |
| 4/7 | 18:10 | 21:43 | 10 | 203 | 結對編程序 | 休息 | ? | ? |
| 4/8 | 16:30 | 18:00 | 10 | 80 | 結對編程序 | 休息 | ? | ? |
| 4/8 | 19:11 | 23:40 | 11 | 258 | 結對編程序 | 聊天 | ? | ? |
| 4/9 | 14:17 | 17:52 | 13 | 202 | 總結程序,寫博文,讀《構建之法》 | ? | ? | ? |
轉載于:https://www.cnblogs.com/yyting/p/5371719.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的软件工程结对作业02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 防水卷材防水薄膜是干什么用的性能是什么
- 下一篇: 带电绝缘涂覆机器人如何作业?