码迷,mamicode.com
首页 > 其他好文 > 详细

四则运算2

时间:2016-03-12 18:34:05      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

设计思想:

1:先按照题目要求要求满足顾客选择的条件

2:定义三个数组,一个数组保存第一个随机生成数,第二个数组保存第二个随机生成数,第三个保存生成的运算符号

3:判断有无乘除法

4:判断有无重复:第一个数组的每一位判断是否相等,如果相等判断第三个的运算符号是否相等,如果相等在判断第二个数组的数是否相等,如果都相等,重新生成第二个数,直到不相等

5:判断有无负数:如果运算符号是“-”,两个数相减,如果有负数,重新生成,直到无负数

6:判断有无余数:如果运算符是“/”,两数相除,如果有余数,重新生成,直到无余数

7:输出,判断一个运算式有几个数运算,有没有括号

源代码:

  1 package 四则运算;
  2 import java.util.Random;
  3 import java.util.Scanner;
  4 
  5 public class main {
  6     public static void main(String[] args)
  7     {
  8         System.out.println("请输入需要产生多少个四则运算式:");
  9         Scanner input = new Scanner(System.in);
 10         Scanner sc=new Scanner(System.in);
 11         int num=sc.nextInt();
 12         System.out.println("请输入你想产生的数的范围(min-max):");
 13         int min=sc.nextInt();
 14         int max=sc.nextInt();
 15         System.out.println("请输入你想产生的运算式结果是否有无负数(1:有  2:无):");
 16         int neg=sc.nextInt();
 17         System.out.println("请输入你想产生的运算式结果是否有无乘除法(1:有  2:无):");
 18         int chengchu=sc.nextInt();
 19         System.out.println("请输入你想产生的运算式结果是否有无余数(1:有  2:无):");
 20         int rem=sc.nextInt();
 21         System.out.println("请输入你想产生的运算式是否有括号(1:有  2:无):");
 22         int sem=sc.nextInt();         
 23         int zifu;
 24         int []   arr1 =  new  int [num+200] ;//保存第一个随机生成数
 25         int []   arr2 =  new  int [num+200];//保存第二个随机生成数
 26         char []   arr4 =  new  char [num+200];//保存运算符号
 27         Random rand = new Random();
 28         
 29         for(int i=0;i<num+200;i++)
 30         {
 31              arr1[i] = rand.nextInt(max-min+1)+min;//生成第一个随机生成数
 32              arr2[i] = rand.nextInt(max-min+1)+min;//生成第一个随机生成数
 33              /*判断有无乘除法*/
 34              if(chengchu==2)
 35                 {
 36                      zifu = rand.nextInt(2)+1;
 37                 }
 38                 else
 39                 {
 40                      zifu = rand.nextInt(4)+1;
 41                 }
 42             if (zifu == 1)
 43                 arr4[i] = ‘+‘;
 44             if (zifu == 2)
 45                 arr4[i] = ‘-‘;
 46             if (zifu == 3)
 47                 arr4[i] = ‘*‘;
 48             if (zifu == 4)
 49                 arr4[i] = ‘/‘;    
 50     
 51         }
 52         
 53         
 54         /*判断有无重复*/
 55         for(int i=0;i<num+200;i++)
 56         {
 57             for(int j=1;j<num+200;j++)
 58             {
 59                 if(arr1[i]==arr1[j])
 60                 {
 61                     if(arr4[i]==arr4[j])
 62                     {
 63                         if(arr2[i]==arr2[j])
 64                         {
 65                             arr2[j]=rand.nextInt(max-min+1)+min;//如果都相等,重新生成第二个数,保证不相等
 66                         }
 67                     }
 68                 }
 69             }
 70         }
 71         
 72         
 73         /*判断运算结果有无负数*/
 74         if(neg==2)
 75         {
 76             for(int i=0;i<num+200;i++)
 77             {
 78                 if(arr4[i]==‘-‘)
 79                 {
 80                     int a=arr1[i]-arr2[i];
 81                     while(a<0)//判断a是否小于0,(结果有无负数)
 82                     {
 83                         arr1[i] = rand.nextInt(max-min+1)+min;
 84                         if(arr1[i]==0)
 85                         {
 86                             arr1[i] = rand.nextInt(max-min+1)+min;
 87                         }
 88                         arr2[i] = rand.nextInt(max-min+1)+min;
 89                         {
 90                             if(arr2[i]==0)
 91                             {
 92                                 arr2[i] = rand.nextInt(max-min+1)+min;
 93                             }
 94                         }
 95                         a=arr1[i]-arr2[i];
 96                     }
 97                 }
 98             }
 99         }
100         
101         
102         /*判断运算结果有无余数*/
103         if(rem==2)
104         {
105             for(int i=0;i<num+200;i++)
106             {
107                 if(arr4[i]==‘/‘)
108                 {
109                     int a=arr1[i]%arr2[i];
110                     while(a!=0)//判断a是否等于0,(结果有无余数)
111                     {
112                         arr1[i] = rand.nextInt(max-min+1)+min;
113                         arr2[i] = rand.nextInt(max-min+1)+min;
114                         a=arr1[i]%arr2[i];
115                     }
116                 }
117             }    
118         }    
119         
120         /*输出*/
121         for(int i=0;i<num;i++)
122         {
123             int a=rand.nextInt(3)+1;
124             if(a==1)//判断一个式子有两个数还是四个数参与运算
125             {
126                 int b=rand.nextInt(3)+1;
127                 /*四个式子参与运算是否有无括号*/
128                 if(b==1)
129                 {
130                     System.out.println(arr1[i]+" "+arr4[i]+" "+arr2[i]+"+"+arr1[i+num]+" "+arr4[i+num]+" "+arr2[i+num]);
131                 }
132                 else
133                 {
134                     if(sem==1)
135                     {
136                         System.out.println("("+arr1[i]+" "+arr4[i]+" "+arr2[i]+")"+"+"+"("+arr1[i+num]+" "+arr4[i+num]+" "+arr2[i+num]+")");
137                     }
138                     else
139                     {
140                         System.out.println(arr1[i]+" "+arr4[i]+" "+arr2[i]+"+"+arr1[i+num]+" "+arr4[i+num]+" "+arr2[i+num]);
141                     }
142                 }
143             }
144             else
145             {
146                 System.out.println(arr1[i]+" "+arr4[i]+" "+arr2[i]);
147             }
148         }
149     }
150 
151 }

运行结果截图:

技术分享

技术分享

项目计划:

技术分享

时间记录日志:

技术分享

缺陷记录日志:

技术分享

 

四则运算2

标签:

原文地址:http://www.cnblogs.com/qwer113/p/5269466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!