Нам нужно сделать программу, чем создавать математические задачи для разных уровней года, поэтому они могут быть разными. Мы должны произвести 2 случайных числа в пределах границы min и max. Затем мы должны заставить эти два числа выполнить операцию. Например, добавьте их вместе или разделите один на другой или умножьте их и т. Д.Генерация случайных математических вопросов
Программа работает на основе уровня, который пользователь предоставляет. Каждый год уровень имеет разные минимальные и максимальные номера и разные операции. Например. Год 1 - это только сложение и вычитание, а год 7 - деление умножения сложения и т. Д. Я определил разные методы, чтобы помочь мне сделать это, но я не могу заставить свою программу генерировать то, что я хочу. Он должен выглядеть примерно так, как показано на рисунке ниже. Часть моего кода здесь. Когда я запускаю свою программу, он просто создает целое число (10 или 20 в зависимости от того, сколько математических вопросов пользователь выбрал для попытки). Он не производит никаких операций между цифрами eg (+, -, /, x)
Может ли кто-нибудь указать мне в правильном направлении относительно того, что я делаю неправильно?
private static void generateQuestion(int yearLevel) {
int min = getMin(yearLevel);
int max = getMax(yearLevel);
int num1 = (int) (min + (max - min) * Math.random());
int num2 = (int) (min + (max - min) * Math.random());
int oper = getOper(yearLevel);
String result = " ";
char op;
switch (oper) {
case 1:
op = '+';
result = (num1 + num2 + " ");
break;
case 2:
op = '-';
result = (num1 - num2 + " ");
break;
case 3:
op = '*';
result = (num1 * num2 + " ");
break;
case 4:
op = '/';
result = (num1/num2 + " ");
break;
case 5:
op = '%';
result = (num1 % num2 + " ");
break;
}
;
}
private static int getMin(int yearLevel) {
int min = 0;
if (yearLevel == 0 || yearLevel == 1 || yearLevel == 2 || yearLevel == 3 || yearLevel == 4) {
min = 0;
}
if (yearLevel == 5 || yearLevel == 6) {
min = -999;
}
if (yearLevel == 7) {
min = -9999;
}
return min;
}
private static int getMax(int yearLevel) {
int max = 9;
if (yearLevel == 0 || yearLevel == 1 || yearLevel == 2 || yearLevel == 3 || yearLevel == 4) {
max = 9;
}
if (yearLevel == 5 || yearLevel == 6) {
max = 999;
}
if (yearLevel == 7) {
max = 9999;
}
return max;
}
public static int getOper(int yearLevel) {
yearLevel = 0;
int opBounds = 1;
if (yearLevel == 1 || yearLevel == 2) {
opBounds = 2;
}
if (yearLevel == 3 || yearLevel == 4 || yearLevel == 5) {
opBounds = 4;
}
if (yearLevel == 7) {
opBounds = 5;
}
return opBounds;
}
}
Где вы используете переменные 'result & op' в void методе' generateQuestion() '??? –
Я использую op, когда я переключаю свою операцию из метода getOper и преобразует число числового номера числа в операцию, например '+' '-' и т. Д. Затем я использую результат, прежде чем я разбиваю каждый случай, чтобы преобразовать его в строку – lildizzle63
Каков ваш ожидаемый результат? Вы упоминаете изображение, но я не вижу его – Constantinos