这段代码实现了一个简单的在线测试程序,用户可以在输入框中输入答案并提交,程序会自动计算正确率和做题时间。

item1.setOnAction(e -> {
    int range = 10; // 设置范围为10以内
    int count = 20; // 生成20个题目
    List<String> questions = Add.generateQuestions(range, count);

    // 创建一个VBox作为容器
    VBox questionBox = new VBox();

    // 遍历题目列表,创建并添加Label和TextField到容器中
    List<TextField> answerFields = new ArrayList<>();
    for (String question : questions) {
        Label label = new Label(question);
        TextField answerField = new TextField();
        answerFields.add(answerField);
        HBox hbox = new HBox(label, answerField);
        hbox.setSpacing(10);
        questionBox.getChildren().add(hbox);
    }

    // 创建提交按钮
    Button submitButton = new Button('提交');
    submitButton.setOnAction(submitEvent -> {
        int correctCount = 0;
        for (int i = 0; i < questions.size(); i++) {
            String answer = answerFields.get(i).getText();
            String question = questions.get(i);
            if (Add.isCorrectAnswer(question, answer)) {
                correctCount++;
            }
        }
        double accuracy = (correctCount * 1.0) / questions.size();
        long timeElapsed = System.currentTimeMillis() - startTime;

        // 显示正确率和做题时间
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.setTitle('结果');
        alert.setHeaderText('正确率: ' + accuracy * 100 + '%');
        alert.setContentText('做题时间: ' + timeElapsed + '毫秒');
        alert.showAndWait();
    });

    // 创建一个VBox作为题目和提交按钮的容器
    VBox mainBox = new VBox();
    mainBox.getChildren().addAll(questionBox, submitButton);
    mainBox.setSpacing(10);

    // 创建一个ScrollPane,并将VBox作为其内容
    ScrollPane scrollPane = new ScrollPane(mainBox);

    // 创建一个新的Stage用于显示题目
    Stage questionStage = new Stage();
    questionStage.setTitle('题目');
    Scene questionScene = new Scene(scrollPane, 400, 500);
    questionStage.setScene(questionScene);
    questionStage.show();

    // 记录开始做题的时间
    long startTime = System.currentTimeMillis();
});

代码中使用了以下技术:

  • JavaFX: 用于创建用户界面。
  • List: 用于存储题目和答案。
  • Label: 用于显示题目。
  • TextField: 用于输入答案。
  • HBox: 用于横向排列题目和答案输入框。
  • VBox: 用于纵向排列题目和提交按钮。
  • ScrollPane: 用于滚动显示题目。
  • Button: 用于提交答案。
  • Alert: 用于显示正确率和做题时间。

代码实现的功能包括:

  • 生成题目列表。
  • 创建输入框供用户输入答案。
  • 创建提交按钮用于提交答案。
  • 计算正确率。
  • 计算做题时间。
  • 显示正确率和做题时间。

这段代码可以作为开发简单在线测试程序的参考。

Java 代码实现:带答案输入框、提交按钮和计时功能的在线测试

原文地址: https://www.cveoy.top/t/topic/RiF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录