zoukankan      html  css  js  c++  java
  • 软件工程结对作业02

    设计思想:

          写好java程序后,需要将程序嵌入网页中,编写jsp脚本文件,使用数组来实现javajsp的交互;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);
                    //分母不等于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

    总结程序,写博文,读《构建之法》

     

     

     
  • 相关阅读:
    vuex入门
    element-UI快速上手例子运行失败
    Fix协议
    KDB+
    GO基础知识(基础数据类型之字符串、常量)
    如何实现一个通用的、高性能的排序函数
    线性排序(如何根据年龄给100万用户数据排序)
    【转】OpenResty 究竟解决了什么痛点
    idea项目常用的设置
    php站点ajax请求返回数据异常处理的经历
  • 原文地址:https://www.cnblogs.com/yyting/p/5371719.html
Copyright © 2011-2022 走看看