Answer:
See explaination
Explanation:
import java.util.*;
import java.lang.Math;
public class Main
{
public static double getRandomDoubleBetweenRange (double min, double max)
{
double x = (Math.random () * ((max - min) + 1)) + min;
return x;
}
public static void main (String[]args)
{
int option, number_of_problems, correct_answer;
double max_operand, average =
0, user_answer, sum, first_number, second_number, multiply,
sum_or_multiply;
Scanner user_input = new Scanner (System.in);
do
{
System.out.println
("Choose the type of problem: \n1. Addition \n2. Multiplication \n3. Mixed \n4. Quit");
option = user_input.nextInt ();
switch (option)
{
case 1:
correct_answer = 0;
System.out.println ("How many problems?");
number_of_problems = user_input.nextInt ();
System.out.println ("Largest operand?");
max_operand = user_input.nextDouble ();
for (int i = 0; i < number_of_problems; i++)
{
first_number = getRandomDoubleBetweenRange (0, max_operand);
second_number = getRandomDoubleBetweenRange (0, max_operand);
System.out.println (first_number + " + " + second_number +
" = ?");
user_answer = user_input.nextDouble ();
sum = first_number + second_number;
if (sum == user_answer)
{
System.out.println ("Correct!");
correct_answer = correct_answer + 1;
}
else
{
System.out.println ("Incorrect, The Correct answer is " +
sum);
}
}
average = correct_answer * 100 / number_of_problems;
System.out.println ("You answered " + correct_answer +
" out of " + number_of_problems +
" correctly. Your average was " + average);
break;
case 2:
correct_answer = 0;
System.out.println ("How many problems?");
number_of_problems = user_input.nextInt ();
System.out.println ("Largest operand?");
max_operand = user_input.nextDouble ();
for (int i = 0; i < number_of_problems; i++)
{
first_number = getRandomDoubleBetweenRange (0, max_operand);
second_number = getRandomDoubleBetweenRange (0, max_operand);
System.out.println (first_number + " * " + second_number +
" = ?");
user_answer = user_input.nextDouble ();
multiply = first_number * second_number;
if (multiply == user_answer)
{
System.out.println ("Correct!");
correct_answer = correct_answer + 1;
}
else
{
System.out.println ("Incorrect, The Correct answer is " +
multiply);
}
}
average = correct_answer * 100 / number_of_problems;
System.out.println ("You answered " + correct_answer +
" out of " + number_of_problems +
" correctly. Your average was " + average);
break;
case 3:
correct_answer = 0;
System.out.println ("How many problems?");
number_of_problems = user_input.nextInt ();
System.out.println ("Largest operand?");
max_operand = user_input.nextDouble ();
for (int i = 1; i <= number_of_problems; i++)
{
first_number = getRandomDoubleBetweenRange (0, max_operand);
second_number = getRandomDoubleBetweenRange (0, max_operand);
if (i % 2 == 1)
{
System.out.println (first_number + " + " + second_number +
" = ?");
user_answer = user_input.nextDouble ();
sum_or_multiply = first_number + second_number;
if (sum_or_multiply == user_answer)
{
System.out.println ("Correct!");
correct_answer = correct_answer + 1;
}
else
{
System.
out.println ("Incorrect, The Correct answer is " +
sum_or_multiply);
}
}
else
{
System.out.println (first_number + " * " + second_number +
" = ?");
user_answer = user_input.nextDouble ();
sum_or_multiply = first_number * second_number;
if (sum_or_multiply == user_answer)
{
System.out.println ("Correct!");
correct_answer = correct_answer + 1;
}
else
{
System.
out.println ("Incorrect, The Correct answer is " +
sum_or_multiply);
}
}
}
average = correct_answer * 100 / number_of_problems;
System.out.println ("You answered " + correct_answer +
" out of " + number_of_problems +
" correctly. Your average was " + average);
break;
case 4:
System.out.println ("Thanks for playing.");
break;
default:
System.out.println ("Please choose a valid option");
break;
}
}
while (option != 4);
}
}