Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

java This program will store roster and rating information for a soccer team. Co

ID: 3904726 • Letter: J

Question

java This program will store roster and rating information for a soccer team. Coaches rate players during tryouts to ensure a balanced team. (1) Prompt the user to input five pairs of numbers: A player's jersey number (0 - 99) and the player's rating (1 - 9). Store the jersey numbers in one int array and the ratings in another int array. Output these arrays (i.e., output the roster). (3 pts) Ex: Enter player 1's jersey number: 84 Enter player 1's rating: 7 Enter player 2's jersey number: 23 Enter player 2's rating: 4 Enter player 3's jersey number: 4 Enter player 3's rating: 5 Enter player 4's jersey number: 30 Enter player 4's rating: 2 Enter player 5's jersey number: 66 Enter player 5's rating: 9 ROSTER Player 1 -- Jersey number: 84, Rating: 7 Player 2 -- Jersey number: 23, Rating: 4 ... (2) Implement a menu of options for a user to modify the roster. Each option is represented by a single character. The program initially outputs the menu, and outputs the menu after a user chooses an option. The program ends when the user chooses the option to Quit. For this step, the other options do nothing. (2 pt) Ex: MENU u - Update player rating a - Output players above a rating r - Replace player o - Output roster q - Quit Choose an option: (3) Implement the "Output roster" menu option. (1 pt) Ex: ROSTER Player 1 -- Jersey number: 84, Rating: 7 Player 2 -- Jersey number: 23, Rating: 4 ... (4) Implement the "Update player rating" menu option. Prompt the user for a player's jersey number. Prompt again for a new rating for the player, and then change that player's rating. (1 pt) Ex: Enter a jersey number: 23 Enter a new rating for player: 6 ... (5) Implement the "Output players above a rating" menu option. Prompt the user for a rating. Print the jersey number and rating for all players with ratings above the entered value. (2 pts) Ex: Enter a rating: 5 ABOVE 5 Player 1 -- Jersey number: 84, Rating: 7 ... (6) Implement the "Replace player" menu option. Prompt the user for the jersey number of the player to replace. If the player is in the roster, then prompt again for a new jersey number and rating. Update the replaced player's jersey number and rating. (2 pts) Ex: Enter a jersey number: 4 Enter a new jersey number: 12 Enter a rating for the new player: 8

Explanation / Answer

Below is your code.Please do rate this answer positive, If i was able to help you. Let me know if you have any issues in comments

