I wrote a program called SubtractionQuizLoop.java that prompts the user to answer some easy subtraction questions. Now, I want to modify it to ask for addition, subtraction, multiplication and division. To do that, I have to make use of the switch, which I'm just learning about and thus am a little unsure on its usage.
Here's my SubtractionQuizLoop.java source code...
import java.util.Scanner;
public class SubtractionQuizLoop {
public static void main(String[] args) {
final int NUMBER_OF_QUESTIONS = 5; // Number of questions
int correctCount = 0; // Count the number of correct answers
int count = 0; // Count the number of questions
long startTime = System.currentTimeMillis();
String output = ""; // output string is initially empty
Scanner input = new Scanner(System.in);
while (count < NUMBER_OF_QUESTIONS) {
// 1. Generate two random single-digit integers
int number1 = (int)(Math.random() * 10);
int number2 = (int)(Math.random() * 10);
// 2. If number1 < number2, swap number1 with number2
if (number1 < number2) {
int temp = number1;
number1 = number2;
number2 = temp;
}
// 3. Prompt the student to answer "What is number1 - number2?"
System.out.print(
"What is " + number1 + " - " + number2 + "? ");
int answer = input.nextInt();
// 4. Grade the answer and display the result
if (number1 - number2 == answer) {
System.out.println("You are correct!");
correctCount++;
}
else
System.out.println("Your answer is wrong. \n" + number1
+ " - " + number2 + " should be " + (number1 - number2));
// Increase the count
count++;
output += "\n" + number1 + "-" + number2 + "=" + answer +
((number1 - number2 == answer) ? " correct" : " wrong");
}
long endTime = System.currentTimeMillis();
long testTime = endTime - startTime;
System.out.println("Correct count is " + correctCount +
"\nTest time is " + testTime / 1000 + " seconds\n" + output);
}
}
Here are my project's specifications...
~ Lets user decide how many questions will be asked.
~ Lets user decide if the questions will be (1) all addition or (2) all subtraction or
(3) all multiplication or ( 4) all division or (5) a random mix of these operations.
A random mix means any question is equally likely to be +, _ , * or /.
~ Lets user decide on the level of the problems. Level (1) is single digit
numbers randomly chosen for 0 to 9 and Level(2) is single or double digit
numbers randomly chosen from 0 to 99.
The switch command is supposed to be expressed in this form:
switch ( choice) { case 1: //addition question code
}
break; case 2: //subtraction question code from Listing 4.3
break; case 3: // multiplication question code
break: case 4: //division question code
break: default: // print error message
System.exit(0);
I know that's a lot for one topic. But I'm just feeling a bit overwhelmed here and was wondering if maybe someone here could help me get started.
Question
Quillz
I wrote a program called SubtractionQuizLoop.java that prompts the user to answer some easy subtraction questions. Now, I want to modify it to ask for addition, subtraction, multiplication and division. To do that, I have to make use of the switch, which I'm just learning about and thus am a little unsure on its usage.
Here's my SubtractionQuizLoop.java source code...
import java.util.Scanner; public class SubtractionQuizLoop { public static void main(String[] args) { final int NUMBER_OF_QUESTIONS = 5; // Number of questions int correctCount = 0; // Count the number of correct answers int count = 0; // Count the number of questions long startTime = System.currentTimeMillis(); String output = ""; // output string is initially empty Scanner input = new Scanner(System.in); while (count < NUMBER_OF_QUESTIONS) { // 1. Generate two random single-digit integers int number1 = (int)(Math.random() * 10); int number2 = (int)(Math.random() * 10); // 2. If number1 < number2, swap number1 with number2 if (number1 < number2) { int temp = number1; number1 = number2; number2 = temp; } // 3. Prompt the student to answer "What is number1 - number2?" System.out.print( "What is " + number1 + " - " + number2 + "? "); int answer = input.nextInt(); // 4. Grade the answer and display the result if (number1 - number2 == answer) { System.out.println("You are correct!"); correctCount++; } else System.out.println("Your answer is wrong. \n" + number1 + " - " + number2 + " should be " + (number1 - number2)); // Increase the count count++; output += "\n" + number1 + "-" + number2 + "=" + answer + ((number1 - number2 == answer) ? " correct" : " wrong"); } long endTime = System.currentTimeMillis(); long testTime = endTime - startTime; System.out.println("Correct count is " + correctCount + "\nTest time is " + testTime / 1000 + " seconds\n" + output); } }Here are my project's specifications...
~ Lets user decide how many questions will be asked.
~ Lets user decide if the questions will be (1) all addition or (2) all subtraction or
(3) all multiplication or ( 4) all division or (5) a random mix of these operations.
A random mix means any question is equally likely to be +, _ , * or /.
~ Lets user decide on the level of the problems. Level (1) is single digit
numbers randomly chosen for 0 to 9 and Level(2) is single or double digit
numbers randomly chosen from 0 to 99.
The switch command is supposed to be expressed in this form:
switch ( choice) { case 1: //addition question code } break; case 2: //subtraction question code from Listing 4.3 break; case 3: // multiplication question code break: case 4: //division question code break: default: // print error message System.exit(0);I know that's a lot for one topic. But I'm just feeling a bit overwhelmed here and was wondering if maybe someone here could help me get started.
Link to comment
Share on other sites
7 answers to this question
Recommended Posts