Starting from:

$35

Project: Softball Players – Part 2 

Project: Softball Players – Part 2 
Deliverables
Your project files should be submitted to Web-CAT by the due date and time specified. Note that
there is also an optional Skeleton Code assignment which will indicate level of coverage your tests
have achieved (there is no late penalty since the skeleton code assignment is ungraded for this
project). The files you submit to skeleton code assignment may be incomplete in the sense that
method bodies have at least a return statement if applicable or they may be essentially completed
files. In order to avoid a late penalty for the project, you must submit your completed code files to
Web-CAT no later than 11:59 PM on the due date for the completed code assignment. If you are
unable to submit via Web-CAT, you should e-mail your project Java files in a zip file to your TA
before the deadline. The grades for the Completed Code submission will be determined by the tests
that you pass or fail in your test files and by the level of coverage attained in your source files as well
as usual correctness tests in Web-CAT.
Files to submit to Web-CAT:
 From Project 9
• SoftballPlayer.java
• Outfielder.java, OutfielderTest.java
• Infielder.java, InfielderTest.java
• Pitcher.java, PitcherTest.java
• ReliefPitcher.java, ReliefPitcherTest.java
 New in Project 10
• NameComparator.java, NameComparatorTest.java
• RatingComparator.java, RatingComparatorTest.java
• SoftballTeam.java, SoftballTeamTest.java
• SoftballPlayersPart2.java, SoftballPlayersPart2Test.java
Recommendations
You should create new folder for Project 10 and copy your relevant Project 9 source and test files to
it. You should create a jGRASP project and add the new source and test files as they are created.
Specifications – Use arrays in this project; ArrayLists are not allowed!
Overview: This project is Part 2 of three that will involve the rating and reporting for softball
players. In Part 1, you developed Java classes that represent categories of softball players including
outfielders, infielders, pitchers and relief pitchers. In Part 2, you will implement four additional
classes: (1) NameComparator that implements the Comparator interface, (2) RatingComparator that
implements the Comparator interface, (3) SoftballTeam that represents a team of softball players and
includes several specialized methods, and (4) SoftballPlayersPart2 which contains the main method
for the program. Note that the main method in SoftballPlayersPart2 should create a SoftballTeam
object and then call the readPlayerFile on the SoftballTeam object, which will add softball players to
the team as the data is read in from a file. You can use SoftballPlayersPart2 in conjunction with
interactions by running the program in a jGRASP canvas (or debugger with a breakpoint) and single
stepping until the variables of interest are created. You can then enter interactions in the usual way.
Updated: Mon 4/15/2019 3:08 p.m.
See highlighted text on pages 3, 4, 8, 11, and 14.
Project: Softball Players – Part 2 Page 2 of 15
 Page 2 of 15
In addition to the source files, you will create a JUnit test file for each class and write one or more test
methods to ensure the classes and methods meet the specifications. You should create a jGRASP
project upfront and then add the source and test files as they are created. All of your files should be
in a single folder.
• Outfielder, Infielder, Pitcher, and ReliefPitcher
Requirements and Design: No changes from the specifications in Part 1.
• SoftballPlayer.java
Requirements and Design: In addition to the specifications in Part 1, the SoftballPlayer class
should implement the Comparable interface for SoftballPlayer, which means the following
method must be implemented in SoftballPlayer.
o compareTo: Takes a SoftballPlayer as a parameter and returns an int indicating the
results of comparing the two softball players based on their respective numbers.
• SoftballTeam.java
Requirements: The SoftballTeam class provides methods for reading in the data file and
generating reports.
Design: The SoftballTeam class has fields, a constructor, and methods as outlined below.
(1) Fields:
instance variables (private)
(a) teamName is the name of the team.
(b) roster which is an array that can hold up to 24 SoftballPlayer objects.
(c) playerCount is a field which tracks the number of players in the roster array.
(d) excludedRecords, which is an array that can hold up to 30 String elements representing
records that are read from the data file but not processed. For example, if the file contains 28
records, at most 24 can be added to the roster array of SoftballPlayer objects, so four records
would end up in the excludedRecords array. If the file contains 60 records (24 players and 30
excluded records), the last six would be ignored (i.e., not added to the excludedRecords array).
(e) excludedCount is a field which tracks the number of records that have been added to the
excludedRecords array.
(f) ignoredCount is a field which tracks the number of records that have been ignored because
the playerCount and excludedCount have reached their maximums.
class variable (private static)
(g) teamCount is a private static field which tracts the number of SoftballTeam objects created.
constants (public static final)
(h) MAX_PLAYERS is public constant (i.e., public static final) of type int set to 24.
(i) MAX_EXCLUDED is public constant (i.e., final static) of type int set to 30.
These are the only fields that this class should have.
Project: Softball Players – Part 2 Page 3 of 15
 Page 3 of 15
