5.2(重复加法)程序清单5-4产生了5个随机减法问题。改写该程序,使它产生10个随机加法问题,加数时两个1到15之间的整数。显示正确答案的个数和完成测试的时间

  • 题目
    • 题目概述
    • 程序清单5-4
    • 破题
  • 代码

题目

题目概述

5.2(重复加法)程序清单5-4产生了5个随机减法问题。改写该程序,使它产生10个随机加法问题,加数时两个1到15之间的整数。显示正确答案的个数和完成测试的时间

程序清单5-4

import java.util.Scanner;public class qingdan {public static void main(String[] args) {final int NUMBER_OF_QUESTIONS = 5;  // Number of questionsint correctCount = 0;               // Count the number of correct answersint count = 0;                      // Count the number of questionslong startTime = System.currentTimeMillis();String output = " ";                // output string is initially emptyScanner input = new Scanner(System.in);while(count < NUMBER_OF_QUESTIONS){// 1.Generate two random single-digit integersint number1 = (int) (Math.random() * 10);int number2 = (int) (Math.random() * 10);// 2. If number1 < number2, swap number1 with number2if(number1 < number2){int temp = number1;number1 = number2;number2 = temp;}// 3. Prompt the student to answer "What is number1 - number2?"System.out.println("What is " + number1 + " - " + number2 + "?");int answer = input.nextInt();// 4. Grade the answer and display the resultif(number1 - number2 == answer){System.out.println("You are correct!");correctCount++; // Increase the correct answer count}elseSystem.out.println("Your answer is wrong.\n" + number1+ " - " + number2 + "? ");// Increase the question countcount++;output += "\n" + number1 + "-" + number2 + "=" + answer +((number1 - number2 == answer) ? " correct" : " wrong");}long endTime = System.currentTimeMillis();long testTime = endTime - startTime;System.out.println("Correct count is " + correctCount +"\nTest time is " + testTime / 1000 + " seconds\n" + output);}
}

破题

  1. 以上5-4程序清单中,生成随机数的是"(int)(Math.random() * 10)",即生成个位整数;改写为本题要求的1~15的整数即为:(int)(Math.random() * 15 + 1)
  2. 清单中是生成随机减法,不需要判断大小(删掉判断大小代码)、涉及减法的代码改为加法
  3. 由生成5个式子更改为生成10个式子(NUMBER_OF_QUESTIONS改为10即可)

代码

import java.util.Scanner;public class Test5_2 {public static void main(String[] args) {final int NUMBER_OF_QUESTIONS = 10;  // Number of questionsint correctCount = 0;               // Count the number of correct answersint count = 0;                      // Count the number of questionslong startTime = System.currentTimeMillis();String output = " ";                // output string is initially emptyScanner input = new Scanner(System.in);while(count < NUMBER_OF_QUESTIONS){// 1.Generate two random single-digit integersint number1 = (int) (Math.random() * 15 + 1);int number2 = (int) (Math.random() * 15 + 1);// 3. Prompt the student to answer "What is number1 - number2?"System.out.println("What is " + number1 + " + " + number2 + "?");int answer = input.nextInt();// 4. Grade the answer and display the resultif(number1 + number2 == answer){System.out.println("You are correct!");correctCount++; // Increase the correct answer count}elseSystem.out.println("Your answer is wrong.\n" + number1+ " + " + number2 + "? ");// Increase the question countcount++;output += "\n" + number1 + "+" + number2 + "=" + answer +((number1 + number2 == answer) ? " correct" : " wrong");}long endTime = System.currentTimeMillis();long testTime = endTime - startTime;System.out.println("Correct count is " + correctCount +"\nTest time is " + testTime / 1000 + " seconds\n" + output);}
}

Java黑皮书课后题第5章:5.2(重复加法)程序清单5-4产生了5个随机减法问题。改写该程序,使它产生10个随机加法问题,加数时两个1到15之间的整数。显示正确答案的个数和完成测试的时间相关推荐

  1. Java黑皮书课后题第8章:*8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置。返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标

    *8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置.返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标 题目 题目描述与运行示例 破题 代码 题目 ...

  2. Java黑皮书课后题第7章:**7.34(对字符串中的字符排序)使用以下方法头编写一个方法,返回一个排序好的字符串。编写一个测试程序,提示用户输入一个字符串,显示排序好的字符串

    **7.34(对字符串中的字符排序)使用以下方法头编写一个方法,返回一个排序好的字符串.编写一个测试程序,提示用户输入一个字符串,显示排序好的字符串 题目 题目描述 破题 代码 运行实例 题目 题目描 ...

  3. Java黑皮书课后题第6章:**6.31(金融应用:信用卡号的合法性验证)和**6.32 编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的

    6.31(金融应用:信用卡号的合法性验证)编写程序,提示用户输入一个long型整数的信用卡号码,显示这个数字是合法的还是非法的 6.31题目 题目描述 破题 6.31代码 6.32 代码 运行实例 6 ...

  4. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  5. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  6. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  7. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

  8. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

  9. Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间

    Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含--.编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间 题目 破题 代码 Test6 ...

最新文章

  1. java修饰静态_Java-static修饰符及静态代码块
  2. RedHat已更改其开源许可规则
  3. 人生百味,浓缩到最后就是一个淡字
  4. Spring IOC 知识点总结,写得太好了!
  5. 计算几何问题 java_【转载】ACM计算几何题目推荐
  6. C#语言之“中英文混合字符串对齐”的方法
  7. ModuleNotFoundError: No module named 'tensorflow.python.saved_model.model_utils'
  8. [转载] Java Challengers#1:JVM中的方法重载
  9. Android NDK开发之 NDK 局部 全局引用
  10. Java编程:获取输入的三种方法
  11. 离散数学第一章(知识点总结)
  12. 为什么CSDN登陆是明文传输账户密码
  13. win10卸载软件通过控制面板
  14. 【正交调制的通信的工程实现!!!】--比通原书讲得好多了,书上大都泛泛而谈!受益匪浅
  15. 把Colab运行后生成的文件保存到Google drive
  16. oracle字符串之间,oracle中判断字符串之间包含关系
  17. 微信小程序如何刷浏览量和访问量?
  18. C# 反射实例化对象
  19. 北京工商大学计算机专业校友评价,北京工商大学英语校友返校聚会
  20. IIoT可预测运维报告摘要

热门文章

  1. write up:杂项 又一张图片,还单纯吗 --图片提取
  2. Ask Me Anything #1 我是新晋CNCF TOC张磊,你有什么想问我的?
  3. 【趣话编程】如果张东升是个程序员
  4. oracle语句加减,oracle时间加减的语句写法
  5. 技术分享 |《原神》部分渲染效果分析
  6. 皇室战争:暗夜女巫重做,去掉亡语机制后,她凉的可能会更快
  7. 【蓝桥杯Java_C组·从零开始卷】第八节、集合——list详解
  8. PHP面试题:在PHP中error_reporting这个函数有什么作用?
  9. SQL基础【十、Delete】
  10. ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction