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;
    }
}


Grade4QuestionGenerator类
点击查看代码
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();
    }

}

posted @   QixunQiu  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示