(2) Constructor: The constructor has no parameters, initializes the instance fields in
SoftballTeam, and increments the static field teamCount.
(3) Methods: Usually a class provides methods to access and modify each of its instance variables
(i.e., getters and setters) along with any other required methods. The methods for
SoftballTeam are described below.
o getTeamName returns the String representing the teamName.
o setTeamName has no return value, accepts a String, and then assigns it to teamName.
o getRoster returns the SoftballPlayer array representing the roster.
o setRoster has no return value, accepts a SoftballPlayer array, and then assigns it to
roster.
o getPlayerCount returns the current value of playerCount.
o setPlayerCount has no return value, accepts an int, and assigns it to playerCount.
o getExcludedRecords returns the String array representing the excludedRecords.
o setExcludedRecords has no return value, accepts a String array, and then assigns it
to excludedRecords.
o getExcludedCount returns the current value of excludedCount.
o setExcludedCount has no return value, accepts an int, and sets excludedCount to it.
o getIgnoredCount returns the current value of ignoredCount.
o setIgnoredCount has no return value, accepts an int, and sets ignoredCount to it.
o getTeamCount is a static method that returns the current value of teamCount.
o resetTeamCount is a static method that has no return value and sets teamCount to 0.
o readPlayerFile has no return value and accepts the data file name as a String.
Remember to include the throws IOException clause in the method declaration.
This method creates a Scanner object to read in the file and then reads it in line by line.
The first line contains the team name and each of the remaining lines contains the data for
a player. After reading in the team name, the “player” lines should be processed as
follows. A player line is read in, a second scanner is created on the line, and the
individual values for the player are read in. After the values on the line have been read in,
an “appropriate” SoftballPlayer object created. If there is room on the roster, the player
is added to the roster array and the player count is incremented. Any player lines/records
read from the file after the limit of MAX_PLAYERS players has been reached should be
added to the excluded array with appropriate prefix message (Maximum player
count of 24 exceeded for:) and its count should be incremented. If excluded
array is full, the line/record should just be skipped, and the ignored count should be
incremented. The data file is a “comma separated values” file; i.e., if a line contains
multiple values, the values are delimited by commas. So when you set up the scanner for
the player lines, you need to set the delimiter to use a “,” by calling the
Project: Softball Players – Part 2 Page 4 of 15
 Page 4 of 15
