\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
//      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
//         E. if 90 > score >= 80
//         F. if 80 > score >= 70
//         G. if 70 > score >= 60
//         H. if score < 60
//         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): " );

// 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): " );
}

// 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';