diff --git a/MathProblemGenerator.java b/MathProblemGenerator.java new file mode 100644 index 0000000..3a65350 --- /dev/null +++ b/MathProblemGenerator.java @@ -0,0 +1,34 @@ +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); + } + } +} \ No newline at end of file