1.源代码:
1 package one; 2 3 import java.util.Scanner; 4 5 public class SecondCalculate 6 { 7 public static void main(String args[]) 8 { 9 @SuppressWarnings("resource") 10 Scanner in=new Scanner(System.in); 11 //---------------要求规定--------- 12 System.out.print("请输入打印运算式的数量:"); 13 int number=in.nextInt(); 14 15 char symbollist[]=new char[4]; 16 System.out.print("①请问是否有乘除法(1:是 2:不是):"); 17 int flag=in.nextInt(); 18 if(flag==1) 19 { 20 symbollist[0]='+'; 21 symbollist[1]='-'; 22 symbollist[2]='*'; 23 symbollist[3]='/'; 24 } 25 else 26 { 27 symbollist[0]='+'; 28 symbollist[1]='-'; 29 symbollist[2]='+'; 30 symbollist[3]='-'; 31 } 32 33 System.out.print("②请问是否有括号(1:是 2:不是):"); 34 int boolbracket=in.nextInt(); 35 36 System.out.print("③请问需要数据范围是(先输入下界,后输入上界):"); 37 double min=in.nextDouble(); 38 double max=in.nextDouble(); 39 40 System.out.print("④请问加减有无负数(1:有 2.无):"); 41 int negative=in.nextInt(); 42 if(negative==2) 43 { 44 if(min<0) 45 { 46 min=0; 47 } 48 } 49 50 if(flag==1) 51 { 52 System.out.print("⑤除法有无余数(1:是 2:不是):"); 53 int boolremainder=in.nextInt(); 54 } 55 System.out.println(); 56 57 58 int space[][]=new int [number][10]; 59 int symtime,time; 60 61 for(time=0;time<number;) 62 { 63 for(int i=0;i<10;i++) 64 { 65 space[time][i]=(int)(Math.random()*(max-min+1)+min); 66 } 67 //判断所生成的数组中是否和之前产生的数组完全一致 68 int flag1=1; 69 for(int i=0;i<time;i++) 70 { 71 for(int j=0;j<10;j++) 72 { 73 if(space[time][j]==space[i][j]) 74 { 75 flag1=0; 76 } 77 else 78 { 79 flag1=1; 80 } 81 } 82 } 83 //随机判断下面要产生的式子是由几个数字构成的 84 int s=(int)(Math.random()*(10-2+1)+2); 85 86 if(flag1==1) 87 { 88 if(boolbracket==1&&s!=2) 89 { 90 System.out.print("("); 91 } 92 93 //运算符数组 94 char p[]=new char [s-1]; 95 for(int i=0;i<s-1;i++) 96 { 97 symtime=(int)(Math.random()*(3-0+1)+0); 98 p[i]=symbollist[symtime]; 99 } 100 101 System.out.print(space[time][0]); 102 103 for(int i=1;i<s;i++) 104 { 105 System.out.print(p[i-1]); 106 if(space[time][i]<0) 107 { 108 System.out.print("("+space[time][i]+")"); 109 } 110 else 111 { 112 System.out.print(space[time][i]); 113 } 114 115 if(boolbracket==1&&i==(s-1)/2&&s!=2) 116 { 117 System.out.print(")"); 118 } 119 } 120 System.out.println("="); 121 time++; 122 } 123 } 124 } 125 }
2.代码测试: