Question
INTRODUCTION TO BASEBALL STATISTICS Hitting Statistics - for example, see the http://www.espn.com/mlb/team/stats/batting/_/name/nyy/seasontype/2: Name of hitter At bats (AB) - a whole number Runs scored (R)
INTRODUCTION TO BASEBALL STATISTICS
Hitting Statistics - for example, see the http://www.espn.com/mlb/team/stats/batting/_/name/nyy/seasontype/2:
Name of hitter
At bats (AB) - a whole number
Runs scored (R) - a whole number
Hits (H) - a whole number
Home runs (HR) - a whole number
Runs batted in (RBI) - a whole number
Batting Average (AVG or BA) - a real number 0.000 - 1.000, calculated as H/AB
Pitching Statistics - for example, see http://www.espn.com/mlb/team/stats/batting/_/name/nyy/seasontype/2
Name of pitcher
Wins (W) - a whole number
Losses (L) - a whole number
Runs allowed (R) - a whole number
Earned run average (ERA) - a real number
Each team has many hitters and pitchers over the course of a single season who contribute to the statistics for that team. Team statistics of interest to us are listed below.
Team Statistics
Location of team (ex: New York)
Nickname of team (ex: Yankees)
Wins (W) - sum of all team's pitchers' wins
Losses (L) - sum of all team's pitchers' losses
Winning Percentage (PCT) - a real number 0.000 - 1.000, equals W/(W + L)
Runs scored (RS) - sum of all team's hitters' runs scored
Runs allowed (RA) - sum of all team's pitchers' runs allowed
In addition to the team statistics listed above, for this assignment we are interested in the "Pythagorean Theorem of Baseball", a calculation created by baseball statistician Bill James for predicting a team's winning percentage based on that team's Runs Scored and Runs Allowed. This predictive winning percentage is calculated as: Pythagorean Winning Percentage = RS2/(RS2 + RA2) For this assignment, you will define classes to manage and analyze these statistics, and I will provide a skeleton for a driver (which you will complete) for testing them.
Before you write any code for this assignment, you should model your classes by creating a UML class diagram. I recommend using VioletUML, which is easy to use to draw your diagram. Note that your design will be rather simple, but you will have to consider all data and methods your classes must make available. Note that there are many tutorials available on the basics of UML class diagrams. Your diagram should map out the following classes and include relationships between them:
BaseballHitter
Data - this class should use complete information hiding (i.e. make its instance variables private) to store all data about hitters previously discussed. Note that no redundant data should be stored. Any data derived from other data should use a method rather than an instance variable.
Accessor and mutator methods - should be provided for all changeable data
Constructors - at least one constructor should be provided that allows for the initialization of all instance variables (see HW5Driver for use)
toString method - should summarize this object such that it may display all stats in a neat format (like a row in a table)
BaseballPitcher
Data - should use complete information hiding to store all pitcher data previously discussed.
Accessor and mutator methods - should be provided for all changeable data
Constructors - at least one constructor should be provided that allows for the initialization of all instance variables (see HW5Driver for use)
toString method - should summarize this object such that it may display all stats in a neat format (like a row in a table)
BaseballTeam
Data - should use complete information hiding to store to store two arrays, one for the team's hitters, one for the team's pitchers
Accessor and mutator methods - should be provided for all changeable data
This should include a means to add hitters (addHitter) & pitchers (addPitcher) to a team
sort method
This should provide a means for the sorting of hitters using the Bubble Sort algorithm (see class notes) by name (A-Z), at bats (descending), runs (descending), hits (descending), home runs (descending), runs batted in (descending), or batting average (descending). This method should accept a method argument that selects the sorting criteria, meaning the argument tells the method how to sort.
This class should provide a means for the sorting of pitchers using Selection Sort by name (A-Z), wins (descending), losses(descending), runs (descending), and era (ascending).
toString method - should summarize this object such that it may display all stats in a neat form, including all hitters and pitchers in tables. For example, depending on when your statistics were updated, the toString method for the 2018 New York Yankees and then the New York Mets might produce the text below.
Notice that RS & RA values are calculated by summing the Runs Scored by hitters and Runs Allowed by pitchers
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started