You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
projectone/MathProblemGenerator.java

34 lines
1.1 KiB

import java.text.DecimalFormat;
import java.util.Random;
/**
* 数学题目生成器,根据不同难度生成相应的数学题目(外观类)
* 将具体生成逻辑委托给对应子类,保持对外 API 不变。
*/
public class MathProblemGenerator {
private final Random random;
private final DecimalFormat df;
public MathProblemGenerator() {
this.random = new Random();
this.df = new DecimalFormat("#.##");
}
/**
* 根据难度生成数学题目
* @param difficulty 难度级别(小学、初中、高中)
* @return 生成的数学题目
*/
public MathProblem generateProblem(String difficulty) {
switch (difficulty) {
case "小学":
return new ElementaryProblemGenerator(random, df).generate();
case "初中":
return new MiddleSchoolProblemGenerator(random, df).generate();
case "高中":
return new HighSchoolProblemGenerator(random, df).generate();
default:
throw new IllegalArgumentException("不支持的难度级别: " + difficulty);
}
}
}