一、任务说明
- 使用
Java
语言编写,软件选用IntelliJ IDEA 2022.2.3
- 代码实现功能:
- 实现用户自定义生成算数练习题的数量
- 循环生成指定数量的随机算术题。
- 随机生成两个数字和一个运算符,并根据运算符生成相应的算术题。
- 记录用户答对的题目数量。
- 输出用户答对的题目数量。
二、代码实现
1.源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| import java.util.Random; import java.util.Scanner;
public class ArithmeticExercise { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random();
System.out.print("请输入生成算术题的数量: "); int numberOfQuestions = scanner.nextInt();
int correctAnswers = 0;
for (int i = 1; i <= numberOfQuestions; i++) { int num1 = random.nextInt(100); int num2 = random.nextInt(100); int operation = random.nextInt(4); int correctResult = 0;
switch (operation) { case 0: correctResult = num1 + num2; System.out.printf("问题 %d: %d + %d = ", i, num1, num2); break; case 1: correctResult = num1 - num2; System.out.printf("问题 %d: %d - %d = ", i, num1, num2); break; case 2: correctResult = num1 * num2; System.out.printf("问题 %d: %d * %d = ", i, num1, num2); break; case 3: while (num2 == 0) { num2 = random.nextInt(100); } correctResult = num1 / num2; System.out.printf("问题 %d: %d / %d = ", i, num1, num2); break; }
int userAnswer = scanner.nextInt();
if (userAnswer == correctResult) { System.out.println("正确"); correctAnswers++; } else { System.out.println("错误"); System.out.printf("正确答案是: %d\n", correctResult); } }
System.out.printf("您共答对了 %d 道题。", correctAnswers); scanner.close(); } }
|
2.运行截图
三、代码解释
1.导入必要的类
1 2
| import java.util.Random; import java.util.Scanner;
|
在这个程序中,我们需要使用Java的随机数生成器和输入输出类。因此,我们需要导入java.util.Random
和java.util.Scanner
类。
2.创建Scanner和Random对象
1 2
| Scanner scanner = new Scanner(System.in); Random random = new Random();
|
我们需要使用Scanner类来读取用户输入,使用Random类来生成随机数。
3.提示用户输入题目数量
1 2
| System.out.print("请输入生成算术题的数量: "); int numberOfQuestions = scanner.nextInt();
|
程序会提示用户输入要生成的算术题数量,并使用Scanner类读取用户输入。
4.循环生成算术题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| for (int i = 1; i <= numberOfQuestions; i++) { int num1 = random.nextInt(100); int num2 = random.nextInt(100); int operation = random.nextInt(4); int correctResult = 0;
switch (operation) { case 0: correctResult = num1 + num2; System.out.printf("问题 %d: %d + %d = ", i, num1, num2); break; case 1: correctResult = num1 - num2; System.out.printf("问题 %d: %d - %d = ", i, num1, num2); break; case 2: correctResult = num1 * num2; System.out.printf("问题 %d: %d * %d = ", i, num1, num2); break; case 3: while (num2 == 0) { num2 = random.nextInt(100); } correctResult = num1 / num2; System.out.printf("问题 %d: %d / %d = ", i, num1, num2); break; }
int userAnswer = scanner.nextInt();
if (userAnswer == correctResult) { System.out.println("正确"); correctAnswers++; } else { System.out.println("错误"); System.out.printf("正确答案是: %d\n", correctResult); } }
|
程序使用for循环生成指定数量的算术题。在每次循环中,程序会生成两个随机数num1
和num2
,以及一个随机数operation
,用于表示要进行的运算类型。然后,程序会根据operation
的值生成相应的算术题,并提示用户输入答案。如果用户输入的答案与正确答案相同,程序会输出“正确”,否则输出“错误”并显示正确答案。
5.输出结果
1 2
| System.out.printf("您共答对了 %d 道题。", correctAnswers); scanner.close();
|
程序会输出用户答对的题目数量,并关闭Scanner对象。
四、注意事项
输入的算术题数量必须是正整数。
程序只支持加、减、乘、除四种运算。
如果除法运算的第二个数字为0,则程序会重新生成一个非零数字。
程序会在用户输入答案后才输出正确答案和用户是否答对,因此请耐心等待程序提示。
程序会在所有算术题回答完毕后输出用户答对的题目数量。
John Tao
Stay Hungry. Stay Foolish.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 John Tao!