小学四则运算网页版
2016-04-10 08:29
621 查看
设计思想:
写好java程序后,需要将程序嵌入网页中,编写jsp脚本文件,使用数组来实现java和jsp的交互;session标签,可以实现网页之间参数的传递。
源程序代码[b](java):[/b]
结果截图:
NewFile.html
NewFile.jsp
random3.java
结果截图:
编程总结:
我们已经写好了java程序,功能也基本实现,但是在程序嵌入到网页过程中,我们遇到了很多困难,由于我们的程序并没有分模块去写,所以在调用时出现了很多困难,正确结果及用户输入的结果也没有保存在数组里面,所以在网页中不能传递数组值进行判断;后我们查阅了资料,借鉴阅读了一些已完成的程序,但是我们的程序并没有修改正确,嵌入不正确,没有完成后面的功能。
周活动总结表
日期 2016/4/8
时间记录日志
学生:严羽卿 日期:2016/4/8
教师:王建民 课程:软件工程
写好java程序后,需要将程序嵌入网页中,编写jsp脚本文件,使用数组来实现java和jsp的交互;session标签,可以实现网页之间参数的传递。
源程序代码[b](java):[/b]
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); //分母不等于0 c=(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+"="); else System.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+"="); else System.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+"="); else System.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+"="); else System.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; } else r1=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); //分母不等于0 c=(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+"="); else System.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+"="); else System.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+"="); else System.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+"="); else System.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; } else r1=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 | 总结程序,阅读《构建之法》 |
相关文章推荐
- Qt Creator 插件开发(2):第一个插件
- 电梯演讲
- 风险管理、收尾管理、知识产权管理
- Tricks(二十九)—— 2^10000 的位数
- LoadRunner下设置监控Windows系统资源
- 带有加密功能的 SQLite Qt 插件
- 理解矩阵乘法
- (转)如何修复ubuntu的UEFI引导
- Excel之定位和查找
- java中的变量使用规则。
- 51系列小型操作系统精髓 简单实现3
- 内存数据库
- Struts2文件下载
- mac远程登陆iphone,和密码修改
- 使用 jsoup 下载图片
- SQL找出重复记录然后重新编号
- [Android]知识总结一:Activity
- Qt的Script、Quick、QML的关系与总结
- docker配置
- hadoop入门篇-简介(1)