10.20
修改了四则运算中的部分错误
Grade3QuestionGenerator类
点击查看代码
package qixun;
import java.util.Random;
public class Grade3QuestionGenerator extends Grade2QuestionGenerator {
public Grade3QuestionGenerator() {
this.operandCount = 4; // 操作数不超过4个
this.maxOperandValue = 1000; // 操作数范围不超过1000
}
@Override
public String getQuestion() {
Random random = new Random();
StringBuilder question = new StringBuilder();
// 生成最多4个操作数的表达式
for (int i = 0; i < operandCount - 1; i++) {
int operand = random.nextInt(maxOperandValue) + 1;
String operator = generateOperator(); // 调用父类的 generateOperator()
question.append(operand).append(" ").append(operator).append(" ");
}
question.append(random.nextInt(maxOperandValue) + 1); // 最后一个操作数
return question.toString();
}
@Override
public double getAnswer(String question) {
double result = super.getAnswer(question);
return result;
}
}
点击查看代码
package qixun;
import java.util.Random;
public class Grade4QuestionGenerator extends Grade3QuestionGenerator {
public Grade4QuestionGenerator() {
this.operandCount = 5;
}
@Override
public String getQuestion() {
Random random = new Random();
StringBuilder question = new StringBuilder();
// 生成最多5个操作数的表达式
for (int i = 0; i < operandCount; i++) {
if (i > 0) {
// 在每个操作数前添加运算符
String operator = generateOperator();
question.append(operator).append(" ");
}
int operand = random.nextInt(maxOperandValue) + 1;
question.append(operand).append(" ");
// 在特定条件下生成完整的子表达式并放入括号
if (i == 2 && operandCount > 3) { // 在第三个操作数后添加括号
String completeExpression = generateCompleteExpression(random);
question.insert(question.length() - String.valueOf(operand).length() - 1, "(" + completeExpression + ") ");
break; // 插入括号后,退出主循环
}
}
return question.toString().trim(); // 去掉多余空格
}
// 生成一个完整的子表达式
private String generateCompleteExpression(Random random) {
StringBuilder subExpression = new StringBuilder();
int subOperandCount = 2 + random.nextInt(3); // 至少2个操作数,最多4个操作数
for (int j = 0; j < subOperandCount; j++) {
if (j > 0) {
String operator = generateOperator();
subExpression.append(operator).append(" ");
}
int operand = random.nextInt(maxOperandValue) + 1;
subExpression.append(operand).append(" ");
}
return subExpression.toString().trim();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具