一、题目描述:

从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:

    1. 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24。
    2. 运算符为 +, −, ×, ÷。
    3. 并且要求能处理用户的输入,并判断对错,打分统计正确率。
    4. 要求能处理用户输入的真分数, 如 1/2, 5/12 等。
    5. 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目。
      Myapp.exe -n 10

二、需求分析:

由题目可得代码需要实现:

  1. 自动生成小学四则运算,需要用到随机数,用随机数随机生成数字,能够随机生成符号加减乘除(除数不为0)。
  2. 支持分数和整数的四则运算,同样是利用随机数分别生成分子与分母(分母不为0).
  3. 能够判断输入答案的对错并统计正确率,要将用户输入答案与式子答案进行比较(数字用==,字符串用equals语句完成)。
  4. 要求输入的分数可以被识别,此处同样利用equals来完成。
  5. 支持命令生成。

三、实现步骤:

  1. 根据用户输入的参数生成相应数量的题目。
  2. 利用Random语句实现随机生成的整数、分子、分母以及加减乘除(对于加减乘除,我用if语句实现,0----加,1----减,2----乘,3----除)。
  3. 通过用户输入的答案与式子答案进行比较,判断对错,对的返回正确并统计,错的返回错误并附上正确答案但不统计。
  4. 将统计正确的题目数量除以用户最初输入的题目数量得到正确率并输出。

四、代码设计思路

  1. 通过随机数来实现整数以及分数(分子和分母)。
  2. 通过随机数结合if条件语句实现加减乘除四个运算符号。

五、代码

