\Java
TestPlan1.java
//******************************************************************** // // TestPlan1.java // Program description: A program for learning about Test Plans // //******************************************************************** // // Program Description: // -------------------- // Converts from number score to a letter grade. // // Input Requirements: // ------------------- // 1. score: an integer in the range 0 to 100 (inclusive) // 2. user reply: a String, "yes" or "no" // // Output Requirements: // -------------------- // Prompt messages: // 1. prompt for score // 2. prompt if user wants to convert another score // Output results: // "Letter grade is X", where X = A, B, C, D, or F // // Program Preconditions: // ---------------------- // None. // (This means that this program will produce the correct outputs // regardless of what the inputs are. There are no restrictions // about possible improper inputs. See if you "break this program" // by inputting an invalid input. Bet you can't.) // // Problem Solution Discussion: // ---------------------------- // This program prompts the user to enter an integer score in the range 0-100 // (inclusive). It then uses a series of selection statements to determine // the equivalent letter grade: >= 90 -> A, 80-89 -> B, 70-79 -> C, 60-69 -> D, // and < 60 -> F, and prints of the letter grade. // // Two loops are used. The main loop continues while the user answers the // question "Do you want to convert another score" with the answer "yes". // A second loop is continued as long as the user has entered an invalid score // (outside the range 0-100). // // // Problem Solution Design Steps: // ------------------------------ // // Data structures: // ---------------- // // score: integer // letterGrade: character // convertAnother: String // // Algorithm: // ---------- // // 1. Initialize convertAnother string to "yes" // 2. Loop while convertAnother equals "yes" // A. Prompt user to enter a score // B. Input value: score // C. Loop while score is invalid (not in 0-100 range) // 1. Print error message with score value // 2. Prompt user to enter a score // 3. Input value: score // D. if score >= 90 // Set letterGrade = A // E. if 90 > score >= 80 // Set letterGrade = B // F. if 80 > score >= 70 // Set letterGrade = C // G. if 70 > score >= 60 // Set letterGrade = D // H. if score < 60 // Set letterGrade = F // I. Print letterGrade // J. Prompt user for continue. Enter "yes" or "no" // K. Input: convertAnother // // Test Plan // --------- // // // Test Case Description Input Data Expected Results // --------------------- ---------- ---------------- // 1. score >= 90 90 Prints: Letter grade is A // 2. 90 > score >= 80 85 Prints: Letter grade is B // 3. 70 > score >= 60 60 Prints: Letter grade is D // 4. score < 60 59 Prints: Letter grade is F // // This Test Plan should include a test path for the result of "C" //******************************************************************** import cs1.Keyboard; public class TestPlan1 { //----------------------------------------------------------------- // Comment //----------------------------------------------------------------- public static void main (String[] args) { int score; // test score char letterGrade; // score converted to letter String convertAnother = new String("yes"); // user reply string // Loop until user enter answer that is not "yes" while ( convertAnother.equals("yes") ) { // Prompt user and read the input System.out.print( "Enter a score (integer between 0 and 100): " ); score = Keyboard.readInt(); // Check for valid input data. Loop and repeat prompt and input until valid. while ( score < 0 || score > 100 ) { System.out.println( score + " is an invalid value." ); System.out.print( "Enter a score (integer between 0 and 100): " ); score = Keyboard.readInt(); } // Perform tests to determine letter grade /* 1 */ if ( score >= 90 ) /* 2 */ letterGrade = 'A'; /* 3 */ else if ( score >= 80 ) /* 4 */ letterGrade = 'B'; /* 5 */ else if ( score >= 70 ) /* 6 */ letterGrade = 'B'; /* 7 */ else if ( score >= 60 )//equal sign added to run properly /* 8 */ letterGrade = 'D'; /* 9 */ else /* 10 */ letterGrade = 'F'; // Print letter grade System.out.println( "Letter grade is " + letterGrade + "." ); // Prompt for continue System.out.print( "Do you wish to convert another score? " ); convertAnother = Keyboard.readString(); } } // end main } // end class TestPlan1