I wrote a program to read do a simple math test, this program reads top down and works fine. I would like to break it up into three different classes with one being the main.
The pseudocode I wrote I believe is what will do this but I don't know how to call methods and such.
this is my code
import java.util.Random; public class MathTest { public static void main (String [] args) { //local constants final int RANGE = 10; //# of diff values to create final int NUM_QUESTIONS = 5; final int QUIT = 2; //local variables int num1; // 1st number int num2; // 2nd number int answer; // answer to the addition problem int userSelection; // user selects to take test or to quit int numCorrect; // number of correct answers float testScore; // test score of user in percentage Random gen = new Random(); // Random class to generate random numbers Library myLib = new Library (); //Display test menu and input user choice System.out.print("\n\n Simple Math Tests Made Easy\n\n" + " 1. Take a Test\n" + " 2. Quit\n\n" + " Enter Choice: "); userSelection = Keyboard.readInt(); //WHILE (user selection is take test) while(userSelection != QUIT) { //Clear the screen myLib.clrscr(); //Init number correct to 0 numCorrect = 0; //FOR (Each of the 5 questions) for (int count = 0; count < NUM_QUESTIONS; count++) { //Generate two random singal digit numbers num1 = gen.nextInt(RANGE); num2 = gen.nextInt(RANGE); //Display the equation and input user answer System.out.print("\n\n\n\n\t\t\t\t\t\t\t\t" + num1 + " + " + num2 + " = "); answer = Keyboard.readInt(); //IF (answer is correct) if (answer == num1 + num2) { // Display Correct System.out.println ( " CORRECT " ); //Add 1 to number correct numCorrect++; } // ELSE Display answer is Incorrect else { System.out.println ( " INCORRECT " ); } //Pause the Screen myLib.pause(); //Clear the screen myLib.clrscr(); } // calculate the test score average testScore = ( (float) numCorrect / NUM_QUESTIONS) * 100; //Output the results System.out.print("\n\n RESULTS OF THE TEST \n\n" + " " + " " + " %" + testScore ); System.out.print("\n\n "); //Pause the Screen myLib.pause(); //Clear the screen myLib.clrscr(); //Display test menu and input user choice System.out.print("\n\n Simple Math Tests Made Easy\n\n" + " 1. Take a Test\n" + " 2. Quit\n\n" + " Enter Choice: "); userSelection = Keyboard.readInt(); } } //end main method } //end MathTest
The pseudocode I wrote for the alternate way is
/************************************************** **********************
*BEGIN Create Test
* Set num correct to 0
* FOR (Each question to generate)
* create single digit random number
* create second single digit random number
* display equation and prompt user for answer
* IF (user's answer is correct)
* display "correct" message
* add 1 num correct
* ELSE
* display "incorrect message
* END IF
* END FOR
* Calculate test score
* Return test score
*END Create Test
************************************************** ***********************/
/************************************************** ******
*
* BEGIN Display Menu
* Display user menu
* prompt user for selection
* return user selection
* END Display Menu
*
************************************************** *******/
/************************************************** **********************
*
*BEGIN Main
* call menu method to return user's choice menuInput for user
* WHILE menuInput is not QUIT
* Set number correct to 0
* Call method to create test and return test score
* Clear screen
* Display test score
* call menu method to return user's choice menuInput for user
* END IF
*END Main
************************************************** ************************/
if anyone can show me how to code that or break apart my top down style I would be greatful. Eagerly waiting response