Member 14007867 Ответов: 2

Как создать 2 метода в 1 java-файле (умножение и multiplicationtest)


Напишите программу, которая поможет ученику научиться умножению. Используйте объект SecureRandom для получения двух положительных целых чисел от 1 до 20. Затем программа должна предложить пользователю вопрос (используйте цикл, управляемый часовым), например: сколько будет 10 раз 11?
Затем студент вводит ответ. Если ответ правильный, выведите сообщение “очень хорошо” и задайте другой вопрос. Если ответ неверен, выведите сообщение “Нет, пожалуйста, попробуйте еще раз” и дайте студенту попробовать тот же вопрос, пока он, наконец, не получит его правильно. Вы должны создать два файла java: умножение.Java и MultiplicationTest.java. В умножении добавьте два метода: CreateQuestion и CheckResponse. В MultiplicationTest.java-проверьте свой метод.

Что я уже пробовал:

Я пытался делать практически все, но с моим кодом всегда что-то не так. Я исправляю одну вещь, и это портит другие вещи в файле. Вот мой код для класса умножения.

импорт java.security.SecureRandom;
импорт java.util.Сканер;

умножение общественного класса {
частная окончательной статической SecureRandom отобрать моя случайная величина = новый SecureRandom отобрать (); //создать SecureRandom отобрать обектов
private int num1;
private int num2;
частный инт ответ;
частное вступление Угадай;

общественного недействительными createQuestion (){
Вход сканера = новый сканер (System.in);
num1 = 1 + myRandom.nextInt(20);
num2 = 1 + myRandom.nextInt(20);

ответ = num1 * num2;
System.out.printf("что такое %d times %d", num1, num2);
думаю = вход.nextInt();
}
публичная строка checkResponse (){
если (Угадай == ответ){
System.out.println("это правильно");
}
еще {
System.out.println("нет. Пожалуйста, попробуйте еще раз!");
}
}
}

2 Ответов

Рейтинг:
4

CPallini

Попробуйте (я не использовал отдельный файл для тестирования. Тестирование выполняется в основной функции):

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

public class Multiplication {
  private final static SecureRandom myRandom = new SecureRandom (); //create a SecureRandom objec
  private int answer;

  public String createQuestion ()
  {
    int num1 = 1 + myRandom.nextInt(20);
    int num2 = 1 + myRandom.nextInt(20);

    answer = num1 * num2;
    return String.format("What is %d times %d", num1, num2);
  }
  public boolean checkResponse (int guess)
  {
    return guess == answer;
  }

  public static void main( String args[] )
  {
    Scanner input = new Scanner (System.in);
    while ( true )
    {
      Multiplication mult = new Multiplication();
      String question = mult.createQuestion();
      boolean answerOK = false;
      do
      {
        System.out.println(question);
        int guess = input.nextInt();
        answerOK = mult.checkResponse(guess);
        if ( answerOK )
          System.out.println("That's correct");
        else
          System.out.println("No. Please try again!");
      } while ( ! answerOK );
    }
  }
}


Member 14007867

Большое вам спасибо! Я действительно ценю это!

CPallini

Добро пожаловать.

Рейтинг:
2

Patrice T

Цитата:
Я исправляю одну вещь, и это портит другие вещи в файле.

Когда вы просите о помощи, это хорошая идея, чтобы объяснить, как все идет не так с примером, чтобы воспроизвести проблему.
Цитата:
Я пытался делать практически все, но с моим кодом всегда что-то не так. Я исправляю одну вещь, и это портит другие вещи в файле.

Может быть, пришло время попробовать отладчик и посмотреть, как работает ваш код, это должно помочь вам понять, что именно происходит за капотом.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Обратная сторона этого решения:
- Это DIY, вы один отслеживаете проблему и находите ее корни, которые ведут к решению.
Положительная сторона этого решения:
- Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.

Вторичное воздействие
- Вы будете гордиться тем, что сами находите Жуков.
- Ваши навыки обучения улучшатся.

Вы должны довольно быстро найти, что не так.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Member 14007867

Большое вам спасибо! Я действительно ценю это!

CPallini

Мои 5 против зла Downvoter. :-)

Patrice T

Спасибо