个人作业软件工程02

Posted 江山之夜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人作业软件工程02相关的知识,希望对你有一定的参考价值。

设计思想:    题目避免重复  将每次产生的三个随机数分别存入三个数组,产生的新随机数与已经产生的每个进行比较,若三个都相同则重新产生前两个,直到不相同。

              控制是否有乘除  通过控制产生代表运算符的随机数来控制是否有乘除号的产生,随机数为0到1,则无乘除,随机数为0到3则有乘除。

              控制数值范围    通过Math.random()函数来控制随机数产生的范围。

              控制加减有无负数   只有减法有负数,所以只要在减号运算符里添加if语句,无负数,则a必须大于b,否则重新生成,计数减一,有负数,则a必须小于b;

              控制除法有无余数   只要在除号运算符里添加if语句,有余数,则a不能整除b,否则跳出循环,计数减一;无余数,则a能整除b,否则跳出循环,计数减一。

              控制括号未做出来。

源代码:

     

import java.util.Scanner;

public class A{

   public static void main(String []args){

    int a,b,c,n=0,m=0,q,w; String str=null;

    Scanner reader=new Scanner(System.in);

    System.out.print("整数运算请选 1,真分数运算请选  2:");

    n=reader.nextInt();

    System.out.print("请选择题目数量:");

    m=reader.nextInt();

    System.out.print("请选择范围:");

    q=reader.nextInt();

    w=reader.nextInt();

     //整数

    if(n==1)

   {   int e,f,g;

   System.out.print("请选择是否有乘除: 1 有     2 无");

   e=reader.nextInt();

   System.out.print("请选择加减有无负数: 1 有     2 无");

   f=reader.nextInt();

   System.out.print("请选择乘除有无余数: 1 有     2 无");

   g=reader.nextInt();

    for(int i=1;i<=m;i++)

    {    int z[]=new int[m+1];int x[]=new int[m+1];int v[]=new int[m+1];

       a=(int)(Math.random()*(w-q+1)+q);

       b=(int)(Math.random()*(w-q+1)+q);

        if(e==1)              //控制运算有乘除  

            {c=(int)(Math.random()*4+0);}

        else                 //控制运算无乘除

            { c=(int)(Math.random()*2+0);}

       z[i]=a;x[i]=b;v[i]=c;    //将随机产生的数存入三个数组

       for(int j=1;j<=i-1;j++)   //通过判断随机数的异同控制是否重复

       {

         if(z[i]==z[j]&&x[i]==x[j]&&v[i]==v[j])

            {  do        //重复则重新生成ab

               {

            a=(int)(Math.random()*(w-q+1)+q);

               b=(int)(Math.random()*(w-q+1)+q);

               }while(z[i]==z[j]&&x[i]==x[j]&&v[i]==v[j]);

            }

       }

        switch(c)

            { case 0:

                  System.out.print(a+"+"+b+"="+"\t");

                  break;

              case 1:

                  if(f==1)    //加减有余数

                    {System.out.print(a+"-"+b+"="+"\t");

                     break;}

                  else        //加减无余数

                    {if(a<b) 

                        {i--;break;}

                     else

                        {System.out.print(a+"-"+b+"="+"\t");}

                    }

               case 2:

                  System.out.print(a+"*"+b+"="+"\t");

                  break;

              case 3:

                  if(b==0)  //除数为0 则跳出循环i减一

                      {i--;break;}

                  else if(b!=0&&g==2) //乘除无余数

                      { 

                        if(a%b==0)

                         {System.out.print(a+"/"+b+"="+"\t");}

                        else

                         {i--;break;}

                      }

                  else if(b!=0&&g==1)    //乘除有余数

                      {  if(a%b==0)

                           {i--;break;}

                         else

                          {System.out.print(a+"/"+b+"="+"\t"); break;}

                        }

            }

        if(i%5==0) //5个算式一行输出

         {System.out.print("\n");}

   }

}  

 }

}

 

结果截图:

 技术分享

技术分享

技术分享

技术分享

以上是关于个人作业软件工程02的主要内容,如果未能解决你的问题,请参考以下文章

软件工程个人作业02

软件工程个人作业02

软件工程个人作业02

软件工程个人作业02

软件工程个人作业02

软件工程个人作业02