Answer:
// Scanner class is imported to allow program receive user input
import java.util.Scanner;
// class is defined
public class PlayerRoster {
// main method that begin program execution
public static void main(String[] args) {
// Scanner object scan is defined
Scanner scan = new Scanner(System.in);
// multi-dimensional array to hold the jersey number and rating
int[][] players = new int[5][2];
// boolean flag to keep program alive
boolean keepAlive = true;
// the user input is declared as input of type char
char input;
// for loop that receive 5 player jersey number and ratings
// it assigns the received input to the already initialized array
for (int i = 0; i < 5; i++) {
System.out.println("Enter player " + (i+1) + "'s jersey number: ");
players[i][0] = scan.nextInt();
System.out.println("Enter player " + (i+1) + "'s rating: ");
players[i][1] = scan.nextInt();
System.out.println();
}
// a blank line is printed
System.out.println();
// a method is called to display players array
outputRoster(players, 0);
// while the flag is true
// display the Menu by calling the outputMenu method
while (keepAlive) {
outputMenu();
// user input is assigned to input
input = scan.next().charAt(0);
// if user input is 'q' then program will quit
if (input == 'q') {
keepAlive = false;
break;
}
// else if input is o, then outputRoaster is called to display players
else if (input == 'o') {
outputRoster(players, 0);
}
// else if input is 'u', then user is allowed to edit a player rating
else if (input == 'u') {
System.out.println("Enter a jersey number: ");
int jerseyNum = scan.nextInt();
System.out.println("Enter a new rating for the player: ");
int newRating = scan.nextInt();
for (int l = 0; l < 5; l++) {
if (players[l][0] == jerseyNum) {
players[l][1] = newRating;
}
}
}
// else if input is 'a', user is allowed to add a new rating
else if (input == 'a') {
System.out.println("Enter a rating: ");
int rating = scan.nextInt();
outputRoster(players, rating);
}
// else if input is 'r', user is allowed to replace a player
else if (input == 'r') {
System.out.println("Enter a jersey number: ");
int jerseyNum = scan.nextInt();
boolean exists = true;
for (int l = 0; l < 5; l++) {
if (players[l][0] == jerseyNum) {
System.out.println("Enter a new jersey number: ");
players[l][0] = scan.nextInt();
System.out.println("Enter a rating for the new player: ");
players[l][1] = scan.nextInt();
}
}
}
}
return;
}
// this method take two parameters, players and min
// it then returns player with ratings greater than min
public static void outputRoster(int[][] players, int min) {
System.out.println(((min>0) ? ("ABOVE " + min) : ("ROSTER")));
int item = 1;
for (int[] player : players) {
if (player[1] > min) {
System.out.println("Player " + item + " -- Jersey number: " + player[0] + ", Rating: " + player[1]);
}
item++;
}
System.out.println();
}
// outputMenu method to display the program menu
public static void outputMenu() {
System.out.println("MENU");
System.out.println("u - Update player rating");
System.out.println("a - Output players above a rating");
System.out.println("r - Replace player");
System.out.println("o - Output roster");
System.out.println("q - Quit\n");
System.out.println("Choose an option: ");
}
}
Explanation:
The program is written in Java and it is well commented.