public class PlayerRoster {

// Initialize variables;

final int NUM_PLAYERS = 5; // Total Number of players

int[] jerseyNumbers = new int[NUM_PLAYERS]; // Collection of Jersey Numbers

int[] playerRatings = new int[NUM_PLAYERS]; // Collection of player Ratings

int jerseyNumber = -1;

int playerRating = 0;

int playerNumber = 0;

String userInput = "";

int i = 0;

int ratingsInquiry = 0;

boolean userActive = true;

Scanner scnr = new Scanner(System.in);

public static void main(String[] args) {

PlayerRoster Roster = new PlayerRoster();

// Stage1

Roster.getRosterInput();

Roster.showRoster();

// Stage2

Roster.getRosterInput();

Roster.showRoster();

// Stage3

Roster.getRosterInput();

Roster.showRoster();

Roster.printMenu();

Roster.getMenuResponse();

Roster.handleMenuResponse();

// Stage4

Roster.getRosterInput();

Roster.showRoster();

Roster.printMenu();

Roster.getMenuResponse();

Roster.handleMenuResponse();

}

// COLLECT INITIAL DATA:

public void getRosterInput() {

i = 0;

playerNumber = i + 1;

while (i < NUM_PLAYERS) {

System.out.print("Enter player " + playerNumber + "'s jersey number: ");

jerseyNumbers[i] = getPlayerJerseyNumber();

System.out.print("Enter player " + playerNumber + "'s rating: ");

playerRatings[i] = getPlayerRating();

// end loop and regroup!

i++;

playerNumber++;

jerseyNumber = -1;

playerRating = 0;

System.out.println("");

}

return;

}

// PRIMARY MENU LOOP:

public void printMenu() {

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 ");

System.out.println("Choose an option:");

}

public void getMenuResponse() {

// keep prompting while answer isn't valid:

while (!userInput.equals("u") && !userInput.equals("a") && !userInput.equals("r") && !userInput.equals("o")

&& !userInput.equals("q")) {

userInput = scnr.next();

}

}

public void handleMenuResponse() {

switch (userInput) {

case "u":

userInput = "";

updatePlayerRating();

break;

case "a":

userInput = "";

outputPlayersAboveARating();

break;

case "r":

userInput = "";

replacePlayer();

break;

case "o":

userInput = "";

showRoster();

break;

case "q":

userInput = "";

userActive = false;

break;

}

}

// HELPER FUNCTIONS:

public int getPlayerJerseyNumber() {

// TODO: Requirements did not specify jersey #'s need be unique, get

// user feedback.

// keep prompting if number is out of range:

while (jerseyNumber < 0 | jerseyNumber > 99) {

// sanitize input:

while (!scnr.hasNextInt()) {

System.out.print("Please enter a number between 0-99 ");

scnr.next();

}

jerseyNumber = scnr.nextInt();

// System.out.println("Please enter a number between 0-99");

}

return jerseyNumber;

}

public int getPlayerRating() {

playerRating = 0;

// keep prompting if number is out of range:

while (playerRating < 1 | playerRating > 9) {

// sanitize input:

while (!scnr.hasNextInt()) {

System.out.print("Please enter a number between 1-9 ");

scnr.next();

}

playerRating = scnr.nextInt();

// System.out.println("Please enter a number between 1-9");

}

return playerRating;

}

public void clearScanner() {

while (scnr.hasNext()) {

scnr.next();

}

}

public void updatePlayerRating() {

jerseyNumber = -1;

playerRating = -0;

boolean noMatch = true;

// TODO: clarify with customer, do jerseys need to be unique? Assuming

// yes for now.

System.out.print("Enter a jersey number:");

jerseyNumber = getPlayerJerseyNumber();

for (i = 0; i < NUM_PLAYERS; i++) {

if (jerseyNumber == jerseyNumbers[i]) {

System.out.print("Enter a new rating for players:");

playerRatings[i] = getPlayerRating();

System.out.println("Player rating: " + playerRating + " updated for jersey number:" + jerseyNumber);

noMatch = false;

break;

}

}

if (noMatch) {

System.out.println("Jersey " + jerseyNumber + " not found, try using Output roster to verify");

}

}

public void outputPlayersAboveARating() {

System.out.println("Enter a rating:");

ratingsInquiry = getPlayerRating();

System.out.println("ABOVE " + ratingsInquiry);

for (i = 0; i < NUM_PLAYERS; i++) {

if (ratingsInquiry <= playerRatings[i]) {

// System.out.println("Player "+(i+1)+" -- Jersey number:

// "+jerseyNumbers[i]", Rating: "+playerRatings[i]);

printPlayerInfo(i);

}

}

}

public void replacePlayer() {

boolean noMatch = true;

jerseyNumber = -1;

playerRating = -0;

int jnumber = -1;

System.out.print("Enter a jersey number:");

jnumber = getPlayerJerseyNumber();

for (i = 0; i < NUM_PLAYERS; i++) {

if (jnumber == jerseyNumbers[i]) {

jerseyNumber = -1;

System.out.print("Enter a new jersey number:");

jerseyNumbers[i] = getPlayerJerseyNumber();

System.out.print("Enter a rating for the new player: ");

playerRatings[i] = getPlayerRating();

noMatch = false;

break;

}

}

if (noMatch) {

System.out.println("No matching jersey number, try using Output roster to verify.");

}

}

public void showRoster() {

// Do the Roster Output

System.out.println("ROSTER");

for (i = 0; i < NUM_PLAYERS; i++) {

// System.out.println("Player "+(i+1)+" -- Jersey number:

// "+jerseyNumbers[i]+", Rating: "+playerRatings[i]);

printPlayerInfo(i);

}

return;

}

public void printPlayerInfo(int indexID) {

System.out.println("Player " + (indexID + 1) + " -- Jersey number: " + jerseyNumbers[indexID] + ", Rating: "

+ playerRatings[indexID]);

}

}