软件构造,口算题卡

package web;

import java.util.Random;
import java.util.Scanner;

public class test {

   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);

       int numCorrect = 0;

       System.out.println("欢迎来到口算题卡系统");
       System.out.println("请输入生成题目数量!");
       int numQuestions = scanner.nextInt();
       System.out.println("请输入生成题目数量数字范围!");
       int range= scanner.nextInt();
       System.out.println("下面开始作答。");
       String a = "";
       int flag=0;
       for (int i = 0; i < numQuestions; i++) {
           String question = generateQuestion(range);
           System.out.print("问题 " + (i + 1) + ": " + question + " = ");
           int userAnswer = scanner.nextInt();
           int correctAnswer = evaluateQuestion(question);

           if (userAnswer == correctAnswer) {
               System.out.println("回答正确!");
               numCorrect++;
           } else {
               System.out.println("回答错误。正确答案是 " + correctAnswer);
               i=i+1;
               String ii=String.valueOf(i);
               if(flag==0){
                   a=a.concat(ii);
               }
               else{
                   a=a+","+ii;
               }
               flag++;
           }
       }

       System.out.println("测验结束!");
       System.out.println("本次共回答正确了 " + numCorrect + " 题,回答错误了 " + (numQuestions - numCorrect) + " 题。");
       System.out.println("以下为错题:");
       System.out.println(a+"。请再次作答!");
   }

   // 生成随机的加减乘除法问题
   public static String generateQuestion(int range) {
       Random random = new Random();
       int num1 = random.nextInt(range) + 1;
       int num2 = random.nextInt(range) + 1;
       int operator = random.nextInt(4); // 0: +, 1: -, 2: *, 3: /
       char operatorChar;

       switch (operator) {
           case 0:
               operatorChar = '+';
               break;
           case 1:
               operatorChar = '-';
               break;
           case 2:
               operatorChar = '*';
               break;
           default:
               operatorChar = '/';
               break;
       }

       return num1 + " " + operatorChar + " " + num2;
   }

   // 计算问题的正确答案
   public static int evaluateQuestion(String question) {
       String[] parts = question.split(" ");
       int num1 = Integer.parseInt(parts[0]);
       char operator = parts[1].charAt(0);
       int num2 = Integer.parseInt(parts[2]);
       int result = 0;

       switch (operator) {
           case '+':
               result = num1 + num2;
               break;
           case '-':
               result = num1 - num2;
               break;
           case '*':
               result = num1 * num2;
               break;
           case '/':
               result = num1 / num2;
               break;
       }

       return result;
   }
}

 

posted @ 2023-10-12 15:08  代不动码  阅读(22)  评论(0)    收藏  举报