开学第二周Java课堂测验暨简易出题代码

代码可以实现的功能包括实现两位数的四则运算,并同时保证乘法的结果不超过100,除法的结果为整数,减法的结果为正。

除此以外,用户还可以设置出题的数量,以及每一行的题目数目。

源码为:

package first;

import java.util.Scanner;
import java.util.Random;
public class one {
static Scanner sc = new Scanner(System.in);
  public static void main(String[] args){
  int num1,
  num2,
  num3;
  int b;
  int aaa[][]=new int[100000][3];
  char c=' ';
  int num_end;
  int length;
  boolean jud=false;
  System.out.println("请选择生产多少道题:");
  num_end=sc.nextInt();
  System.out.println("请输入每行输出几道题:");
  length=sc.nextInt();
  for(int i=0;i<num_end;){
    Random a=new Random();
    num1=a.nextInt(101);
    num2=a.nextInt(101);
    num3=a.nextInt(101);
    b=num3%4;
    switch(b){
    case 0:
      c='+';
      break;
    case 1:
      c='-';
      break;
    case 2:
      c='*';
      break;
    case 3:
      c='/';
      break;
    }
  if(b==3&&num2==0){
    continue;
  }
  if(b==2&&(num1*num2)>100){
    continue;
  }
  if(b==3&&(num1%num2)!=0){
    continue;
  }
  if(b==1&&((num1-num2)<0)) {
    continue;
  }
  else{
    jud=true;
  }
  for(int u=0;u<i;u++){
    int a1=0,a2=0,a3=0;
    a1=aaa[i][0];
    a2=aaa[i][1];
    a3=aaa[i][2];
    if(a1==num1&&a2==num2&&a3==b){
      jud=false;
    }
  }
  if(jud){
    int end=i+1;
    System.out.print("这是第" + end + "道题: " +num1 + c + num2 + "= ");
    i++;
  }
  if(i<100000){
  aaa[i][0]=num1;
  aaa[i][1]=num2;
  aaa[i][2]=b;
  }
  if(i%length==0)
  System.out.println();
    }
  }
}

运行截图为:

思路:首先设置一个二维数组,第一行用来存储第一个随机数,第二行用来存储第二个随机数,第三行用来存储运算符,由于是一一对应关系

,所以每一列为一个符合规则的四则运算,之后根据读取用户要输出的题目数目,循环该次数,输出该次数的题目即可。

posted @ 2019-09-20 08:22  或者活着  阅读(202)  评论(0编辑  收藏  举报