Java Как программировать книгу Дейтеля упражнение 6.35

#java

#java

Вопрос:

Я изучал книгу Дейтеля (Java как программировать), и я хочу решить упражнение 6.35. Вот что он спрашивает:

Напишите программу, которая поможет учащемуся выучить умножение.Используйте случайный объект для получения двух положительных целых чисел (по одной цифре в каждом). Программа должна показывать на экране что-то вроде этого: («Сколько будет 7 раз 3»)

Затем учащийся должен вставить ответ, и программа контролирует, правильный или неправильный ответ.Если это правильно, программа продолжит задавать другой вопрос, иначе программа ждет, пока ответ ученика не будет правильным.Для каждого нового вопроса должен быть создан новый метод (этот метод должен вызываться один раз при запуске приложения и когда пользователь правильно отвечает на вопрос).

Как мне это сделать?

// У меня проблема внутри блока do-while!

       package multiplication;
import java.util.Random;
import java.util.Scanner;

/*Hey again! I've been trying to solve this problem using NetBeans environment
 *
 */


public class Ypologismos
{
    private int p;
    private int a,b;

    public Ypologismos(int a,int b,int p)
    {
        this.a=a;
        this.b=b;
        this.p=p;

    }


 public Ypologismos()
 {


 }






 public void Screen()
 {
     System.out.println("Wrong answer ....please retry");
 }






    public void askForNumbers()
    {
        Random r=new Random();

        int a,b;
        a=r.nextInt(10);
        b=r.nextInt(10);
        int p;//p=product
        p=(a*b);
        System.out.println("How much is:" " " a " " "times" " " b " " "?");

        System.out.println("Please insert your answer!");

       Scanner s=new Scanner(System.in);
       int ans;//ans=answer
       ans=s.nextInt();

       do
       {
           while(ans==p){

               System.out.println("Well done!");
               askForNumbers();
           }

       }while(ans!=p);


    }






}
 

// и мой основной класс…

 package multiplication;


public class Main
{


    public static void main(String[] args)
    {

        Ypologismos application=new Ypologismos();

        application.askForNumbers();


    }

}
 

Комментарии:

1. Что вы пробовали до сих пор? У вас есть какой-нибудь код? Кроме того, в чем ваш вопрос?

2. Здесь вам нужно приложить гораздо больше усилий — вы разбили его на более мелкие задачи? что тебя сбивает с толку?

3. @Devilhorn Пожалуйста, добавьте любой код к вашему вопросу внутри блока кода (отступ 4 пробела в начале).

4. Дополнительная информация должна входить в исходный вопрос (просто чтобы исключить дамп кода комментария)!

5. Я также создал main и создал объект Ypologismos

Ответ №1:

Сделайте краткий рассказ о том, как это сделать.

 teach multiplication:
    repeat // solving problems
       int first number = something random
       int second number = something random
       int product = first number * second number
       repeat
           int answer = ask how much is first number times second number
           if answer != product
               say error!
       until answer == product
       say solved!
 

Вышесказанное — это только первая идея, не обязательно соответствующая требованиям. Но он очищает, какой цикл входит в какой цикл и так далее.


Читаю ваш расширенный вопрос

 public class Ypologismos {

    /** Entry point to the application. */
    public static void main(String[] args) {
        Ypologismos application = new Ypologismos();
        application.teachMultiplication();
    }

    private void teachMultiplication() {
        while (wantsAProblem()) {
             askAProblem();
        }
    }

    private void askAProblem() {
        int αλφα = random.nextInt(10);
        int βητα = random.nextInt(10);
        ...
    }
}
 

Комментарии:

1. Да, это то, чего я хотел, и я просто не мог об этом подумать, потому что я был в замешательстве, большое вам спасибо… Теперь я могу подумать об этом и закончить сам 🙂