package sizeyunsuan;
import java.util.Random;
import java.util.Scanner;
public class Arithmetic {
public static void main(String[] args){
int x,y,z,p,g;
int a,b,c,m,n;
int h = 0;
System.out.printf("请输入需要生成的题目数量:");
Scanner d = new Scanner(System.in);
x = d.nextInt();
for(int i = 0 ; i < x ; i++){
Random aa = new Random();
Random bb = new Random();
Random cc = new Random();
Random mm = new Random();
Random nn = new Random();
a = aa.nextInt(10);
b = bb.nextInt(10);
c = cc.nextInt(4);
m = mm.nextInt(10);
n = nn.nextInt(10);
if(c==0){
if(m==0&&n==0){
m = mm.nextInt(10)+1;
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a + b;
System.out.printf(a+"+"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n + b ;
System.out.printf(a+"+"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a + b*m;
System.out.printf(l+"+"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n + b*m;
System.out.printf(l1+"+"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m==0&&n!=0){
m = mm.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a + b;
System.out.printf(a+"+"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n + b ;
System.out.printf(a+"+"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a + b*m;
System.out.printf(l+"+"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n + b*m;
System.out.printf(l1+"+"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m!=0&&n==0){
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a + b;
System.out.printf(a+"+"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n + b ;
System.out.printf(a+"+"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a + b*m;
System.out.printf(l+"+"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n + b*m;
System.out.printf(l1+"+"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else{
if(a%m==0&&b%n==0){
y = a + b;
System.out.printf(a+"+"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n + b ;
System.out.printf(a+"+"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a + b*m;
System.out.printf(l+"+"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n + b*m;
System.out.printf(l1+"+"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}
}
if(c==1){
if(m==0&&n==0){
m = mm.nextInt(10)+1;
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a - b;
System.out.printf(a+"-"+b+"= ");
Scanner e2 = new Scanner(System.in);
z = e2.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n - b ;
System.out.printf(a+"-"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a - b*m;
System.out.printf(l+"-"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n - b*m;
System.out.printf(l1+"-"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m==0&&n!=0){
m = mm.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a - b;
System.out.printf(a+"-"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n - b ;
System.out.printf(a+"-"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a - b*m;
System.out.printf(l+"-"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n - b*m;
System.out.printf(l1+"-"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m!=0&&n==0){
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a - b;
System.out.printf(a+"-"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n - b ;
System.out.printf(a+"-"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a - b*m;
System.out.printf(l+"-"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n - b*m;
System.out.printf(l1+"-"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else{
if(a%m==0&&b%n==0){
y = a - b;
System.out.printf(a+"-"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n - b ;
System.out.printf(a+"-"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a - b*m;
System.out.printf(l+"-"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n - b*m;
System.out.printf(l1+"-"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}
}
if(c==2){
if(m==0&&n==0){
m = mm.nextInt(10)+1;
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a * b;
System.out.printf(a+"x"+b+"= ");
Scanner e3 = new Scanner(System.in);
z = e3.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*b ;
System.out.printf(a+"x"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = b*a;
System.out.printf(l+"x"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*b;
System.out.printf(l1+"x"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m==0&&n!=0){
m = mm.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a * b;
System.out.printf(a+"x"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*b;
System.out.printf(a+"x"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a*b;
System.out.printf(l+"x"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*b;
System.out.printf(l1+"x"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m!=0&&n==0){
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
y = a * b;
System.out.printf(a+"x"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*b ;
System.out.printf(a+"x"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a*b;
System.out.printf(l+"x"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*b;
System.out.printf(l1+"x"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else{
if(a%m==0&&b%n==0){
y = a * b;
System.out.printf(a+"x"+b+"= ");
Scanner e1 = new Scanner(System.in);
z = e1.nextInt();
if(z==y){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+y);
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*b ;
System.out.printf(a+"x"+l+"= ");
String k = y + "/"+ n;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a*b;
System.out.printf(l+"x"+b+"= ");
String k = y + "/"+ m;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*b;
System.out.printf(l1+"x"+l2+"= ");
String k = y + "/"+ n*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}
}
if(c==3){
if(b==0){
b = bb.nextInt(10)+1;
if(m==0&&n==0){
m = mm.nextInt(10)+1;
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m==0&&n!=0){
m = mm.nextInt(10)+1;
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m!=0&&n==0){
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else{
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}
}else{
//p =(float) a / b;
if(m==0&&n==0){
m = mm.nextInt(10)+1;
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m==0&&n!=0){
m = mm.nextInt(10)+1;
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e6 = new Scanner(System.in);
String j = e6.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else if(m!=0&&n==0){
n = nn.nextInt(10)+1;
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}else{
if(a%m==0&&b%n==0){
if(a%b!=0){
String l=a+"/"+b;
System.out.printf(a+"÷"+b+"= ");
Scanner e4 = new Scanner(System.in);
String p1 = e4.next();
if(p1.equals(l)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+l);
}
}else{
p = a / b;
System.out.printf(a+"÷"+b+"= ");
Scanner e5 = new Scanner(System.in);
g = e5.nextInt();
if(p==g){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+p);
}
}
}else if(a%m==0&&b%n!=0){
String l = b + "/" + n;
if(a==0){System.out.println(a+"÷"+l+"= ");
Scanner e6 = new Scanner(System.in);
p = e6.nextInt();
if(p==0){System.out.println("回答正确!");h++;
continue;}else{System.out.println("回答错误!正确答案是0");continue;}
}
y = a*n ;
System.out.printf(a+"÷"+l+"= ");
String k = y + "/"+ b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else if(a%m!=0&&b%n==0){
String l = a + "/" + m;
y = a;
System.out.printf(l+"÷"+b+"= ");
String k = y + "/"+ m*b;
Scanner e7 = new Scanner(System.in);
String j = e7.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}else{
String l1 = a + "/" + m;
String l2 = b + "/" + n;
y = a*n;
System.out.printf(l1+"÷"+l2+"= ");
String k = y + "/"+ b*m;
Scanner e8 = new Scanner(System.in);
String j = e8.next();
if(j.equals(k)){
System.out.println("回答正确!");
h++;
}else{
System.out.println("回答错误!正确答案是"+k);
}
}
}
}
}
}
System.out.println("总共"+x+"题,"+"恭喜答对"+h+"题");
System.out.println("正确率为"+(float)h/x);
}
}

六、测试

PSP:

Personal Software Process Stages

Time (m) Senior

Student

Time (m)

计划

10 15
估计这个任务需要多少时间 10 8
开发 100 60
需求分析(包括学习新技术) 5 3
生成设计文档 0 0
设计复审 0 0
代码规范 20 30
具体设计 10 15
具体编码 120 150
代码复审 10 8
测试(自我测试,修改代码,提交修改) 20 40
报告 30 50
测试报告 5 3
计算工作量 5 3
并提出过程修改计划 5 5

Coding码市地址:

https://git.coding.net/w934707136/Arithmetic.git

个人作业1——四则运算题目生成程序(java代码,基于控制台)的更多相关文章

  1. 个人作业1——四则运算题目生成程序(基于C++)

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 1 ...

  2. 个人作业1——四则运算题目生成程序(基于java)

    项目代码: https://git.coding.net/YJh_/11.git 题目要求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:/ + / = / 运算符为 +, −, ×, ...

  3. 【2015 软件工程 个人项目 PJ1】四则运算题目生成程序

    1.开发时间预估 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 2day Dev ...

  4. 高级软件工程2017第3次作业——结对项目:四则运算题目生成程序(基于GUI)

    Deadline:2017-10-11(周三)21:00pm (注:以下内容参考集大作业 ) 前言 想过和别人一起探索世界吗?多么希望,遇到困难时,有人能一起探讨:想要懈怠时,有人推你一把:当你专注于 ...

  5. 1st 四则运算题目生成程序

    程序代码见此 程序展示 需求分析 需要程序能根据用户指定生成四则运算的题目,并且能让用户做题,并且最后打分统计正确率 功能设计 主要实现的功能就是: 接受用户输入以便知道要出多少道题目(-n x) 能 ...

  6. 四则运算题目生成程序(基于控制台)(Bug修改)

    针对上个程序中出现的bug进行修改 https://git.coding.net/cx873230936/calculator.git Bug: 1.控制台输入问题数问题 a.不能处理用户输入负数. ...

  7. 纯java代码在控制台运算电话本(不使用数据库)

    分享学习 Task_08 package cn.rzpt; import java.util.List; import java.util.Scanner; public class Task_08 ...

  8. Notepad++运行JAVA代码

    第一种方法: 工具栏->运行  点击后选择运行 1.在运行窗口中输入: cmd /k javac "$(FULL_CURRENT_PATH)" & echo 编译成功 ...

  9. java 中的控制台端口的输入

    java 中基于控制台端的输入时最基本的操作. 第一步 导入Scanner类 import java.util.Scanner; 第二步 创建输入对象 input Scanner input=new ...

随机推荐

  1. HPU--1280 Divisible

    题目描述 给定一个很大的整数,我想知道它能否被9整除. 输入 有t组测试数据,每组数据给定一个整数N不存在前导0.(1 <= t <= 20,1 <= N <= 10^200) ...

  2. ASP.NET WebApi 使用Swagger生成接口文档

    前言 公司一直采用Word文档方式与客户端进行交流.随着时间的推移,接口变的越来越多,文档变得也很繁重.而且一份文档经常由多个开发人员维护,很难保证文档的完整性.而且有时写完代码也忘了去更新文档,为了 ...

  3. GitLab Development Kit 环境搭建

    在公司内网服务器上面搭建gdk环境,踩了很多坑,历时四五天(中间涉及申请开通固定外网),整理如下: 总览: 操作系统:redhat 6.3 参考文档:https://gitlab.com/gitlab ...

  4. 浅尝Java(二、代码折叠插件的使用)

    主题:eclipse代码折叠插件的使用. 工作中在使用eclipse开发Java项目时,我们会写很多if,for循环啊什么的,这使得我们的项目代码会有很多很多行.写完后要想检查或者查看,就要从头一行一 ...

  5. Linq to Objects for Java 发布 1.0.1 版本

    现在 java 支持 linq 啦.比原生 stream api 更好用,功能更强大.现已发布 version 1.0.1 地址: https://github.com/timandy/linq. A ...

  6. 远程Get,Post请求工具类

    1.远程请求工具类   import java.io.*; import java.net.URL; import java.net.URLConnection; import java.util.L ...

  7. AIX缩小逻辑卷报错chfs: 0506-964

    --AIX缩小逻辑卷报错chfs: 0506-964 -----------------------------------------2013/10/29 通过smit chfs/或 chfs命令 ...

  8. mac 辅助接口

    mac 辅助接口1.打开文件所在目录并选中该文件2.获取plist属性值3.系统关机4.打开系统网络设置5.字符串包含比较6.系统挂载数及挂载盘符信息 //====================== ...

  9. Navicat提示Access violation at address 004E9844 in module ‘comctl32.dll’

    内存越界问题,重新注册下Windows的动态链接库,首先“开始”—“cmd”,在打开的dos窗口中运行“for %1 in (%windir%\system32\*.dll) do regsvr32. ...

  10. Oracle锁表查询与解锁

    锁表查询和解锁 --查询SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv ...