9.22日

编码了《构建之法》中出数学题的代码,同时也是课下作业的第三阶段,用java实现

代码如下:

import java.util.*;
public class random_math {
public static void main(String[] args) {
Random r = new Random();
int flag = 0;
Scanner input = new Scanner(System.in);
int[][] std = new int[100][3] ;
System.out.print("请输入想要定制的数量");
int n = input.nextInt();
System.out.print("请输入最大数的值");
int Num1 = input.nextInt();
System.out.println("请输入最小数值");
int Num2 = input.nextInt();
System.out.println("是否需要乘除法");
System.out.println("1、需要,2、不需要");
System.out.println("你的选择是:");
int tem= input.nextInt();
if(tem ==1)
{
System.out.println("是否需要括号");
System.out.println("1、需要,0、不需要");
System.out.println("你的选择是:");
int tem1 = input.nextInt();
if (tem1 == 0)
{
for (int i=0;i<n;i++) {
flag=0;
int num1 = (int) Num2 + (int) (Math.random() * (Num1 - Num2));
int num2 = (int) Num2 + (int) (Math.random() * (Num1 - Num2));
int num3 = r.nextInt(3);
std[i][0]=num1;
std[i][1]=num2;
std[i][2]=num3;
for (int j=0;j<std.length-1;j++) {
if (num1 != std[j][0]) flag=1;
if (num2 != std[j][1]) flag=1;
if (num3 != std[j][2]) flag=1;
}
if (flag == 1) {
switch(num3) {
case 0:System.out.println(num1 + "+" + num2 + '=');break;
case 1:System.out.println(num1 + "-" + num2 + '=');break;
case 2:System.out.println(num1 + "*" + num2 + '=');break;
case 3:System.out.println(num1 + "/" + num2 + '=');break;
}
}else i--;
}
}
else {
for (int i=0;i<n;i++) {
flag=0;
int num1 = (int) Num2 + (int) (Math.random() * (Num1 - Num2));
int num2 = (int) Num2 + (int) (Math.random() * (Num1 - Num2));
int num3 = r.nextInt(3);
std[i][0]=num1;
std[i][1]=num2;
std[i][2]=num3;
for (int j=0;j<std.length-1;j++) {
if (num1 != std[j][0]) flag=1;
if (num2 != std[j][1]) flag=1;
if (num3 != std[j][2]) flag=1;
}
if (flag == 1) {
int tem2 = r.nextInt(2);//随机条件()
switch(tem2) {
case 0:
switch(num3) {
case 0:System.out.println("(" + num1 + "+" + num2+ ')'+'*'+(num1-tem2) + '=');break;
case 1:System.out.println("(" + num1 + "-" + num2+ ')'+'/'+(num2 -tem1) + '=');break;
}
break;
case 1:
switch(num3) {
case 0:System.out.println(num1 +"-"+"(" + num1 + "+" + num2+ ')'+ '=');break;
case 1:System.out.println((num2-tem2)+"+"+"(" + num1 + "-" + num2+ ')'+ '=');break;
case 2:System.out.println((num2- tem1)+"/"+"(" + num1 + "*" + num2+ ')' + '=');break;
case 3:System.out.println((num1- tem1)+"*"+"(" + num1 + "/" + num2+ ')' + '=');break;
}
break;
case 2:
switch(num3) {
case 0:System.out.println("(" + num1 + "+" + num2+ ')'+"*"+'(' + (num1-tem1) + "-" + (num2 -tem2)+ ')'+ '=');break;
case 1:System.out.println("(" + num1 + "-" + num2+ ')'+"/"+'(' + (num1-tem1) + "-" + (num2 -tem2)+ ')' + '=');break;
case 2:System.out.println("(" + num1 + "-" + num2+ ')'+"+"+'(' + (num1-tem1) + "*" + (num2 -tem2)+ ')'+ '=');break;
case 3:System.out.println("(" + num1 + "-" + num2+ ')'+"-"+'(' + (num1-tem1) + "/" + (num2 -tem2)+ ')'+ '=');break;
}
break;

}

}else i--;
}
}

}

else if (tem ==2) {
for (int i=0;i<n;i++) {
flag=0;
int num1 = (int) Num2 + (int) (Math.random() * (Num1 - Num2));
int num2 = (int) Num2 + (int) (Math.random() * (Num1 - Num2));
int num3 = r.nextInt(1);
std[i][0]=num1;
std[i][1]=num2;
std[i][2]=num3;
for (int j=0;j<std.length-1;j++) {
if (num1 != std[j][0]) flag=1;
if (num2 != std[j][1]) flag=1;
if (num3 != std[j][2]) flag=1;
}
if (flag == 1) {
switch(num3) {
case 0:System.out.println(num1 + "+" + num2 + '=');break;
case 1:System.out.println(num1 + "-" + num2 + '=');break;
//case 2:System.out.println(num1 + "*" + num2 + '=');break;
//case 3:System.out.println(num1 + "/" + num2 + '=');break;
}
}else i--;
}
}
else System.out.println("您输入的数据有误");
}

}

posted @ 2021-09-22 23:33  炽灬  阅读(31)  评论(0)    收藏  举报