小学生四则运算出题系统1.0与2.0

 
思路:根据输出格式,可以定义三个随机数a、b和c。 //a控制前一个数,b控制加减乘除,c控制后一个数。根据题目要求固定输出30 道题。设置一个for循环进行控制题目的数量。
然后分别处理加、减、乘和除。注意限定条件。使用do while循环与if循环的嵌套来实现,最后输出:
代码如下:
package sizeyunsuan;
import java.util.Random;
import java.util.Scanner;
public class Sizeyunsuan
{
  
   public static void main(String[]args)
   {  
  //a控制前一个数,b控制加减乘除,c控制后一个数。
    int a=(int)(Math.random()*100);
    int b=(int)(Math.random()*4);
    int c=(int)(Math.random()*100);
   
 for(int i=1;i<=30;i++)
 {
  b=(int)(Math.random()*4);//产生[0,4)的随机数,用此来控制加减乘除,0代表加,依次类推。
  
  
  if(b==0)//实现两数相加不超过100
  { 
    do
    {
     a=(int)(Math.random()*100);
     c=(int)(Math.random()*100);
     if(a+c<100)
     {
      System.out.println("第"+i+"道题:"+a+"+"+c+"=");
      break;
     }
    
    }while(a>=0);
  }
  
  
  if(b==1)//实现两数相减大于0
  {
   do
   {
    a=(int)(Math.random()*100);
    c=(int)(Math.random()*100);
    if(a>c)
    {
     System.out.println("第"+i+"道题:"+a+"-"+c+"=");
     break;
    }
   }while(a>=0);
  }
  
  
  
  if(b==2)//实现两数相乘不超过100
  {
   
   do
   {
   a=(int)(Math.random()*100);
   c=(int)(Math.random()*100);
   if(a*c<100)
   {
    System.out.println("第"+i+"道题:"+a+"*"+c+"=");
    break;
   }
   }while(a>=0);
   
   
  }
  
  
   if(b==3)//解决整除问题
  {
    do
    {
    a=(int)(Math.random()*100);
    c=(int)(Math.random()*100);
    if(c!=0&&a%c==0)
    {
     System.out.println("第"+i+"道题:"+a+"/"+c+"=");
     break;
    }
    }while(a>=0);
   
   
   
  }
  
  
  
  }
 
   }

}


小学生小学生四则运算出题系统2.0
要求:
1.能满足小学生四则运算出题系统1.0。
2.能自由控制题目的数量。
3.能够控制输出形式(控制几个一排输出)。

思路:首先在小学生四则运算出题系统1.0的基础上先解决小学生四则运算出题系统2.0的简单要求。使用Scanner函数来输入j和k。j来控制题目的个数。k来控制一行几个。题目数目就更改一下for循环结构。
一行几个改变输出,在输出处嵌套一个for循环,来控制几个一换行。
 
 
package sizeyunsuan;
import java.util.Random;
import java.util.Scanner;
public class Sizeyunsuan
{
  
   public static void main(String[]args)
   {  
  //a控制前一个数,b控制加减乘除,c控制后一个数。
    int a=(int)(Math.random()*100);
    int b=(int)(Math.random()*4);
    int c=(int)(Math.random()*100);
   
    System.out.println("请输入您想要多少道题");
    Scanner in=new Scanner(System.in);
    int j;
    j=in.nextInt();
    System.out.println("请输入您想几个一排:");
    int k;
    k=in.nextInt();
   
 for(int i=1;i<=j;i++)
 {
  b=(int)(Math.random()*4);//产生[0,4)的随机数,用此来控制加减乘除,0代表加,依次类推。
  
  
  if(b==0)//实现两数相加不超过100
  { 
    do
    {
     a=(int)(Math.random()*100);
     c=(int)(Math.random()*100);
     if(a+c<100)
     {
      if(i%k==0)
      {
      System.out.println("第"+i+"道题:"+a+"+"+c+"="+"         ");
      break;
      }
      else
      {
       System.out.print("第"+i+"道题:"+a+"+"+c+"="+"         ");
       break;
      }
     }
    
    }while(a>=0);
  }
  
  
  if(b==1)//实现两数相减大于0
  {
   do
   {
    a=(int)(Math.random()*100);
    c=(int)(Math.random()*100);
    if(a>c)
    {
      if(i%k==0)
      {
      System.out.println("第"+i+"道题:"+a+"-"+c+"="+"         ");
      break;
      }
      else
      {
       System.out.print("第"+i+"道题:"+a+"-"+c+"="+"         ");
       break;
      }
    }
   }while(a>=0);
  }
  
  
  
  if(b==2)//实现两数相乘不超过100
  {
   
   do
   {
   a=(int)(Math.random()*100);
   c=(int)(Math.random()*100);
   if(a*c<100)
   {
     if(i%k==0)
     {
     System.out.println("第"+i+"道题:"+a+"*"+c+"="+"         ");
     break;
     }
     else
     {
      System.out.print("第"+i+"道题:"+a+"*"+c+"="+"         ");
      break;
     }
   }
   }while(a>=0);
   
   
  }
  
  
   if(b==3)//解决整除问题
  {
    do
    {
    a=(int)(Math.random()*100);
    c=(int)(Math.random()*100);
    if(c!=0&&a%c==0)
    {
      if(i%k==0)
      {
      System.out.println("第"+i+"道题:"+a+"/"+c+"="+"         ");
      break;
      }
      else
      {
       System.out.print("第"+i+"道题:"+a+"/"+c+"="+"         ");
       break;
      }
    }
    }while(a>=0);
   
   
   
  }
  
  
  
  }
 
   }

}
 
教训:
1.break的重要性
2.do while语句循环条件是反的  注意!!!

猜你喜欢

转载自www.cnblogs.com/wind-and-sky/p/11553318.html