首页 > 代码库 > 两人结队项目
两人结队项目
两人组队:王汉斌,尹良亮
需求概要:
编写出一个能自动生成小学四则运算题目的软件,并能够判断其正确性。
分析:
由于给小学生出四则运算,其主要是产生随机数,调用加减乘除的方法。其中,最主要的是考虑到除法的问题,因为除法需要使用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
两人结队项目