标签:
1 package de; 2 import java.text.NumberFormat; 3 import java.util.*; 4 public class de { 5 6 public static void main(String[] args) { 7 int []a=new int[100]; 8 int []b=new int[100]; 9 double []c=new double[100]; 10 double []d=new double[100]; 11 int fw1; 12 int fw2; 13 Scanner in=new Scanner(System.in); 14 System.out.print("请输入题目的数量(小于100):"); 15 int n=in.nextInt(); 16 System.out.print("是否加减有负数(Y OR N):"); 17 String fs=in.next(); 18 System.out.print("是否有乘除法(Y OR N):"); 19 String cc=in.next(); 20 System.out.print("是否有小数(Y OR N):"); 21 String xs=in.next(); 22 if(xs.equals("N")) 23 { 24 System.out.print("请输入整数数值的范围,不支持小数(0~100)左边:"); 25 fw1=in.nextInt(); 26 System.out.print("请输入整数数值的范围,不支持小数(0~100)右边:"); 27 fw2=in.nextInt(); 28 for(int i=0;i<n;i++) 29 { 30 do 31 { 32 a[i]=(int)(Math.random()*100); 33 }while(!(a[i]<=fw2&&a[i]>=fw1)); 34 do 35 { 36 b[i]=(int)(Math.random()*100); 37 }while(!(b[i]<=fw2&&b[i]>=fw1)); 38 } 39 for(int i=0;i<n;i++) 40 { 41 c[i]=Math.random()*100; 42 d[i]=Math.random()*100; 43 } 44 } 45 else 46 { 47 for(int i=0;i<n;i++) 48 { 49 c[i]=Math.random()*100; 50 d[i]=Math.random()*100; 51 } 52 for(int i=0;i<n;i++) 53 { 54 a[i]=(int)(Math.random()*100); 55 b[i]=(int)(Math.random()*100); 56 } 57 } 58 if(cc.equals("N")) //加减模块(没有乘除和小数) 59 { 60 for(int i=0;i<n;i++) 61 { 62 int j=(int)(Math.random()*100); 63 if(j%2==0) //偶数打印加法 64 { 65 int m=(int)(Math.random()*100); 66 if(m%2==0&&xs.equals("Y")) 67 { 68 NumberFormat nFormat=NumberFormat.getNumberInstance(); 69 nFormat.setMaximumFractionDigits(2); 70 System.out.println(nFormat.format(c[i])+"+"+nFormat.format(d[i])+"="); 71 } 72 else 73 { 74 System.out.println(a[i]+"+"+b[i]+"="); 75 } 76 } 77 else //否则打印减法 78 { 79 if(fs.equals("N")) //减法没有负数 80 { 81 int h=(int)(Math.random()*100); 82 if(h%2==0&&xs.equals("Y")) 83 { 84 if(c[i]>d[i]) 85 { 86 NumberFormat nFormat=NumberFormat.getNumberInstance(); 87 nFormat.setMaximumFractionDigits(2); 88 System.out.println(nFormat.format(c[i])+"-"+nFormat.format(d[i])+"="); 89 } 90 else 91 { 92 NumberFormat nFormat=NumberFormat.getNumberInstance(); 93 nFormat.setMaximumFractionDigits(2); 94 System.out.println(nFormat.format(d[i])+"-"+nFormat.format(c[i])+"="); 95 } 96 } 97 else 98 { 99 if(a[i]>b[i]) 100 { 101 System.out.println(a[i]+"-"+b[i]+"="); 102 } 103 else 104 { 105 System.out.println(b[i]+"-"+a[i]+"="); 106 } 107 } 108 } 109 else 110 { 111 int l=(int)(Math.random()*100); 112 if(l%2==0&&xs.equals("Y")) 113 { 114 NumberFormat nFormat=NumberFormat.getNumberInstance(); 115 nFormat.setMaximumFractionDigits(2); 116 System.out.println(nFormat.format(c[i])+"-"+nFormat.format(d[i])+"="); 117 } 118 else 119 { 120 System.out.println(a[i]+"-"+b[i]+"="); 121 } 122 } 123 } 124 } 125 } 126 else if(cc.equals("Y")) //包括乘除模块 127 { 128 for(int i=0;i<n;i++) 129 { 130 int m=(int)(Math.random()*100); 131 if(m%2==0) //偶数则打印加减 132 { 133 int j=(int)(Math.random()*100); 134 if(j%2==0) //偶数打印加法 135 { 136 System.out.println(a[i]+"+"+b[i]+"="); 137 } 138 else //否则打印减法 139 { 140 if(fs.equals("N")) //减法没有负数 141 { 142 if(a[i]>b[i]) 143 { 144 System.out.println(a[i]+"-"+b[i]+"="); 145 } 146 else 147 { 148 System.out.println(b[i]+"-"+a[i]+"="); 149 } 150 } 151 else 152 { 153 System.out.println(a[i]+"-"+b[i]+"="); 154 } 155 } 156 } 157 else 158 { 159 int l=(int)(Math.random()); 160 if(l%2==0) 161 { 162 System.out.println(a[i]+"x"+b[i]+"="); 163 } 164 else 165 { 166 System.out.println(a[i]+"÷"+b[i]+"="); 167 } 168 } 169 } 170 } 171 } 172 }
测试结果:
个人心得:写这个感觉自己晕晕哒的~~~,因为我在里面实在是用了很多if,else,eles-if,导致很多时候把自己弄得头都大了。看了别人的代码,发现自己写的真的太烂了,代码冗余,算法复杂....,以后还得多加努力!!!因为一些原因导致没有按时上交,非常抱歉迟交了!!!在这里保证以后会按时完成!!!!!!
标签:
原文地址:http://www.cnblogs.com/kong21/p/4385337.html