v2.2 添加了用户名功能,并测试基本功能

pull/4/head
玖兮冉 7 months ago
parent 7b4118d63e
commit 4b62d84eca

@ -67,10 +67,12 @@ public class SceneManager {
primaryStage.show(); // 添加这行
}
public void showQuizView() {
System.out.println("切换到答题界面");
public void showQuizView(String level, int count) {
System.out.println("切换到答题界面 - 级别: " + level + ", 题目数量: " + count);
// 设置测验参数
quizView.setQuizParameters(level, count);
primaryStage.setScene(quizView.getScene());
primaryStage.show(); // 添加这行
primaryStage.show();
}
public void showResultView(double score) {

@ -58,9 +58,8 @@ public class QuestionCountView {
return;
}
// 设置题目数量和级别,然后开始答题
sceneManager.getQuizView().setQuizParameters(level, count);
sceneManager.showQuizView();
// 直接调用 showQuizView 并传递参数
sceneManager.showQuizView(level, count);
} catch (NumberFormatException ex) {
showError(statusLabel, "请输入有效的数字!");

@ -67,19 +67,62 @@ public class QuizView {
}
public void setQuizParameters(String level, int count) {
System.out.println("设置测验参数 - 级别: " + level + ", 题目数量: " + count);
this.currentLevel = level;
this.questionCount = count;
this.correctAnswers = 0;
// 生成题目
generateQuestions();
// 检查是否成功生成题目
if (questions == null || questions.isEmpty()) {
System.out.println("题目生成失败,显示空状态");
showEmptyState();
return;
}
System.out.println("成功生成 " + questions.size() + " 道题目,开始显示第一题");
showQuestion(0);
}
private void generateQuestions() {
QuestionGenerator questionGenerator = QuestionService.createGenerator(currentLevel);
multipleChoiceGenerator = new MultipleChoiceGenerator(questionGenerator,currentLevel);
questions = multipleChoiceGenerator.generateMultipleChoiceQuestions(questionCount);
try {
System.out.println("开始生成题目,级别: " + currentLevel + ", 数量: " + questionCount);
QuestionGenerator questionGenerator = QuestionService.createGenerator(currentLevel);
if (questionGenerator == null) {
System.err.println("题目生成器创建失败,级别: " + currentLevel);
questions = java.util.Collections.emptyList();
return;
}
System.out.println("题目生成器创建成功: " + questionGenerator.getClass().getSimpleName());
multipleChoiceGenerator = new MultipleChoiceGenerator(questionGenerator, currentLevel);
questions = multipleChoiceGenerator.generateMultipleChoiceQuestions(questionCount);
System.out.println("题目生成完成,数量: " + (questions != null ? questions.size() : "null"));
} catch (Exception e) {
System.err.println("生成题目时出现异常: " + e.getMessage());
e.printStackTrace();
questions = java.util.Collections.emptyList();
}
}
private void showEmptyState() {
VBox root = (VBox) scene.getRoot();
root.getChildren().clear();
Label emptyLabel = new Label("无法生成题目,请返回重试");
emptyLabel.setFont(Font.font(16));
Button backButton = new Button("返回");
backButton.setOnAction(e -> sceneManager.showLevelSelectionView());
root.getChildren().addAll(emptyLabel, backButton);
}
private void showQuestion(int index) {

@ -9,12 +9,13 @@ import java.util.List;
public class Main {
public static void main(String[] args) {
// 生成小学选择题
/*
System.out.println("--- Primary School MCQs ---");
PrimarySchoolGenerator primaryGen = new PrimarySchoolGenerator();
MultipleChoiceGenerator primaryMC = new MultipleChoiceGenerator(primaryGen, "小学"); // 传入级别
List<QuestionWithOptions> primaryMCQs = primaryMC.generateMultipleChoiceQuestions(10);
primaryMCQs.forEach(q -> System.out.println(q + "\n"));
*/
// 生成初中选择题
System.out.println("--- Junior High MCQs ---");
JuniorHighGenerator juniorGen = new JuniorHighGenerator();

@ -1 +1,2 @@
张三,1798231811@qq.com,123456
wsf,3310207578@qq.com,Wsf1234

Loading…
Cancel
Save