useDelimiter(",") method on the Scanner object. Each player line in the file
begins with a category for the softball player (O, I, P, and R are valid categories for
softball players indicating Outfielder, Infielder, Pitcher, and ReliefPitcher respectively.
The second field in the record is the player’s number, followed by the data for the name,
position, specialization factor, and batting average. The last items correspond to the data
needed for the particular category (or subclass) of SoftballPlayer. A record with an
invalid category should be added to the excluded array with appropriate prefix message
(*** invalid category ***) and its count should be incremented. The file
softball_player_data1.csv is available for download from the course web site.
Below are example data records (the first line/record containing the team name is
followed by player lines/records):
Auburn Stars
O,32,Pat Jones,RF,1.0,.375,.950
I,23,Jackie Smith,3B,1.25,.275,.850
P,43,Jo Williams,RHP,2.0,.125,22,4,2.85
R,34,Sammi James,LHP,2.0,.125,5,4,3.85,17
L,23,Gayle Adams,2B,1.25,.225,.875
O, 9,Pat Williams,RF,1.0,.480,.950
o generateReport processes the roster array using the original order from the file to
produce the Team Report which is returned as a String. See the example output below.
o generateReportByNumber sorts the roster array using the natural ordering, and
processes the roster array to produce the Team Report (by Player Number) which is
returned as a String. See the example output below.
o generateReportByName sorts the roster array by name, and processes the roster
array to produce the Team Report (by Name) which is returned as a String. See the
example output below.
o generateReportByRating sorts the roster array by rating, and processes the roster
array to produce the Team Report (by Rating) which is returned as a String. See the
example output below. Use "0.000" as the DecimalFormat pattern for rating.
o generateExcludedRecordsReport processes the excludedRecords array to
produce the Excluded Records Report which is returned as a String. The last line in the
report should indicate how many records read from the file were skipped because the
excludedRecords array was full. See the example output below.
Code and Test: See examples of file reading and sorting (using Arrays.sort) in the class notes.
The natural sorting order for SoftballPlayer objects is determined by the compareTo method from
the Comparable interface. If roster is the variable for the array of SoftballPlayer objects, it can be
sorted with the following statement.
 SoftballPlayer[] bp = Arrays.copyOf(roster, playerCount);
 Arrays.sort(bp);
The sorting order based on name is determined by the NameComparator class which implements
the Comparator interface (described below). It can be sorted with the following statement.
Project: Softball Players – Part 2 Page 5 of 15
 Page 5 of 15
 SoftballPlayer[] bp = Arrays.copyOf(roster, playerCount);
 Arrays.sort(bp, new NameComparator());

• NameComparator.java
Requirements and Design: The NameComparator class implements the Comparator interface
for SoftballPlayer objects. Hence, it implements the following method.
o compare(SoftballPlayer p1, SoftballPlayer p2) that defines the ordering
from lowest to highest based on last name followed by first name. To do this, you will
need to extract the last name and first name from the name field (assume that the first
name is separated from the last name with a space and that there may be other spaces in
the last name; e.g., Gigi de la Hoya). To avoid uppercase and lowercase issues you
should make the extracted String values either all uppercase or all lowercase prior to
comparing them.
Note that the compare method is the only method in the NameComparator class. An instance
of this class will be used as one of the parameters when the Arrays.sort method is used to sort
by “name”. For an example of a class implementing Comparator, see class notes 10B
Comparing Objects.
• RatingComparator .java
Requirements and Design: The RatingComparator class implements the Comparator interface
for SoftballPlayer objects. Hence, it implements the following method.
o compare(SoftballPlayer p1, SoftballPlayer p2)that defines the
ordering from highest to lowest based on the rating of each player.
Note that the compare method is the only method in the RatingComparator class. An instance
of this class will be used as one of the parameters when the Arrays.sort method is used to sort
by “rating”. For an example of a class implementing Comparator, see class notes 10B
Comparing Objects.
• SoftballPlayersPart2.java
Requirements and Design: The SoftballPlayersPart2 class has only a main method as described
below.
o main reads in the file name as the first argument, args[0], of the command line arguments,
creates an instance of SoftballTeam, and then calls the readPlayerFile method in the
SoftballTeam class to read in the data file and generate the five reports as shown in the output
examples beginning on page 7. If no command line argument is provided, the program
should indicate this and end as shown in the first example output on page 7. Example data
files, softball_player_data1.csv and softball_player_data2.csv can be downloaded from the
Lab assignment web page.
Project: Softball Players – Part 2 Page 6 of 15
 Page 6 of 15
Code and Test: In your JUnit test file for the SoftballPlayersPart2 class, you should have at least
two test methods for the main method. One test method should invoke
SoftballPlayersPart2.main(args) where args is an empty String array, and the other test method
should invoke SoftballPlayersPart2.main(args) where args[0] is the String representing the data
file name. Depending on how you implemented the main method, these two test methods should
cover the code in main. In each test method, you should reset teamCount, call your main method,
then assert that getTeamCount()is zero for the test with no file name and one for the test with
softball_player_data1.csv as the file name.
In the first test method, you can invoke main with no command line argument as follows:
// If you are checking for args.length == 0
// in SoftballPlayersPart2, the following should exercise
// the code for true.
String[] args1 = {}; // an empty String[]
SoftballPlayersPart2.main(args1);
Assert.assertEquals("Team count should be 0. ",
 0, SoftballTeam.getTeamCount());
In the second test method, you can invoke main as follows with the file name as the first (and
only) command line argument:
String[] args2 = {"softball_player_data1.csv"};
// element args2[0] is the file name
SoftballPlayersPart2.main(args2);
Assert.assertEquals("Team count should be 1. ",
 1, SoftballTeam.getTeamCount());
If Web-CAT complains that the default constructor for SoftballPlayersPart2 has not
been covered, you should include the following line of code in one of your test methods.
// to exercise the default constructor
SoftballPlayersPart2 app = new SoftballPlayersPart2();
Project: Softball Players – Part 2 Page 7 of 15
 Page 7 of 15
UML Class Diagram
Notes:
1. Player data – Since player numbers are of type String, single digit numbers should have a leading
space which should not be trimmed. For example, see player number 9 in the
softball_player_data1.csv file. This this is important if a String compare is used to
determine order.
2. You should test your program using both data files provided (softball_player_data1.csv,
softball_player_data2.csv, and softball_player_data3.csv).
Example Output when file name is missing as command line argument
MM«M ----jGRASP exec: java SoftballPlayersPart2
MM§MFile name expected as command line argument.
MM§MProgram ending.
MM§M
MM©M ----jGRASP: operation complete.
Example Output for softball_player_data1.csv
MM«M ----jGRASP exec: java SoftballPlayersPart2 softball_player_data1.csv
MM§M
Project: Softball Players – Part 2 Page 8 of 15
 Page 8 of 15
MM§M---------------------------------------
MM§MTeam Report for Auburn Stars
MM§M---------------------------------------
MM§M
MM§M32 Pat Jones (RF) .375
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 3.562
MM§M
MM§M23 Jackie Smith (3B) .275
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 2.922
MM§M
MM§M43 Jo Williams (RHP) 22 wins, 4 losses, 2.85 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: 3.740
MM§M
MM§M34 Sammi James (LHP) 5 wins, 4 losses, 17 saves, 3.85 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 2.474
MM§M
MM§M09 Pat Williams (RF) .480
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 4.560
MM§M
MM§M
MM§M---------------------------------------
MM§MTeam Report for Auburn Stars (by Number)
MM§M---------------------------------------
MM§M09 Pat Williams RF .480
MM§M23 Jackie Smith 3B .275
MM§M32 Pat Jones RF .375
MM§M34 Sammi James LHP 5 wins, 4 losses, 17 saves, 3.85 ERA
MM§M43 Jo Williams RHP 22 wins, 4 losses, 2.85 ERA
MM§M
MM§M---------------------------------------
MM§MTeam Report for Auburn Stars (by Name)
MM§M---------------------------------------
MM§M34 Sammi James LHP 5 wins, 4 losses, 17 saves, 3.85 ERA
MM§M32 Pat Jones RF .375
MM§M23 Jackie Smith 3B .275
MM§M43 Jo Williams RHP 22 wins, 4 losses, 2.85 ERA
MM§M09 Pat Williams RF .480
MM§M
MM§M---------------------------------------
MM§MTeam Report for Auburn Stars (by Rating)
MM§M---------------------------------------
MM§ 4.560 09 Pat Williams RF .480
MM§ 3.740 43 Jo Williams RHP 22 wins, 4 losses, 2.85 ERA
MM§ 3.562 32 Pat Jones RF .375
MM§ 2.922 23 Jackie Smith 3B .275
MM§ 2.474 34 Sammi James LHP 5 wins, 4 losses, 17 saves, 3.85 ERA
MM§M
MM§M---------------------------------------
MM§MExcluded Records Report
MM§M---------------------------------------
MM§M*** invalid category *** L,13,Gayle Adams,2B,1.25,.225,.875
MM§MNumber of ignored records from file: 0
MM§M
MM©M ----jGRASP: operation complete.
Project: Softball Players – Part 2 Page 9 of 15
 Page 9 of 15
Example Output for softball_player_data2.csv
MM«M ----jGRASP exec: java SoftballPlayersPart2 softball_player_data2.csv
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Bigger Team
MM§M---------------------------------------
MM§M
MM§M21 Jodi Doe (RF) .305
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 2.989
MM§M
MM§M11 Tina Dobbs (RF) .350
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 3.395
MM§M
MM§M13 Nina Dobbs (LF) .478
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 4.541
MM§M
MM§M12 Poppi Ledet (LF) .325
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 3.120
MM§M
MM§M14 Sruthi Yalamanchili (CF) .285
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 2.679
MM§M
MM§M15 Kavya Krishnappa (CF) .298
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 2.771
MM§M
MM§M29 Sandy Chintapalli (1B) .265
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 2.915
MM§M
MM§M17 Janie Doe (1B) .350
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 4.244
MM§M
MM§M18 Buddy Bell (2B) .325
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.494
MM§M
MM§M19 Gigi de la Hoya (2B) .278
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.301
MM§M
MM§M20 Daisy Doalot (3B) .285
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.349
MM§M
MM§M10 Mikie Mahtook (3B) .298
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.464
MM§M
MM§M22 Matty Ott (SS) .298
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.278
MM§M
MM§M23 Leah Coleman (SS) .350
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 4.244
MM§M
MM§M25 Erin Noland (RHP) 5 wins, 11 losses, 4.3 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: -.906
MM§M
MM§M26 Jackie Malkovic (RHP) 6 wins, 10 losses, 5.4 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: -.500
Project: Softball Players
– Part 2 Page 10 of 15
 Page 10 of 15
MM§M
MM§M27 Lois Gibson (RHP) 8 wins, 7 losses, 3.5 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: .178
MM§M
MM§M28 Gina Malika (LHP) 7 wins, 8 losses, 1.6 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating:
-.308
MM§M
MM§M16 Tika Brando (LHP) 9 wins, 7 losses, 1.7 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: .593
MM§M
MM§M30 Belinda Striker (LHP) 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.333
MM§M
MM§M31 Lilly Dean (RHP) 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 2.069
MM§M
MM§M32 Briana Wilson (RHP) 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.111
MM§M
MM§M33 Janine Mason (RHP) 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.011
MM§M
MM§M34 Green Lantern (LHP) 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.125
MM§M
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Bigger Team (by Number)
MM§M---------------------------------------
MM§M10 Mikie Mahtook 3B .298
MM§M11 Tina Dobbs RF .350
MM§M12 Poppi Ledet LF .325
MM§M13 Nina Dobbs LF .478
MM§M14 Sruthi Yalamanchili CF .285
MM§M15 Kavya Krishnappa CF .298
MM§M16 Tika Brando LHP 9 wins, 7 losses, 1.7 ERA
MM§M17 Janie Doe 1B .350
MM§M18 Buddy Bell 2B .325
MM§M19 Gigi de la Hoya 2B .278
MM§M20 Daisy Doalot 3B .285
MM§M21 Jodi Doe RF .305
MM§M22 Matty Ott SS .298
MM§M23 Leah Coleman SS .350
MM§M25 Erin Noland RHP 5 wins, 11 losses, 4.3 ERA
MM§M26 Jackie Malkovic RHP 6 wins, 10 losses, 5.4 ERA
MM§M27 Lois Gibson RHP 8 wins, 7 losses, 3.5 ERA
MM§M28 Gina Malika LHP 7 wins, 8 losses, 1.6 ERA
MM§M29 Sandy Chintapalli 1B .265
MM§M30 Belinda Striker LHP 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§M31 Lilly Dean RHP 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§M32 Briana Wilson RHP 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§M33 Janine Mason RHP 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§M34 Green Lantern LHP 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Bigger Team (by Name)
MM§M---------------------------------------
MM§M18 Buddy Bell 2B .325
MM§M16 Tika Brando LHP 9 wins, 7 losses, 1.7 ERA
MM§M29 Sandy Chintapalli 1B .265
MM§M23 Leah Coleman SS .350
Project: Softball Players – Part 2 Page 11 of 15
 Page 11 of 15
MM§M19 Gigi de la Hoya 2B .278
MM§M31 Lilly Dean RHP 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§M20 Daisy Doalot 3B .285
MM§M13 Nina Dobbs LF .478
MM§M11 Tina Dobbs RF .350
MM§M17 Janie Doe 1B .350
MM§M21 Jodi Doe RF .305
MM§M27 Lois Gibson RHP 8 wins, 7 losses, 3.5 ERA
MM§M15 Kavya Krishnappa CF .298
MM§M34 Green Lantern LHP 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§M12 Poppi Ledet LF .325
MM§M10 Mikie Mahtook 3B .298
MM§M28 Gina Malika LHP 7 wins, 8 losses, 1.6 ERA
MM§M26 Jackie Malkovic RHP 6 wins, 10 losses, 5.4 ERA
MM§M33 Janine Mason RHP 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§M25 Erin Noland RHP 5 wins, 11 losses, 4.3 ERA
MM§M22 Matty Ott SS .298
MM§M30 Belinda Striker LHP 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§M32 Briana Wilson RHP 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§M14 Sruthi Yalamanchili CF .285
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Bigger Team (by Rating)
MM§M---------------------------------------
MM§ 4.541 13 Nina Dobbs LF .478
MM§ 4.244 17 Janie Doe 1B .350
MM§ 4.244 23 Leah Coleman SS .350
MM§ 3.494 18 Buddy Bell 2B .325
MM§ 3.464 10 Mikie Mahtook 3B .298
MM§ 3.395 11 Tina Dobbs RF .350
MM§ 3.349 20 Daisy Doalot 3B .285
MM§ 3.333 30 Belinda Striker LHP 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§ 3.301 19 Gigi de la Hoya 2B .278
MM§ 3.278 22 Matty Ott SS .298
MM§ 3.125 34 Green Lantern LHP 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§ 3.120 12 Poppi Ledet LF .325
MM§ 3.111 32 Briana Wilson RHP 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§ 3.011 33 Janine Mason RHP 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§ 2.989 21 Jodi Doe RF .305
MM§ 2.915 29 Sandy Chintapalli 1B .265
MM§ 2.771 15 Kavya Krishnappa CF .298
MM§ 2.679 14 Sruthi Yalamanchili CF .285
MM§ 2.069 31 Lilly Dean RHP 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§ 0.593 16 Tika Brando LHP 9 wins, 7 losses, 1.7 ERA
MM§ 0.178 27 Lois Gibson RHP 8 wins, 7 losses, 3.5 ERA
MM§ -0.308 28 Gina Malika LHP 7 wins, 8 losses, 1.6 ERA
MM§ -0.500 26 Jackie Malkovic RHP 6 wins, 10 losses, 5.4 ERA
MM§ -0.906 25 Erin Noland RHP 5 wins, 11 losses, 4.3 ERA
MM§M
MM§M---------------------------------------
MM§MExcluded Records Report
MM§M---------------------------------------
MM§M*** invalid category *** H,24,Nola Austin,LHP,2.0,0.225,4,12,1.2
MM§MMaximum player count of 24 exceeded for: R,35,Bruce Wayne,LHP,2.0,0.175,15,1,2.3,4
MM§MMaximum player count of 24 exceeded for: R,36,Billie Gates,LHP,2.0,0.325,16,0,2.4,2
MM§MNumber of ignored records from file: 0
MM§M
MM©M ----jGRASP: operation complete.
Project: Softball Players – Part 2 Page 12 of 15
 Page 12 of 15
Example Output for softball_player_data3.large_team_file.csv
MM«M ----jGRASP exec: java SoftballPlayersPart2 softball_player_data3.large_team_file.csv
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Biggest Team File
MM§M---------------------------------------
MM§M
MM§M21 Jodi Doe (RF) .305
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 2.989
MM§M
MM§M11 Tina Dobbs (RF) .350
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 3.395
MM§M
MM§M13 Nina Dobbs (LF) .478
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 4.541
MM§M
MM§M12 Poppi Ledet (LF) .325
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 3.120
MM§M
MM§M14 Sruthi Yalamanchili (CF) .285
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 2.679
MM§M
MM§M15 Kavya Krishnappa (CF) .298
MM§MSpecialization Factor: 1.0 (class Outfielder) Rating: 2.771
MM§M
MM§M29 Sandy Chintapalli (1B) .265
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 2.915
MM§M
MM§M17 Janie Doe (1B) .350
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 4.244
MM§M
MM§M18 Codi Bell (2B) .325
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.494
MM§M
MM§M19 Gigi de la Hoya (2B) .278
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.301
MM§M
MM§M20 Daisy Doalot (3B) .285
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.349
MM§M
MM§M10 Mikie Mahtook (3B) .298
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.464
MM§M
MM§M22 Matty Ott (SS) .298
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 3.278
MM§M
MM§M23 Leah Coleman (SS) .350
MM§MSpecialization Factor: 1.25 (class Infielder) Rating: 4.244
MM§M
MM§M25 Erin Noland (RHP) 5 wins, 11 losses, 4.3 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: -.906
MM§M
MM§M26 Jackie Malkovic (RHP) 6 wins, 10 losses, 5.4 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: -.500
MM§M
MM§M27 Lois Gibson (RHP) 8 wins, 7 losses, 3.5 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: .178
Project: Softball Players
– Part 2 Page 13 of 15
 Page 13 of 15
MM§M
MM§M28 Gina Malika (LHP) 7 wins, 8 losses, 1.6 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating:
-.308
MM§M
MM§M16 Tika Brando (LHP) 9 wins, 7 losses, 1.7 ERA
MM§MSpecialization Factor: 2.0 (class Pitcher) Rating: .593
MM§M
MM§M30 Belinda Striker (LHP) 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.333
MM§M
MM§M31 Lilly Dean (RHP) 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 2.069
MM§M
MM§M32 Briana Wilson (RHP) 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.111
MM§M
MM§M33 Janine Mason (RHP) 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.011
MM§M
MM§M34 Green Lantern (LHP) 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§MSpecialization Factor: 2.0 (class ReliefPitcher) Rating: 3.125
MM§M
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Biggest Team File (by Number)
MM§M---------------------------------------
MM§M10 Mikie Mahtook 3B .298
MM§M11 Tina Dobbs RF .350
MM§M12 Poppi Ledet LF .325
MM§M13 Nina Dobbs LF .478
MM§M14 Sruthi Yalamanchili CF .285
MM§M15 Kavya Krishnappa CF .298
MM§M16 Tika Brando LHP 9 wins, 7 losses, 1.7 ERA
MM§M17 Janie Doe 1B .350
MM§M18 Codi Bell 2B .325
MM§M19 Gigi de la Hoya 2B .278
MM§M20 Daisy Doalot 3B .285
MM§M21 Jodi Doe RF .305
MM§M22 Matty Ott SS .298
MM§M23 Leah Coleman SS .350
MM§M25 Erin Noland RHP 5 wins, 11 losses, 4.3 ERA
MM§M26 Jackie Malkovic RHP 6 wins, 10 losses, 5.4 ERA
MM§M27 Lois Gibson RHP 8 wins, 7 losses, 3.5 ERA
MM§M28 Gina Malika LHP 7 wins, 8 losses, 1.6 ERA
MM§M29 Sandy Chintapalli 1B .265
MM§M30 Belinda Striker LHP 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§M31 Lilly Dean RHP 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§M32 Briana Wilson RHP 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§M33 Janine Mason RHP 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§M34 Green Lantern LHP 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Biggest Team File (by Name)
MM§M---------------------------------------
MM§M18 Codi Bell 2B .325
MM§M16 Tika Brando LHP 9 wins, 7 losses, 1.7 ERA
MM§M29 Sandy Chintapalli 1B .265
MM§M23 Leah Coleman SS .350
MM§M19 Gigi de la Hoya 2B .278
MM§M31 Lilly Dean RHP 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§M20 Daisy Doalot 3B .285
Project: Softball Players – Part 2 Page 14 of 15
 Page 14 of 15
MM§M13 Nina Dobbs LF .478
MM§M11 Tina Dobbs RF .350
MM§M17 Janie Doe 1B .350
MM§M21 Jodi Doe RF .305
MM§M27 Lois Gibson RHP 8 wins, 7 losses, 3.5 ERA
MM§M15 Kavya Krishnappa CF .298
MM§M34 Green Lantern LHP 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§M12 Poppi Ledet LF .325
MM§M10 Mikie Mahtook 3B .298
MM§M28 Gina Malika LHP 7 wins, 8 losses, 1.6 ERA
MM§M26 Jackie Malkovic RHP 6 wins, 10 losses, 5.4 ERA
MM§M33 Janine Mason RHP 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§M25 Erin Noland RHP 5 wins, 11 losses, 4.3 ERA
MM§M22 Matty Ott SS .298
MM§M30 Belinda Striker LHP 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§M32 Briana Wilson RHP 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§M14 Sruthi Yalamanchili CF .285
MM§M
MM§M---------------------------------------
MM§MTeam Report for My Biggest Team File (by Rating)
MM§M---------------------------------------
MM§ 4.541 13 Nina Dobbs LF .478
MM§ 4.244 17 Janie Doe 1B .350
MM§ 4.244 23 Leah Coleman SS .350
MM§ 3.494 18 Codi Bell 2B .325
MM§ 3.464 10 Mikie Mahtook 3B .298
MM§ 3.395 11 Tina Dobbs RF .350
MM§ 3.349 20 Daisy Doalot 3B .285
MM§ 3.333 30 Belinda Striker LHP 10 wins, 6 losses, 10 saves, 1.8 ERA
MM§ 3.301 19 Gigi de la Hoya 2B .278
MM§ 3.278 22 Matty Ott SS .298
MM§ 3.125 34 Green Lantern LHP 14 wins, 2 losses, 3 saves, 2.2 ERA
MM§ 3.120 12 Poppi Ledet LF .325
MM§ 3.111 32 Briana Wilson RHP 4 wins, 4 losses, 14 saves, 2.0 ERA
MM§ 3.011 33 Janine Mason RHP 5 wins, 3 losses, 12 saves, 2.1 ERA
MM§ 2.989 21 Jodi Doe RF .305
MM§ 2.915 29 Sandy Chintapalli 1B .265
MM§ 2.771 15 Kavya Krishnappa CF .298
MM§ 2.679 14 Sruthi Yalamanchili CF .285
MM§ 2.069 31 Lilly Dean RHP 11 wins, 5 losses, 3 saves, 1.9 ERA
MM§ 0.593 16 Tika Brando LHP 9 wins, 7 losses, 1.7 ERA
MM§ 0.178 27 Lois Gibson RHP 8 wins, 7 losses, 3.5 ERA
MM§ -0.308 28 Gina Malika LHP 7 wins, 8 losses, 1.6 ERA
MM§ -0.500 26 Jackie Malkovic RHP 6 wins, 10 losses, 5.4 ERA
MM§ -0.906 25 Erin Noland RHP 5 wins, 11 losses, 4.3 ERA
MM§M
MM§M---------------------------------------
MM§MExcluded Records Report
MM§M---------------------------------------
MM§M*** invalid category *** H,24,Nola Austin,LHP,2.0,0.225,4,12,1.2
MM§MMaximum player count of 24 exceeded for: R,35,Brice Wayne,LHP,2.0,0.175,15,1,2.3,4
MM§MMaximum player count of 24 exceeded for: R,36,Billie Gates,LHP,2.0,0.325,16,0,2.4,2
MM§MMaximum player count of 24 exceeded for: O,37,Anita Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,38,Betty Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,39,Cate Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,40,Dee Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,41,Edie Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,42,Fay Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,43,Gigit Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,44,Hattie Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,45,Isabel Jones,RF,1.0,.375,.950
Project: Softball Players – Part 2 Page 15 of 15
 Page 15 of 15
MM§MMaximum player count of 24 exceeded for: O,46,Jane Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,47,Kathy Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,48,Lola Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,49,Mary Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,50,Nina Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,51,Olivia Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,52,Pat Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,53,Quie Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,54,Reta Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,55,Siena Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,56,Tina Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,57,Ubi Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,58,Victoria Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,59,Willow Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,60,Xena Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,61,Yani Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,62,Zeta Jones,RF,1.0,.375,.950
MM§MMaximum player count of 24 exceeded for: O,63,Zaata Jones,RF,1.0,.375,.950
MM§MNumber of ignored records from file: 5
MM§M
MM©M ----jGRASP: operation complete.

More products