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.
Rumia/src/PrimaryQuestionGenerator.java

33 lines
1.2 KiB

import java.util.Random;
/**
* 小学题目生成器
*/
public class PrimaryQuestionGenerator extends AbstractQuestionGenerator {
@Override
public String generateQuestion(int[] operands, Random random) {
StringBuilder question = new StringBuilder();
// 小学题目:只能有+,-,*,/和(),严格按照附表-2要求
question.append(operands[0]);
for (int i = 1; i < operands.length; i++) {
String op = BASIC_OPERATORS[random.nextInt(BASIC_OPERATORS.length)];
// 随机添加括号,确保括号内也有运算符
if (i < operands.length - 1 && random.nextBoolean()) {
question.append(" ").append(op).append(" (").append(operands[i]);
if (i + 1 < operands.length) {
op = BASIC_OPERATORS[random.nextInt(BASIC_OPERATORS.length)];
question.append(" ").append(op).append(" ").append(operands[++i]).append(")");
} else {
question.append(")");
}
} else {
question.append(" ").append(op).append(" ").append(operands[i]);
}
}
return question.toString();
}
}