课堂练习

        这一次的练习主要是将四则运算的程序进行进一步的改进和功能的添加,主要要求是:对负数以及对除法余数的控制以及对括号的要求和对取值范围的要求,我的主要思路是使用不同的随机数获得方法来获取负数和正数的随机数,余数主要是通过取余运算来获得余数,而取值范围则是通过用户的输入来判断产生的随机数是否符合,主要代码如下:

  1 import java.util.*;
  2 //正数的随机取值
  3 class number1{
  4     private int i;
  5     private int j;
  6     public void seti()
  7     {
  8         i = 1 + (int)(Math.random() * 100);
  9     }
 10     public int geti()
 11     {
 12         return i;
 13     }
 14     public void setj()
 15     {
 16         j = 1 + (int)(Math.random() * 99);
 17     }
 18     public int getj()
 19     {
 20         return j;
 21     }
 22     
 23 }
 24 //负数的随机取值
 25 class Number{
 26     private int i;
 27     private int j;
 28     public void seti()
 29     {
 30         i = (-1) + (int)(Math.random() * (-100));
 31     }
 32     public int geti()
 33     {
 34         return i;
 35     }
 36     public void setj()
 37     {
 38         j = (-1) + (int)(Math.random() * (-99));
 39     }
 40     public int getj()
 41     {
 42         return j;
 43     }
 44     
 45 }
 46 //运算符号的随机取值
 47 class symbol{
 48     private int a;
 49     public void seta()
 50     {
 51         a = 1 + (int)(Math.random() * 4);
 52     }
 53     public int geta()
 54     {
 55         return a;
 56     }
 57 }
 58 //分数的随机取值
 59 class number2{
 60     private int i;
 61     private int j;
 62     private int x;
 63     private int y;
 64     public void setnumber()
 65     {
 66         i = 1 + (int)(Math.random() * 100);
 67         j = 1 + (int)(Math.random() * 99);
 68         x = 1 + (int)(Math.random() * 100);
 69         y = 1 + (int)(Math.random() * 99);
 70     }
 71     public int getnumberi()
 72     {
 73         return i;
 74     }
 75     public int getnumberj()
 76     {
 77         return j;
 78     }
 79     public int getnumberx()
 80     {
 81         return x;
 82     }
 83     public int getnumbery()
 84     {
 85         return y;
 86     }
 87     
 88     
 89 }
 90 public class calculate {
 91     public static void main(String args[])
 92     {
 93         menu();
 94         System.out.println("请输入想要运行的计算");
 95         Scanner scan = new Scanner(System.in);
 96         int p;
 97         p = scan.nextInt();
 98         if(p == 1)
 99         {
100             for(int i = 0 ; i <= 29 ; i ++){
101                 number1 n1 = new number1();
102                 int a1 , a2;
103                 n1.seti();
104                 a1 = n1.geti();
105                 n1.setj();
106                 a2 = n1.getj();
107                 symbol s = new symbol();
108                 int b;
109                 s.seta();
110                 b = s.geta();
111                 if(b == 1)
112                     System.out.println(a1 + "+" + a2 + "=" + ( a1 + a2 ) );
113                 if(b == 2)
114                     System.out.println(a1 + "-" + a2 + "=" + (a1 - a2));
115                 if(b == 3)
116                     System.out.println(a1 + "*" + a2 + "=" + (a1 * a2));
117                 if(b == 4){
118                     int c = a1 % a2;
119                     int c1 = (a1 - c) / a2;
120                     System.out.println(a1 + "/" + a2 + "=" + c1 + "余" + c);
121                 }
122                     
123             }
124         }
125         if(p == 2){
126             for(int i = 0 ; i <= 29 ; i ++){
127                 Number n1 = new Number();
128                 int a1 , a2;
129                 n1.seti();
130                 a1 = n1.geti();
131                 n1.setj();
132                 a2 = n1.getj();
133                 symbol s = new symbol();
134                 int b;
135                 s.seta();
136                 b = s.geta();
137                 if(b == 1)
138                     System.out.println(a1 + "+" + "(" +a2 + ")" + "=" + ( a1 + a2 ) );
139                 if(b == 2)
140                     System.out.println(a1 + "-" + "(" +a2 + ")" + "=" + (a1 - a2));
141                 if(b == 3)
142                     System.out.println(a1 + "*" + "(" +a2 + ")" + "=" + (a1 * a2));
143                 if(b == 4){
144                     int c = ((-1) * a1) % ((-1) * a2);
145                     int c1 = ((-1) * a1 - c) / ((-1) * a2);
146                     System.out.println(a1 + "/" + "(" +a2 + ")" + "=" + c1 + "余" + c);
147                 }
148                     
149             
150             }
151         }
152         if(p == 3)
153         {
154             for(int i = 0 ; i <= 29 ; i++)
155             {
156                 number2 n2 = new number2();
157                 int b1 , b2 , b3 , b4;
158                 n2.setnumber();
159                 b1 = n2.getnumberi();
160                 b2 = n2.getnumberj();
161                 b3 = n2.getnumberx();
162                 b4 = n2.getnumbery();
163                 symbol s1 = new symbol();
164                 int c;
165                 s1.seta();
166                 c = s1.geta();
167                 if(c == 1)
168                     System.out.println(simplify(b2 , b1) + "+" + simplify(b4 , b3) + "=" + simplify(b2 * b3 + b4 * b1 , b1 * b3));
169                 if(c == 2)
170                     System.out.println(simplify(b2 , b1) + "-" + simplify(b4 , b3) + "=" + simplify(b2 * b3 - b4 * b1 , b1 * b3));
171                 if(c == 3)
172                     System.out.println(simplify(b2 , b1) + "*" + simplify(b4 , b3) + "=" + simplify(b2 * b4 , b1 * b3));
173                 if(c == 4)
174                     System.out.println(simplify(b2 , b1) + "/" + simplify(b4 , b3) + "=" + simplify(b2 * b3 , b1 * b4));
175             }
176         }
177         if(p == 4)
178         {
179             int i = 0;
180             while(i < 30){
181                 number1 n = new number1();
182                 int a1 , a2;
183                 n.seti();
184                 a1 = n.geti();
185                 n.setj();
186                 a2 = n.getj();
187                 if(a1 % a2 == 0)
188                 {
189                     i++;
190                     System.out.println(a1 + "/" + a2 + "=" + (a1 / a2));
191                 }
192             }
193         }
194         if(p == 5)
195         {
196             int i = 0;
197             while(i < 30){
198                 number1 n = new number1();
199                 int a1 , a2;
200                 n.seti();
201                 a1 = n.geti();
202                 n.setj();
203                 a2 = n.getj();
204                 if(a1 % a2 != 0)
205                 {
206                     i++;
207                     int c = a1 % a2;
208                     int c1 = (a1 - c) / a2;
209                     System.out.println(a1 + "/" + a2 + "=" + c1 + "余" + c);
210                 }
211             }
212         }
213         if(p == 6)
214         {
215             System.out.println("请输入范围的左边界:");
216             Scanner scan1 = new Scanner(System.in);
217             int a3;
218             a3 = scan1.nextInt();
219             System.out.println("请输入范围的右边界:");
220             Scanner scan2 = new Scanner(System.in);
221             int a4;
222             a4 = scan1.nextInt();
223             int i = 0;
224             while(i < 30){
225                 number1 n1 = new number1();
226                 int a1 , a2;
227                 n1.seti();
228                 a1 = n1.geti();
229                 n1.setj();
230                 a2 = n1.getj();
231                 symbol s = new symbol();
232                 int b;
233                 s.seta();
234                 b = s.geta();
235                 if(a1 >= a3 && a1 <= a4 && a2 >= a3 && a2 <= a4)
236                 {
237                     i++;
238                     if(b == 1)
239                         System.out.println(a1 + "+" + a2 + "=" + ( a1 + a2 ) );
240                     if(b == 2)
241                         System.out.println(a1 + "-" + a2 + "=" + (a1 - a2));
242                     if(b == 3)
243                         System.out.println(a1 + "*" + a2 + "=" + (a1 * a2));
244                     if(b == 4){
245                         int c = a1 % a2;
246                         int c1 = (a1 - c) / a2;
247                         System.out.println(a1 + "/" + a2 + "=" + c1 + "余" + c);
248                     }
249                 }    
250             }
251         }
252         if(p == 7)
253         {
254             
255         }
256         
257         
258     }
259     public static String simplify(int a,int b)   //获得最简分数
260     {
261         int max = 0;
262         for(int i = 0 ;i < 100 ;i ++)
263         {
264             int n = i + 1 ;
265             if(a % n == 0 && b % n == 0)
266                 max = n;
267             
268         }
269         return (String)( a / max + "/" + b / max);
270     }
271     public static void menu()
272     {
273         System.out.println("1. 正数的四则运算");
274         System.out.println("2. 负数的四则运算");
275         System.out.println("3. 分数的四则运算");
276         System.out.println("4. 整除运算");
277         System.out.println("5. 非整除运算");
278         System.out.println("6. 规定数值范围的运算");
279     }
280 
281 }

运行截图如下:

                                                                   

                                                                   

                                                                 

总结:经过这次的编程,主要体会到了作为一名软件工程师,代码是最为次要的,需要不停的根据用户的需求来对自己的软件进行修改和增加功能。因此自己编写的代码必须要有关键部位的注释,同时还要充分考虑用户的需求。

一周项目总结:

                                             

时间记录日志:

                                              

缺陷记录日志:

                                           

原文地址:https://www.cnblogs.com/overs/p/6527513.html