一、题目描述:

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

    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. SELECT中的if_case流程函数

    DQL中常用的流程函数if_case ---流程函数在一个SQL语句中实现条件选择 模拟对职员薪水进行分类: mysql> create table salary_tab(userid ,)); ...

  2. Java微信公众平台开发之公众号支付(微信内H5调起支付)

    官方文档点击查看准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败)借鉴了很多大神的文章,在此先谢过了 整个支付流程,看懂就很好写了 一.设置支付目录 在微信公众平台设置您的公 ...

  3. animate.css的使用

    前面的话 animate.css是一个使用CSS3的animation制作的动画效果的CSS集合,里面预设了很多种常用的动画,且使用非常简单.本文将详细介绍animate.css的使用 引入 anim ...

  4. 【MySQL源码】源码安装和启动mysql

    --[MySQL源码]源码安装和启动mysql --------------------------------------2014/08/19 本机环境:ubuntu12.04,fedora-17 ...

  5. MySQL索引篇

    innodb索引概念   总结记录下innodb的索引概念,以备查看   innodb索引分类: 聚簇索引(clustered index)     1)  有主键时,根据主键创建聚簇索引     2 ...

  6. 利用Div+CSS(嵌套+盒模型)布局页面完整实例流程

    Div+CSS(嵌套+盒模型)布局页面完整实例流程: <!DOCTYPE html><html> <head>  <meta charset="UT ...

  7. 【LeetCode】数组-2(628)-数组中三个数相乘最大

    题目不难: 思路一(排序取两端) 先排序,最后三个数相乘即可.(很快就想到了,但是没想全面 [

  8. python--------------常用模块之正则

    一.认识模块  什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.py文件 ...

  9. Relationship between frequency domain and spatial domain in digital images

    今天又复习了一遍<<Digital Image Processing>>的第四章,为了加深对频域的理解,我自己用PS画了一张图.如下: 然后做FFT,得到频谱图如下: 从左到右 ...

  10. Chrome打不开Pycharm运行的web应用

    这个现象困扰了我一段时间.比如在Pycharm里面运行一个Flask程序,如图所示 在Chrome中一直打不开,换了Firefox,依然如此,但是用mac自带的safari可以打开. 起初我以为是ip ...