/*重复加法
问题描述:编写程序,随机产生10个随机加法问题,两个家数都是从1到15的整数。
显示正确答案的个数和测验的时间 */ package exercise;
import javax.swing.JOptionPane;
public class Exercise4_2 { /** * 问题分析: 1. 把什么放到循环体中去???【1.随机产生的两个加数, 2.使用者输入的结果和进行的判断,3.统计回答正确的数目的计数器】 2. * 把这个问题封装成一个没有返回值的方法:参数列表是:进行测试的数目 3. 如何产生从1到15的整数:a + (int)(Math.randome() * * b)[>=a && < b] */ public static void main(String[] args) { String number = JOptionPane.showInputDialog("输入打算进行加法测试的次数"); int plusNumber = Integer.parseInt(number);
randomPlus(plusNumber); // 没有见返回值的方法,它们一般都当做一个句子来使用,而不是一个表达式的一部分
}
// 随机加法问题
public static void randomPlus(int testNum) {
long startTime = System.currentTimeMillis(); // 开始的时间
int correctNum = 0;
for (int i = 1; i <= testNum; ++i) {
// 产生两个随机数字: 范围是:1 到15, 两端都要包括
int number1 = 1 + (int) (Math.random() * 15);
int number2 = 1 + (int) (Math.random() * 15);
String string1 = JOptionPane.showInputDialog( "\t第 " + i + " 次加法测试" + "\nWhat is "
+ number1 + " + " + number2 + " ?");
int result = Integer.parseInt(string1);
// 进行判断回答结果是否正确
if (result == (number1 + number2)) {
correctNum += 1;
}
}
long endTime = System.currentTimeMillis(); // 测试结束的时间
String str = "你本次一共回答了: " + testNum + " 个问题\n"
+ "回答正确的问题数目是: " + correctNum
+ "\n正确率是: " + (double) correctNum / testNum * 100 + "%\n"
+ "测试一共花费的时间是: " + (endTime - startTime) / 1000 + "秒";
JOptionPane.showMessageDialog(null, str);
}
}