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]);
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.