首页 > 代码库 > 两人结队项目

两人结队项目

两人组队:王汉斌,尹良亮

 

需求概要:

编写出一个能自动生成小学四则运算题目的软件,并能够判断其正确性。

分析:

由于给小学生出四则运算,其主要是产生随机数,调用加减乘除的方法。其中,最主要的是考虑到除法的问题,因为除法需要使用double型或者float型。

部分代码如下:

package fourarithmetic;

import java.util.Random;
import java.util.Scanner;

         public class FourArithmetic {

              public static void main(String[] args) {
               /**
                * 循环输出题数,并通过random产生随机数,
             */
             // 初始化对错为0
                int right = 0;
                int wrong = 0;
                    for (int i = 1; i <= 8; i++) {
                          System.out.println("第" + i + "道题:");// 做到第几题,循环输出
                   Random r = new Random();// 产生一个随机数,进行出题
                   int a = r.nextInt(12) + 1;
                   Random r1 = new Random();
                   int b = r1.nextInt(12) + 1;
                   Random r2 = new Random();// 生成随机运算符
                   int c = r2.nextInt(3) + 1;
                  char chrs[] = { ‘+‘, ‘-‘, ‘*‘, ‘/‘ };
                  String chr = String.valueOf(chrs[c]);
                       if (chr.equals("+")) { //调用add进行加法运算
                             System.out.println(a + "+" + b + "=");
                   boolean x = add(a, b);
                        if (x == true) {
                            System.out.println("输入正确");
                            right++;
                       } else {
                             System.out.println("计算错误");
                             wrong++;
                         }
               System.out.println("正确答案是:" + (a + b));
}
                            if (chr.equals("-")) { //调用减法方法进行运算
                               System.out.println(a + "-" + b + "=");
                           boolean x = sub(a, b);
                           if (x == true) {
                                 System.out.println("输入正确");
                                 right++;
                       } else {
                             System.out.println("计算错误");
                             wrong++;
                           }
                    System.out.println("正确答案是:" + (a - b));
                  }
                  if (chr.equals("*")) { //调用乘法进行运算
                    System.out.println(a + "*" + b + "=");
                    boolean x = multiplication(a, b);
                      if (x == true) {
                         System.out.println("输入正确");
                         right++;
                    } else {
                       System.out.println("计算错误");
                       wrong++;
                    }
                     System.out.println("正确答案是:" + (a * b));
 }
                     if (chr.equals("/")) { //调用division除法进行运算
                       System.out.println(a + "/" + b + "=");
                       boolean x = division(a, b);
                    if (x == true) {
                         System.out.println("输入正确");
                         right++;
                  } else {
                         System.out.println("计算错误");
                         wrong++;
  }
                             System.out.println("正确答案是:" + ((double) a / (double) b));
}
}
                                 System.out.println("************************");
                                      System.out.println("总共作对了?" + right + "题");
                                           System.out.println("共做错了?" + wrong + "题");
}
//以下分别为加减乘除的方法
                      private static boolean add(int a, int b) {
                            Scanner s = new Scanner(System.in);// 系统输入
                            int n = s.nextInt();
                            int res = a + b;
                            if (n == res) {
                           return true;
                    } else {
                          return false;
                     }
                       }
                         private static boolean sub(int a, int b) {
                              Scanner s = new Scanner(System.in);// 系统输入
                              int n = s.nextInt();
                              int res = a - b;
                                   if (n == res) {
                                        return true;
                                   } else {
                                         return false;
                                 }
                          }
                         private static boolean multiplication(int a, int b) {
                                 Scanner s = new Scanner(System.in);// 系统输入
                                 int n = s.nextInt();
                                 int res = a * b;
                                    if (n == res) {
                                        return true;
                                     } else {
                                          return false;
                                  }
                             }
                          private static boolean division(int a, int b) {
                                Scanner s = new Scanner(System.in);// 系统输入
                                float n = s.nextFloat();
                                float res = (float) a / (float) b;
                                   if (n == res) {
                                          return true;
                                        } else {
                                     return false;
                                }
                        }

                }

执行结果:

第1道题:
7/3=
2.33333
计算错误
正确答案是:2.3333333333333335
第2道题:
12-10=
2
输入正确
正确答案是:2
第3道题:
3/7=
0.4285
计算错误
正确答案是:0.42857142857142855
第4道题:
9/3=
3
输入正确
正确答案是:3.0
第5道题:
2/10=
0.2
输入正确
正确答案是:0.2
第6道题:
4*5=
20
输入正确
正确答案是:20
第7道题:
2/12=
0.16
计算错误
正确答案是:0.16666666666666666
第8道题:
5/7=
0.7142
计算错误
正确答案是:0.7142857142857143
************************
总共作对了?4题
共做错了?4题

有待提高的问题:如果加入到括号,怎么进行编写,若在除法中,怎么样保留位数,什么时候进行进位。怎么样编写程序才能支持真分数的四则运算等等问题,由于此题可扩展性强,所以还有很多地方有待提高。

工程源码地址:https://git.coding.net/handsomeman/four_arithmetic.git

两人结队项目