221k views
3 votes
In this assignment, you will create a flashcard app for teaching addition and multiplication. The student will choose the type of problem, how many they want to solve, and the maximum operand to include in each problem. The program will keep track of how many problems the student answered correctly and report that number along with their percentage. It will then repeat the process, allowing the student to choose a different kind of problem for the next round. Here is an example of how the program should work:

*******************************
Electronic Math Tutor
*******************************
Choose the type of problem:
1. Addition
2. Multiplication
3. Mixed
4. Quit
Enter your choice: 1
How many problems? 3
Largest operand? 12
10 + 8 = ? 17
Incorrect. The answer is 18.
0 + 5 = ? 5
Correct!
7 + 11 = ? 18
Correct!
You answered 2 out of 3 correctly.
Your average was 66.67.
Choose the type of problem:
1. Addition
2. Multiplication
3. Mixed
4. Quit

User Kulpae
by
4.8k points

1 Answer

4 votes

Answer:

See explaination

Step-by-step 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: \\1. Addition \\2. Multiplication \\3. Mixed \\4. 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);

}

}

User Fingeron
by
5.0k points