自动生成小学四则运算(简易)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动生成小学四则运算(简易)相关的知识,希望对你有一定的参考价值。

程序写了关于100以内的加减乘除运算和真分数的加减乘除运算,还有二元一次方程

运用了java.util.Random 进行随机数的实现

在打印真分数运算式子时技术分享不知道这样定义【当分子分母为0或相等时,跳过本次循环 循环数加一,也就是重新随机一个可以运算的式子出来】是否正确,在测试时出现了分子为0的情况,可能定义是错误的。

真分数的化简没有去实现,暂时没有时间,之后会补上

下面给出代码

语言:java

 1 /**
 2 随机生成100以内加减乘除四则运算 二元一次方程 真分数运算
 3 x +(*-/) y =?
 4 x/y+(*-/) x/y =?
 5 y=ax+b
 6 */
 7 import java.util.Random;
 8 class  Yunsuan
 9 {
10     public static void main(String[] args) 
11     {
12         shuchujjcc(5);
13         shuchuzfs(3);
14         System.out.println();
15         shuchu2y1cfc(2);
16     }
17     public static void shuchujjcc(int n)
18     {
19         int i;
20         char[] a={‘+‘,‘-‘,‘*‘,‘/‘};
21         Random r1=new Random();
22         System.out.println("完成下列加减乘除运算");
23         for (i=0;i<n ;i++ )
24         {
25             System.out.print(r1.nextInt(101)+" "+a[r1.nextInt(4)]+" "+r1.nextInt(101)+" ="+"\\t");
26         }
27     }
28     public static void shuchuzfs(int n)
29     {
30         int i;
31         char[] a={‘+‘,‘-‘,‘*‘,‘/‘};
32         Random r1=new Random();
33         Random r2=new Random();    
34         System.out.println("完成下列真分数的加减乘除运算");
35         for (i=0;i<n ;i++ )
36         {
37             int x1=r1.nextInt(100);
38             int y1=r1.nextInt(101);
39             int x2=r2.nextInt(101);
40             int y2=r2.nextInt(101);
41             //由于真分数 要保证分子小于分母 分为3个情况:1.分子小于分母 不变 2.分子大于分母 交换 3.分子或分母为0或相等 跳过本次循环 并加一次循环 
42             if(x1<y1&&x2<y2)
43             {
44                 System.out.print(x1+"/"+y1+" "+a[r1.nextInt(4)]+" "+x2+"/"+y2+" ="+"\\t\\t");
45             }
46             else if(y1==0||y2==0||x1==0||x2==0||x1==y1||x2==y2)
47             {
48                 i--;
49             }
50             else if(x1<y1&&x2>y2)
51             {
52                 System.out.print(x1+"/"+y1+" "+a[r1.nextInt(4)]+" "+y2+"/"+x2+" ="+"\\t\\t");
53             }
54             else if(x1>y1&&x2<y2)
55             {
56                 System.out.print(y1+"/"+x1+" "+a[r1.nextInt(4)]+" "+x2+"/"+y2+" ="+"\\t\\t");
57             }
58             else
59             {
60                 System.out.print(y1+"/"+x1+" "+a[r1.nextInt(4)]+" "+y2+"/"+x2+" ="+"\\t\\t");
61             }
62         }
63     }
64     public static void shuchu2y1cfc(int n)
65     {
66         int i;
67         Random r1=new Random();
68         char[] a={‘+‘,‘-‘};
69         System.out.println("完成下列二元一次方程");
70         for (i=1;i<n+1 ;i++ )
71         {
72             System.out.println(i+"."+"y = "+r1.nextInt(101)+"x"+" "+a[r1.nextInt(2)]+" "+r1.nextInt(101));
73             System.out.println("  "+"y = "+r1.nextInt(101)+"x"+" "+a[r1.nextInt(2)]+" "+r1.nextInt(101));
74         }
75     }
76 }

运算结果如下:

技术分享

 

 结对编程确实可以加快写代码的速度和准确度,不过也有时会有冲突,都想着用自己的方法。。。

之后会继续努力

 

以上是关于自动生成小学四则运算(简易)的主要内容,如果未能解决你的问题,请参考以下文章

小学四则运算初级版

小学自动生成四则运算加强版

作业二:自动生成小学四则运算题目的程序

作业二: 编写自动生成小学四则运算题目的程序

生成小学四则运算题,包括真假分数

两人组队,小学生的四则运算