四则运算
1 package com.java.sizeyunsuan;
2
3 public class lianxi {
4 String f()
5 {
6 int i=(int)(Math.random()*10);
7 int j=(int)(Math.random()*10);
8 if(i>=j)
9 {
10 int temp=i;
11 i=j;
12 j=temp;
13 }
14 return("("+i+"/"+j+")");
15 }
16 public static void main(String[] args)
17 {
18 String a,b;
19 int k;
20 lianxi lianxi=new lianxi();
21 for(int n=0;n<30;n++)
22 {
23 a=lianxi.f();
24 b=lianxi.f();
25 int i=(int)(Math.random()*100);
26 int j=(int)(Math.random()*100);
27 switch((int)(Math.random()*4))
28 {
29 case 0:
30 k=(int)(Math.random()*3);
31 if(k==0)
32 System.out.println(i+"+"+j+"=");
33 else if(k==1)
34 System.out.println(a+"+"+j+"=");
35 else if(k==2)
36 System.out.println(b+"+"+a+"=");
37 break;
38 case 1:
39 k=(int)(Math.random()*3);
40 if(i<j)
41 {
42 int temp=i;
43 i=j;
44 j=temp;
45 }
46 if(k==0)
47 System.out.println(i+"-"+j+"=");
48 else if(k==1)
49 System.out.println(j+"-"+a+"=");
50 else if(k==2)
51 System.out.println(b+"-"+a+"=");
52 break;
53 case 2:
54 k=(int)(Math.random()*3);
55 if(k==0)
56 System.out.println(i+"*"+j+"=");
57 else if(k==1)
58 System.out.println(a+"*"+j+"=");
59 else if(k==2)
60 System.out.println(b+"*"+a+"=");
61 break;
62 case 3:
63 while(j==0)
64 j= (int)(Math.random()*100);
65 System.out.println(i+"/"+j+"=");
66 break;
67 }
68 }
69 }
70 }
1.设计思路:此题目为随机产生30道四则运算,首先要产生随机数,我先写了一个函数用来随机生成一个真分数,然后在主函数中调用这个函数获取它的返回值,然后又利用Random()产生两个二位的随机整数,然后利用Swich分支结构分别实现加减乘除,随机产生0,1,2,3,分别代表加减乘除。
需要注意:(1)考虑到小学生没有学过负数,所以在进行减法时,假如出现被减数大于减数,则将两数交换,再进行减法;
(2)考虑到除数不能为0,假如除数为0,则再产生一个随机数,利用while循环;
(3)在每个运算中又用if-else结构分了多种情况,其中除法情况太多并且复杂,没有一一实现,日后会多加改善。
2.运行结果: