编写程序实现10以内整数的四则运算练习,五题1组,最后打印得分,每题分值20。java
时间: 2025-03-07 18:11:09 浏览: 44
### 创建Java程序实现简单数学测验
为了满足需求,下面展示了一个完整的 Java 程序框架。此程序能够生成10以内的加、减、乘、除四则运算题目,每次提供五道题供学生解答,并根据答题情况给出总分数。
#### 主要功能模块设计
- **菜单显示**:向用户呈现可选操作列表。
- **题目生成器**:负责创建指定范围内的四则运算表达式。
- **成绩统计**:记录用户的作答状况并计算最终得分。
```java
import java.util.Random;
import java.util.Scanner;
public class MathQuiz {
private static final int QUESTION_COUNT = 5; // 题目数量
private static final int SCORE_PER_QUESTION = 20; // 每题满分
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
showMenu(); // 显示菜单
int totalScore = 0;
for (int i = 0; i < QUESTION_COUNT; ++i){
String question = generateQuestion(random); // 生产一道新问题
System.out.print((i + 1) + ": " + question + "= ");
double userAnswer = Double.parseDouble(scanner.nextLine());
if(checkAnswer(question, userAnswer)){
System.out.println("Correct!");
totalScore += SCORE_PER_QUESTION;
}else{
System.out.println("Incorrect.");
}
}
System.out.printf("Total Score: %d/%d\n", totalScore, QUESTION_COUNT * SCORE_PER_QUESTION);
scanner.close();
}
/// 展示给学生的选项界面[^2]
private static void showMenu(){
System.out.println("***********************");
System.out.println("* Welcome to Math Quiz! *");
System.out.println("* Please select an option below:");
System.out.println("* 1. Addition *");
System.out.println("* 2. Subtraction *");
System.out.println("* 3. Multiplication *");
System.out.println("* 4. Division *");
System.out.println("* 5. Mixed Operations *");
System.out.println("* Enter any key to continue...");
System.out.println("***********************\n");
}
/// 构建一个随机的四则运算问题字符串
private static String generateQuestion(Random r){
char operator = "+-*\\".charAt(r.nextInt(4));
int num1 = r.nextInt(10)+1;
int num2 = r.nextInt(10)+1;
while(operator=='/' && num2==0){num2=r.nextInt(10)+1;} //防止除零错误
return ""+num1+" "+operator+" "+num2;
}
/// 对比用户输入的答案与实际结果是否一致
private static boolean checkAnswer(String qst,double usrAns){
try{
String[] parts=qst.split("\\s+");
switch(parts[1]){
case "+":return Double.valueOf(parts[0])+Double.valueOf(parts[2])==usrAns;
case "-":return Double.valueOf(parts[0])-Double.valueOf(parts[2])==usrAns;
case "*":return Double.valueOf(parts[0])*Double.valueOf(parts[2])==usrAns;
default :// division
return Double.valueOf(parts[0])/Double.valueOf(parts[2])==(double)((int)(usrAns*1e6))/1e6;//保留六位有效数字比较浮点数相等性
}
}catch(Exception e){
throw new RuntimeException(e.getMessage(),e);
}
}
}
```
上述代码实现了基本的功能需求,通过`generateQuestion()`方法利用随机数生成器构建了不同类型的算术题目,并且在`checkAnswer()`中进行了答案验证处理。此外,在主循环里完成了对多个问题的回答收集以及评分逻辑。
阅读全文
相关推荐
















