Написание программы, чтобы помочь ученикам начальных классов научиться умножению - PullRequest
0 голосов
/ 17 октября 2019

Напишите программу, которая поможет ученику начальной школы научиться умножению. Используйте объект SecureRandom для получения двух положительных однозначных целых чисел (вам нужно будет посмотреть, как это сделать). Затем программа должна подсказать пользователю вопрос, такой как

Сколько стоит 6 раз 7? Затем студент вводит ответ. Далее программа проверяет ответ студента. Если это правильно, отобразите сообщение «Очень хорошо!»и задать еще один вопрос умножения. Если ответ неверный, отобразите сообщение «Нет. Пожалуйста, попробуйте еще раз.> Еще раз». и пусть ученик повторяет один и тот же вопрос несколько раз, пока ученик, наконец, не поймет его правильно.

Для создания каждого нового вопроса следует использовать отдельный метод. Этот метод следует вызывать один раз, когда приложение начинает выполнение, и каждый раз, когда пользователь правильно отвечает на вопрос.

Мой вопрос: вы должны сделать оператор if else == мой публичный статический mathQuestion, а затему него есть выход? Я заблудился, что делать после создания SecureRandom. Я все еще новичок в Java.

Я пытался сделать операторы if-else после того, как пропустил вопрос несколько раз, но это было сделано в методе.

import java.security.SecureRandom;
import java.util.;

public class h_p1 {
    static SecureRandom rand = new SecureRandom();
    static Scanner sc = new Scanner (System.in);
 public static int mathQuestion() {
    int n1 = rand.nextint(9) + 1;
    int n2 = rand.nextint(9) + 1;

    System.out.print("What is" + n1 + "x" + n2"?");
    return r1 * r2;
}


}

}

Ответы [ 3 ]

0 голосов
/ 17 октября 2019
public class Quiz {

    public static void main(String[] args) {

        generateRandomNumbers();

    }

    public static void generateRandomNumbers() {
        SecureRandom rand = new SecureRandom();
        Scanner sc = new Scanner (System.in);

        int n1 = rand.nextInt(9) + 1;
        int n2 = rand.nextInt(9) + 1;

        generateQuestion(n1,n2);
    }

    public static void generateQuestion(int n1, int n2) {

        Scanner sc = new Scanner (System.in);

        System.out.print("What is " + n1 + " x " + n2+ " ?");

        int typedAnswer = sc.nextInt();

        if(typedAnswer == (n1*n2)) {
            System.out.println("Correct Answer");
            generateRandomNumbers();
        }else {
            System.out.println("Wrong Answer");
            generateQuestion(n1,n2);
        }

    }

}
0 голосов
/ 18 октября 2019

Самый простой ответ на этот вопрос, о котором я мог подумать:

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    do {
        SecureRandom secureRandom = new SecureRandom();
        int numbOne = secureRandom.nextInt(9) + 1;
        int numbTwo = secureRandom.nextInt(9) + 1;
        int prod = numbOne * numbTwo;
        int response;
        do {
            System.out.println(MessageFormat.format("What is the product of {0} and {1}", numbOne, numbTwo));
            response = scanner.nextInt();
            if (response != prod) {
                System.out.println("Incorrect answer! Try again");
            }
        } while (response != prod);
        System.out.println("Correct answer");
        System.out.println("Do you want to practice with another question (Y/N)?");
    } while (scanner.next().equalsIgnoreCase("Y"));
}

Используются 2 do-while петли. Внешний цикл контролирует количество раз, когда вопрос должен задаваться в зависимости от выбора пользователя, а внутренний цикл проверяет правильность ответа, данного пользователем.

0 голосов
/ 17 октября 2019

Вам необходимо сделать следующее:

  1. Запросить ответ
  2. Проверить ответ с помощью оператора if.
  3. Если ответ неверный,еще раз.
  4. Если это правильно, создайте еще один вопрос.

Вам потребуется использовать циклы в этой ситуации. Это может иметь разные конструкции, но вам понадобится один для перекомпоновки и один для нового вопроса.

Imo, лучший способ сделать перекомпоновку - это использовать оператор while с настраиваемым логическим значением. Если они получат правильный ответ, установите для логического значения значение false, в противном случае продолжайте запрашивать, пока значение true. Вы также можете использовать цикл for, если хотите ограничить количество догадок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...