一、题目描述:

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

    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. 开机出现Oxc000000e故障的解决方法

    Oxc000000e故障 故障表现:开机时不能正常地登录系统,而是直接弹出图2所示的Oxc000000e故障提示. 原因分析:由于安装或卸载某些比较特殊的软件,往往会对Win7的引导程序造成非常严重的 ...

  2. Android -- 自定义view实现keep欢迎页倒计时效果

    1,最近打开keep的app的时候,发现它的欢迎页面的倒计时效果还不错,所以打算自己来写写,然后就有了这篇文章. 2,还是老规矩,先看一下我们今天实现的效果 相较于我们常见的倒计时,这次实现的效果是多 ...

  3. C#多线程的用法3-线程间的协作Join

    在创建多线程应用程序时,如何确保线程间的协作往往比让线程工作更重要. 线程间的协作最简单的方式是采用Join来进行,如下: /// <summary> /// 多线程协作-Join方式 / ...

  4. servlet实现登陆注册

    拿到信息必须进行非空验证用servlet做注册登陆时,在form表单的action中不用加后缀.java,jsp文件需要加 public boolean CheckParm(String...args ...

  5. JMeter安装和简介

    1.Apache jmeter 是一个100%的纯java桌面应用,用于压力测试和性能测量.它最初被设计用于Web应用测试但后来扩展到其他测试领域,可以用于对静态的和动态的资源(文件,Servlet, ...

  6. javascript-new关键字

    先上一段代码: function Person(name,age,job) { this.name=name; this.age=age; this.job=job; this.sayName=fun ...

  7. Java中Lock,tryLock,lockInterruptibly的区别

    转载自:https://www.zhihu.com/question/36771163/answer/68974735 ReentrantLock 锁有好几种,除了常用的lock ,tryLock , ...

  8. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——收流篇:(四)example代码解析

    一.example逻辑伪码 myRTSPClient附带3个example程序:simple_example.complete_example.common_example.后两个example都是从 ...

  9. 京东地址导航js+css

    HTML------------------------------------------------<!DOCTYPE html><html lang="en" ...

  10. Go 语言,开源服务端代码自动生成 框架 - EasyGoServer

    EasyGoServer 作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblog ...