Starting from:

$35

CSC7081- World Cup Stats analyser application Solved

You have been given a data file (WorldCupMatches.csv) that contains various details for each FIFA World Cup match from 1930 until 2014.  You are tasked with writing an OOP based Java application that will enable the reading and searching of the data. 

Create a project solution (named PGCert<your student id> e.g. PGCert2048201). Create a package named wc. Add WorldCupMatches.csv to the project. Ensure your name and student number are placed in the Javadoc comments of all the classes you write to support the application.  

Part 1 – 
Using your knowledge of OOP: 

Create a class java that will represent each match detail. The class should have all the properties for each data point (attribute) of the match. Each attribute with appropriate validation rule is detailed below.
 

Attribute 
Allowable values 
Year
1930 (inclusive) onwards
Host
At least 1 character but less than 30
Stage
At least 1 character but less than 50
Stadium
At least 1 character but less than 80
City
At least 1 character but less than 40
Attendance
0 – 200000 (inclusive)
Home Team Name
At least 1 character but less than 35
Home Team Goals
0 – 15 (inclusive)
Away Team Goals
0 – 15 (inclusive)
Away Team Name
At least 1 character but less than 35
Win conditions
ET (extra time)

HWP (Home Win Penalties)

AWP (Away Win Penalties)
Half-time Home Goals
0 – 15 (inclusive)
Half-time Away Goals
0 – 15 (inclusive)
Home Team Initials
Three characters
Away Team Initials
Three characters
 

Return an appropriate exception with an appropriate exception message e.g. “Invalid Home Goals”, “Invalid team name format” etc. if an attempt is made to set outside a range or allowable values. 

You should fully unit test this class.
Part 2 - Searches - 
Create a Stats.java class is designed to support the system for searching. It should have the application’s main method and then a series of methods calls.

Methods required:  

Read each match detail from the csv, creating an instance of the Match class (from Part 1) for each match and populate this arraylist : (which should be created with the Stats class.)
public static ArrayList<Match> matches = new ArrayList<Match>();

Acting on this populated ArrayList then perform the following operations matching the format of the example outputs…

Output to screen all details of all matchesg.
Match [year=2002, host=South Korea/Japan, stage=Group F, stadium=Saitama Stadium 2002, city=Saitama , attendance=52721, homeTeamName=England, homeTeamGoals=1, awayTeamGoals=1, awayTeamName=Sweden, winConditions= , halfTimeHomeGoals=1, halfTimeAwayGoals=0, homeTeamInitials=ENG, awayTeamInitials=SWE]

Output to screen the total attendances of all matches and the average attendance (to two decimal points) for WC matches.
Total attendances in all WCs :  Average attendances: 

Output to screen the results of any searched for WC year. Eg. Searching for 1998 would output :
All matches in WC France 1998

Brazil 2 : Scotland 1

Morocco 2 : Norway 2

Italy 2 : Chile 2

Etc… 

Output to screen the results of any searched for country that has played in the WC e.g. Searching for Spain would output :
Matches Spain have played in the WC

Spain 3 : Brazil 1

Italy 1 : Spain 1

Italy 1 : Spain 0

Spain 3 : USA 1

Etc…

Output to screen the following details for all WC final matches
1930 Uruguay 

Uruguay 4 : Argentina 2

Italy
Italy 2 : Czechoslovakia 1

1938 France 

Italy 4 : Hungary 2

Etc... 

Output to screen the total number of goals scored in all WC matches and the average goals per game (to two decimal places).
Total goals in all WCs : 

Average goals per game : 

Output the details for the matches with the smallest attendance and also the largest attendance.
Attendances 

Smallest attendance 2000

Uruguay 1930 Estadio Centenario Uruguay CHI vs FRA

Largest attendance etc…

Output to screen the details of each match that went to extra time (i.e. Win Condition being set as ET) e.g.
ET games

Italy Preliminary round
Austria 3 : France 2

 

1934 Italy Final

Italy 2 : Czechoslovakia 1

Etc…

Output to screen the details of each match that went to penalties. Win conditions either HWP or AWPg.
Games that went to penalties

1990 Italy Semi-finals

ITA 1 : ARG 1 Winner : ARG

Etc...

Output to screen the percentage of games won by the team that were leading at half time. When complete compress (zip) the Eclipse solution and upload to Assignments on CANVAS
 

More products