Question: Needs to be done in Java. Thanks! Overview There are three major components to this project: 1. Implementing one of the most fundamental data structures
Needs to be done in Java. Thanks!






Overview There are three major components to this project: 1. Implementing one of the most fundamental data structures in computer science (the dynamic array list). 2. Using this data structure to implement a larger program. 3. Practicing many fundamental skills learned in prior programming courses including generic classes. The end product of this project will be a score board program that can display multiple game scores of multiple players. Using a generic dynamic array as our basic data structure, we will be able to combine the score records from multiple files, report detailed statistics of a selected player or of a particular game. We will use the dynamic array list in more than one of the classes we implement. We will explain the details below with examples. In this project, we will associate with each player a record (PlayerRec. java), including a name, a count of games participated, a total score, and a list of scores, one per game. We will also implement basic maintenance of the record to allow insertions of new scores, updates of existing scores, and locating the top scores of a player, etc. Every row in the table below shows one example player record. Note: they do not belong to the same score board. Assumptions: - All scores are non-negative. A score board essentially contains a collection of player records. One example is given below. Notes: - The table represents one score board while each row shows information from one player record. Assumptions: - Each player in a score board has a unique name. - All players of a score board must have the same number of games, which is always a positive integer. In our implementation of score board (ScoreBoard.java), we will support a group of operations to append or prepend new records, to update / remove players' records, and to display details of a player or of a game as needed. We provide a simple textual user interface (ScoreBoardUI.java) with a menu system to allow convenient interaction with the score board. Multiple sample runs are included in the Appendix of this document. Each sample run has a session of score board operations to help you to understand the expected behavior better. Implementation/Classes This project will be built using a number of classes representing the generic dynamic array, the player record, and the score board as we described in the previous section. Here we provide a description of these classes. Template files are provided for each class in the project package and these contain further comments and additional details. You must follow the instructions included in those files. - ThreeTenDynArray (ThreeTenDynArray.java): The implementation of a dynamic array used by other classes. You will implement this class as a generic class to practice that concept. - PlayerRec (PlayerRec.java): The class representing a player record. Each record has a name, a collection of scores, a count of scores, and a total score. - ScoreBoard (ScoreBoard.java): The implementation of a score board. It stores a collection of player records. The class supports multiple operations for maintenance, including appending/prepending new records, updating a record, removing a record, and displaying details of one player or one game. - ScoreBoardUI (ScoreBoardUI.java): A textual user interface class with a menu system to display and maintain the score board. This class is provided to you and you should NOT change the file. Sample Run 1 Initialize a scoreboard with one file and explore menu options. java ScoreBoardUI input/in1.txt Please select from the following options: 1 - Show current score board 2 - Show details of a player 3 - Show details of a game 4 - Combine/update records from file 5 - Remove a player 6 - Change one score of one player 7 - Show top total score \& top player(s) 8 - Exit Your choice (1-8): \%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\% Game Count: 5 Player Count: 3 \%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\% [0]George, 5,18,[1,5,4,3,5] [1] Mason, 5, 16, [2,3,5,5,1] [2]George Mason, 5,16,[1,5,4,2,4] \%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\%\% Please select from the following options: 1 - Show current score board 2 - Show details of a player 3 - Show details of a game 4 - Combine/update records from file 5 - Remove a player 6 - Change one score of one player 7 - Show top total score \& top player(s) 8 - Exit \begin{tabular}{l|l} Your choice (18):2 & Display the details of one \\ Please enter the name of player to show: Mason & playerspecifiedbyname.play \end{tabular} Player Name: Mason Game Count: 5, Total Score: 16 Scores: [2, 3, 5, 5, 1] Top games: games that this player has the highest score. Top Games: [2,3] Mason has the highest score (5) in game 2 and game 3. Please select from the following options: 1 - Show current score board 2 - Show details of a player 3 - Show details of a game 4 - Combine/update records from file 5 - Remove a player 6 - Change one score of one player ] Please select from the following options: 1 - Show current score board 2 - Show details of a player 3 - Show details of a game 4 - Combine/update records from file 5 - Remove a player 6 - Change one score of one player 7 - Show top total score \& top player(s) 8 - Exit Your choice (18):7 Top Total Score: 18 Top Player(s): [Mason] Updated top player list. Please select from the following options: 1 - Show current score board 2 - Show details of a player 3 - Show details of a game 4 - Combine/update records from file 5 - Remove a player 6 - Change one score of one player 7 - Show top total score \& top player(s) 8 - Exit Your choice (18):8 Good-bye
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
