用Java开发一个给小学生练习100以内数加、减 (大数减小数)、乘、除 (能整除) 运算的程序
时间: 2023-05-29 20:04:45 浏览: 629
以下是一个基于Java语言开发的小学生数学练习程序,支持100以内的加、减、乘、除运算:
```java
import java.util.Random;
import java.util.Scanner;
public class MathPractice {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int correctCount = 0;
int totalCount = 0;
while (true) {
int a = random.nextInt(100) + 1;
int b = random.nextInt(100) + 1;
int operator = random.nextInt(4);
String opStr;
int result;
switch (operator) {
case 0: // 加法
opStr = "+";
result = a + b;
break;
case 1: // 减法
if (a < b) {
int temp = a;
a = b;
b = temp;
}
opStr = "-";
result = a - b;
break;
case 2: // 乘法
opStr = "x";
result = a * b;
break;
case 3: // 除法
if (b == 1) {
continue; // 除数不能为1
}
int quotient = a / b;
if (quotient * b != a) {
continue; // 不能整除
}
opStr = "/";
result = quotient;
break;
default:
throw new IllegalStateException("Unexpected value: " + operator);
}
System.out.printf("%d %s %d = ", a, opStr, b);
int answer = scanner.nextInt();
if (answer == result) {
System.out.println("回答正确!");
correctCount++;
} else {
System.out.println("回答错误!");
}
totalCount++;
System.out.printf("你已经回答了%d题,其中%d题回答正确。\n", totalCount, correctCount);
System.out.println("是否继续?(y/n)");
String continueStr = scanner.next();
if (!"y".equalsIgnoreCase(continueStr)) {
break;
}
}
System.out.printf("你一共回答了%d题,其中%d题回答正确。", totalCount, correctCount);
}
}
```
程序首先通过 `Scanner` 和 `Random` 类创建一个输入和一个随机数生成器。然后程序进入一个循环,每次生成两个随机数和一个运算符,根据运算符计算出正确答案,然后提示用户输入答案,根据用户输入和正确答案进行比较,输出回答正确或回答错误的提示信息,并记录回答正确的题目数和总题目数。然后询问用户是否继续做题,如果用户输入的是 `y`,则继续下一轮循环,否则退出循环,输出总题目数和回答正确的题目数。在程序中,除法运算需要特别处理,保证被除数和除数都在100以内,且能够整除,除数不能为1。减法运算需要保证大数减小数,因此如果a小于b,需要交换a和b的值。
阅读全文