软件工程个人作业03

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程个人作业03相关的知识,希望对你有一定的参考价值。

对四则运算2代码按照代码规范进行改进后的代码:

技术分享
  1 package operation;
  2 
  3 import java.util.*;
  4 
  5 public class SiZeYunSuan {
  6 
  7     void result()
  8     {
  9         Scanner sca=new Scanner(System.in);
 10         Operation op=new Operation();
 11         //确定出题数量
 12         System.out.println("输入出题数量 ");
 13         int num=sca.nextInt();
 14         while(num<=0)
 15         {
 16             System.out.println("输入不合法,重新输入");
 17             num=sca.nextInt();
 18         }
 19         String s[]=new String[num];
 20         //确定数值范围
 21         System.out.println("输入进行运算的最低和最高数值范围(整数不为负数,且最大值大于最小值)");
 22         int min,max;
 23         min=sca.nextInt();
 24         max=sca.nextInt();
 25         while((min<0)||(max<=min))
 26         {
 27             System.out.println("输入不合法,重新输入");
 28             min=sca.nextInt();
 29             max=sca.nextInt();
 30         }
 31         //确定是否有括号
 32         System.out.println("输入  (0)有括号  (1)无括号 ");
 33         int k=sca.nextInt();
 34         int i,j;
 35         //有括号
 36         if(k==0)
 37         {
 38             for(i=0;i<num;i++)
 39             {
 40                 j=0;
 41                 boolean bool=true;
 42                 s[i]=op.bra(min, max);
 43                 //判断是否重复
 44                 while(bool&&(i!=0))
 45                 {
 46                     while(s[i].equals(s[j]))
 47                     {
 48                         s[i]=op.bra(min, max);
 49                         j=0;
 50                     }
 51                     j++;
 52                     if(j==i)
 53                     {
 54                         bool=false;
 55                     }
 56                 }
 57                 System.out.println("("+(i+1)+") "+s[i]);
 58             }
 59         }
 60         else if(k==1)
 61         {
 62             //确定是否有乘除法
 63             int select;
 64             System.out.println("除加减法之外,选择运算是否有乘除法 ");
 65             System.out.println("输入  (0)无乘除法(加减无负数)  (1)无乘除法(加减有负数)  "
 66                     +"\n"+"(2)只有乘法  (3)只有除法(无余数)  (4)只有除法(有余数)  (5)混合运算 ");
 67             select=sca.nextInt();
 68             if(select==0)
 69             {
 70                 for(i=0;i<(num/2);i++)
 71                 {
 72                     j=0;
 73                     boolean bool=true;
 74                     s[i]=op.addition(min, max);
 75                     //判断是否重复
 76                     while(bool&&(i!=0))
 77                     {
 78                         while(s[i].equals(s[j]))
 79                         {
 80                             s[i]=op.addition(min, max);
 81                             j=0;
 82                         }
 83                         j++;
 84                         if(j==i)
 85                         {
 86                             bool=false;
 87                         }
 88                     }
 89                     System.out.println("("+(i+1)+") "+s[i]);
 90                 }
 91                 for(i=(num/2);i<num;i++)
 92                 {
 93                     j=num/2;
 94                     boolean bool=true;
 95                     s[i]=op.subtraction(min, max);
 96                     //判断是否重复
 97                     while(bool&&(i!=num/2))
 98                     {
 99                         while(s[i].equals(s[j]))
100                         {
101                             s[i]=op.subtraction(min, max);
102                             j=num/2;
103                         }
104                         j++;
105                         if(j==i)
106                         {
107                             bool=false;
108                         }
109                     }
110                     System.out.println("("+(i+1)+") "+s[i]);
111                 }
112             }
113             else if(select==1)
114             {
115                 for(i=0;i<(num/2);i++)
116                 {
117                     j=0;
118                     boolean bool=true;
119                     s[i]=op.addition(min, max);
120                     //判断是否重复
121                     while(bool&&(i!=0))
122                     {
123                         while(s[i].equals(s[j]))
124                         {
125                             s[i]=op.addition(min, max);
126                             j=0;
127                         }
128                         j++;
129                         if(j==i)
130                         {
131                             bool=false;
132                         }
133                     }
134                     System.out.println("("+(i+1)+") "+s[i]);
135                 }
136                 for(i=(num/2);i<num;i++)
137                 {
138                     j=num/2;
139                     boolean bool=true;
140                     s[i]=op.subtraction1(min, max);
141                     //判断是否重复
142                     while(bool&&(i!=num/2))
143                     {
144                         while(s[i].equals(s[j]))
145                         {
146                             s[i]=op.subtraction1(min, max);
147                             j=num/2;
148                         }
149                         j++;
150                         if(j==i)
151                         {
152                             bool=false;
153                         }
154                     }
155                     System.out.println("("+(i+1)+") "+s[i]);
156                 }
157             }
158             else if(select==2)
159             {
160                 for(i=0;i<(num/3);i++)
161                 {
162                     j=0;
163                     boolean bool=true;
164                     s[i]=op.addition(min, max);
165                     //判断是否重复
166                     while(bool&&(i!=0))
167                     {
168                         while(s[i].equals(s[j]))
169                         {
170                             s[i]=op.addition(min, max);
171                             j=0;
172                         }
173                         j++;
174                         if(j==i)
175                         {
176                             bool=false;
177                         }
178                     }
179                     System.out.println("("+(i+1)+") "+s[i]);
180                 }
181                 for(i=num/3;i<(2*(num/3));i++)
182                 {
183                     j=num/3;
184                     boolean bool=true;
185                     s[i]=op.subtraction(min, max);
186                     //判断是否重复
187                     while(bool&&(i!=num/3))
188                     {
189                         while(s[i].equals(s[j]))
190                         {
191                             s[i]=op.subtraction(min, max);
192                             j=num/3;
193                         }
194                         j++;
195                         if(j==i)
196                         {
197                             bool=false;
198                         }
199                     }
200                     System.out.println("("+(i+1)+") "+s[i]);
201                 }
202                 for(i=(2*(num/3));i<num;i++)
203                 {
204                     j=(2*(num/3));
205                     boolean bool=true;
206                     s[i]=op.multiplication(min, max);
207                     //判断是否重复
208                     while(bool&&(i!=(2*(num/3))))
209                     {
210                         while(s[i].equals(s[j]))
211                         {
212                             s[i]=op.multiplication(min, max);
213                             j=(2*(num/3));
214                         }
215                         j++;
216                         if(j==i)
217                         {
218                             bool=false;
219                         }
220                     }
221                     System.out.println("("+(i+1)+") "+s[i]);
222                 }
223             }
224             else if(select==3)
225             {
226                 for(i=0;i<(num/3);i++)
227                 {
228                     j=0;
229                     boolean bool=true;
230                     s[i]=op.addition(min, max);
231                     //判断是否重复
232                     while(bool&&(i!=0))
233                     {
234                         while(s[i].equals(s[j]))
235                         {
236                             s[i]=op.addition(min, max);
237                             j=0;
238                         }
239                         j++;
240                         if(j==i)
241                         {
242                             bool=false;
243                         }
244                     }
245                     System.out.println("("+(i+1)+") "+s[i]);
246                 }
247                 for(i=num/3;i<(2*(num/3));i++)
248                 {
249                     j=num/3;
250                     boolean bool=true;
251                     s[i]=op.subtraction(min, max);
252                     //判断是否重复
253                     while(bool&&(i!=num/3))
254                     {
255                         while(s[i].equals(s[j]))
256                         {
257                             s[i]=op.subtraction(min, max);
258                             j=num/3;
259                         }
260                         j++;
261                         if(j==i)
262                         {
263                             bool=false;
264                         }
265                     }
266                     System.out.println("("+(i+1)+") "+s[i]);
267                 }
268                 for(i=(2*(num/3));i<num;i++)
269                 {
270                     j=(2*(num/3));
271                     boolean bool=true;
272                     s[i]=op.division(min, max);
273                     //判断是否重复
274                     while(bool&&(i!=(2*(num/3))))
275                     {
276                         while(s[i].equals(s[j]))
277                         {
278                             s[i]=op.division(min, max);
279                             j=(2*(num/3));
280                         }
281                         j++;
282                         if(j==i)
283                         {
284                             bool=false;
285                         }
286                     }
287                     System.out.println("("+(i+1)+") "+s[i]);
288                 }
289             }
290             else if(select==4)
291             {
292                 for(i=0;i<(num/3);i++)
293                 {
294                     j=0;
295                     boolean bool=true;
296                     s[i]=op.addition(min, max);
297                     //判断是否重复
298                     while(bool&&(i!=0))
299                     {
300                         while(s[i].equals(s[j]))
301                         {
302                             s[i]=op.addition(min, max);
303                             j=0;
304                         }
305                         j++;
306                         if(j==i)
307                         {
308                             bool=false;
309                         }
310                     }
311                     System.out.println("("+(i+1)+") "+s[i]);
312                 }
313                 for(i=num/3;i<(2*(num/3));i++)
314                 {
315                     j=num/3;
316                     boolean bool=true;
317                     s[i]=op.subtraction(min, max);
318                     //判断是否重复
319                     while(bool&&(i!=num/3))
320                     {
321                         while(s[i].equals(s[j]))
322                         {
323                             s[i]=op.subtraction(min, max);
324                             j=num/3;
325                         }
326                         j++;
327                         if(j==i)
328                         {
329                             bool=false;
330                         }
331                     }
332                     System.out.println("("+(i+1)+") "+s[i]);
333                 }
334                 for(i=(2*(num/3));i<num;i++)
335                 {
336                     j=(2*(num/3));
337                     boolean bool=true;
338                     s[i]=op.division1(min, max);
339                     //判断是否重复
340                     while(bool&&(i!=(2*(num/3))))
341                     {
342                         while(s[i].equals(s[j]))
343                         {
344                             s[i]=op.division1(min, max);
345                             j=(2*(num/3));
346                         }
347                         j++;
348                         if(j==i)
349                         {
350                             bool=false;
351                         }
352                     }
353                     System.out.println("("+(i+1)+") "+s[i]);
354                 }
355             }
356             else if(select==5)
357             {
358                 for(i=0;i<num;i++)
359                 {
360                     j=0;
361                     boolean bool=true;
362                     s[i]=op.mixop(min, max);
363                     //判断是否重复
364                     while(bool&&(i!=0))
365                     {
366                         while(s[i].equals(s[j]))
367                         {
368                             s[i]=op.mixop(min, max);
369                             j=0;
370                         }
371                         j++;
372                         if(j==i)
373                         {
374                             bool=false;
375                         }
376                     }
377                     System.out.println("("+(i+1)+") "+s[i]);
378                 }
379             }
380             else
381             {
382                 System.out.println("输入错误");
383             }
384         }
385         else
386         {
387             System.out.println("输入不合法");
388         }
389     }
390     public static void main(String[] args) {
391         try
392         {
393             SiZeYunSuan s=new SiZeYunSuan();
394             s.result();
395         }
396         catch(Exception e)
397         {
398             System.out.println("输入不合法,请重新执行,按照要求输入");
399         }
400     }
401 
402 }
403 
404 package operation;
405 
406 class Operation {
407     Random1 ran1=new Random1();
408     
409     String bra(int min,int max)//有括号
410     {
411         String str="";
412         int a[];
413         a=new int[10];
414         int d=ran1.setRandom0(8)+3;//算式内数的个数
415         for(int i=0;i<d;i++)
416         {
417             int c1=ran1.setRandom0(4);//确定运算符号
418             a[i]=ran1.setRandom(min,max);//确定参加运算的数
419                 
420             if(i==0)
421             {
422                 str+="(";
423             }
424             str+=a[i];
425             if(i==(d/2))
426             {
427                 str+=")";
428             }
429             if(c1==0&&i!=d-1)
430             {
431                 str+="+";
432             }
433             if(c1==1&&i!=d-1)
434             {
435                 str+="-";
436             }
437             if(c1==2&&i!=d-1)
438             {
439                 str+="x";
440             }
441             if(c1==3&&i!=d-1)
442             {
443                 str+="÷";
444             }
445             if(i==d-1)
446             {
447                 str+="=";
448             }
449         }
450         return str;
451     }
452                 
453     String mixop(int min,int max)//有括号
454     {
455         String str="";
456         int a[];
457         a=new int[10];
458         int d=ran1.setRandom0(8)+3;//算式内数的个数
459         for(int i=0;i<d;i++)
460         {
461             int c1=ran1.setRandom0(4);//确定运算符号
462             a[i]=ran1.setRandom(min,max);//确定参加运算的数
463             str+=a[i];
464             if(c1==0&&i!=d-1)
465             {
466                 str+="+";
467             }
468             if(c1==1&&i!=d-1)
469             {
470                 str+="-";
471             }
472             if(c1==2&&i!=d-1)
473             {
474                 str+="x";
475             }
476             if(c1==3&&i!=d-1)
477             {
478                 str+="÷";
479             }
480             if(i==d-1)
481             {
482                 str+="=";
483             }
484         }
485         return str;
486     }
487     
488 String addition(int min,int max)//加法
489     {
490         String str="";
491         int a[],c,i;
492         c=ran1.setRandom(2, 4);//加法运算的个数,最少2个,最多4个
493         a=new int[c];
494         for(i=0;i<c;i++)
495         {
496             a[i]=ran1.setRandom(min,max);
497             if(i<(c-1))
498             {
499                 str+=a[i]+" + ";
500             }
501             else
502             {
503                 str+=a[i]+" =";
504             }
505         }
506         return str;
507     }
508     
509     String subtraction(int min,int max)//减法无负数
510     {
511         String str="";
512         int a[],c,i,re=0;//a[]随机数存放的数组  
513         c=ran1.setRandom(2, 4);//减法运算的个数,最少2个,最多4个
514         a=new int[c];
515         for(i=0;i<c;i++)
516         {
517             a[i]=ran1.setRandom(min,max);
518             if(i>0)
519                 re+=a[i];
520         }
521         while(a[0]<re)//当最大值比其他

以上是关于软件工程个人作业03的主要内容,如果未能解决你的问题,请参考以下文章

软件工程个人作业03-网页版四则运算

软件工程个人作业03

软件工程个人作业03

软件工程个人作业03

软件工程个人作业03

第五次个人作业:个人总结