Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Draw a structure chart for the program below : (java) public class HighScore{ // method readGameScore return a GameScore object public static GameScore readGameScore(Scanner sc){

Draw a structure chart for the program below : (java)

public class HighScore{

// method readGameScore return a GameScore object public static GameScore readGameScore(Scanner sc){ GameScore game; // game score object String user; // this is user of game int id; // this is game id of the game int score; // this is the game score

System.out.print("Enter game user: "); user = sc.next(); System.out.print("Enter game ID: "); id = sc.nextInt();

do{ System.out.print("Enter game score: "); score = sc.nextInt(); if(score < 0){ System.out.println("Please enter a valid value. "); } } while(score < 0);

game = new GameScore(user, score, id); return game; }

// read type name public static int addGameScore(Scanner sc, GameScore[] gs, int numCount){ if(numCount < gs.length){ gs[numCount] = readGameScore(sc); numCount++; } else { System.out.println("Score is full."); } return numCount; }

// the average score for player name public static double averageUserScore(GameScore[] gs, int numCount, String name){ double score = 0; // the sum of name's scores int playerScores = 0; // number of game scores for name

for(int i = 0; i < numCount; i++){ score += gs[i].score(); playerScores++; }

if(playerScores > 0){ return score / playerScores; } else { return score; } }

// highest score public static double highestScore(GameScore[] gs, int numCount, String name){

int score = 0; for(int i = 0; i < numCount; i++){ if(gs[i].score()>score){ score = gs[i].score(); }

} return score; }

// display all objects public static void displaysAll(GameScore[] gs, int numCount){

for(int i = 0; i < numCount; i++){ System.out.println(gs[i]); } System.out.println(); }

// bulkAdd Method public static void bulkAdd(Scanner sc, GameScore[] gs, int numCount){

for(int i = 0; i < numCount; i++){ addGameScore(sc, gs, i); } }

public static void main(String[] args){ Scanner sc = new Scanner(System.in);

final int CAPACITY = 50; // the maximum number of allowes character GameScore[] gs = new GameScore[CAPACITY]; int count = 0; //count how many character the user has typed in int choice; /umber of choices being displayed to users String name; // Player name

System.out.println("Contact Manager"); System.out.println("Enter initial number of entries(< " + CAPACITY + "):");

count = sc.nextInt(); count = Math.min(count, CAPACITY); bulkAdd(sc, gs, count);

//Implementation of the menu do { System.out.println("1. Add another score"); System.out.println("2. Display all scores, one per line"); System.out.println("3. Display average score for a player"); System.out.println("4. Display highest score for a player"); System.out.println("5. Quit");

System.out.println("Enter option: "); choice = sc.nextInt();

switch(choice){ case 1: count = addGameScore(sc, gs, count); System.out.println(); break; case 2: displaysAll(gs, count); System.out.println(); break; case 3: System.out.println("Please enter name: "); name = sc.next(); System.out.println(name + " Average score: " + averageUserScore(gs, count, name) + "."); System.out.println(); break; case 4: System.out.println(" Please enter name: "); name = sc.next(); System.out.println(name + " Highest score: " + highestScore(gs, count, name) + "."); System.out.println(); break; } } while(choice != 5); }

}

///////////////////////////

public record GameScore(String user, int score, int id) {

public String toString() { String output = " game " + id + " : " + user + " scored " + score;

if (score > 999999) { output += " God Gamer!"; } else if(score < 100) { output += " Newb!"; }

return output; }

}

Structure charts provide an effective way of communicating the methods within a program. To draw a structure chart you would do the following (an example is shown below)

  1. Draw a box for the program's main() method at the top of the page
    • Write the text main within the box; this now represents the main method
  2. Draw a box for each of the methods that main() calls. Position these below the box for main so that you can easily draw arrows from the bottom of main to the methods it calls
    • Write the name of each method within the box
    • Draw an arrow from main to the method's box
    • Next to the line, draw smaller arrows to indicate the data that will be passed to, or returned from, the method.
image

Here is an example for a fictitious program, where you may assume values with an initially upper case name represent a custom data type: PlayerScores startPlaying PlayerScores Board playGame game over Player, Board makeAMove Player numPlayers main Player[], current PlayerScores displaySummary swapPlayer Here is a skeleton of the code that the structure chart above is describing (so you can see the relationships between method headers and method calls and the structure chart). You do not need to understand how this code might work if it was more complete; it's just an illustration of how a program's structure can be represented using a structure chart.

Step by Step Solution

3.53 Rating (163 Votes )

There are 3 Steps involved in it

Step: 1

heres a structure chart for the program main promptForInitialEntries scanner capacity count bulkAdd scanner gs count readGameScore scanner gameScore addGameScore scanner gs i newCount i1 dowhile choic... blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Java How To Program Late Objects Version

Authors: Paul Deitel, Deitel & Associates

8th Edition

0136123716, 9780136123712

More Books

Students also viewed these Programming questions