diff --git a/Week9/Assignment9/bin/GolfScore.class b/Week9/Assignment9/bin/GolfScore.class index 7d94523..b9ffb99 100644 Binary files a/Week9/Assignment9/bin/GolfScore.class and b/Week9/Assignment9/bin/GolfScore.class differ diff --git a/Week9/Assignment9/src/GolfScore.java b/Week9/Assignment9/src/GolfScore.java index a42df0a..8fd8081 100644 --- a/Week9/Assignment9/src/GolfScore.java +++ b/Week9/Assignment9/src/GolfScore.java @@ -64,17 +64,17 @@ public class GolfScore { * @return all golfer's names in array of String */ public static String[] getGolfers(String csvFilename) { - String[][] data; + try { - data = CSVUtility.readCSV(csvFilename, true); - String[] golfers = new String[data.length]; - for (int i = 0; i < data.length; i++) - golfers[i] = data[i][0]; - return golfers; + String[][] data = CSVUtility.readCSV(csvFilename, true); //Read csv to string data + String[] golfers = new String[data.length]; // Make 1D array to store all golfer's name + for (int i = 0; i < data.length; i++) //Loop through each row + golfers[i] = data[i][0]; // First Column is the golfer's name, put it in golfers array + return golfers; //send the data back } catch (FileNotFoundException e) { e.printStackTrace(); } - return new String[0]; + return new String[0]; //If all else fail, return an empty string array } /** @@ -106,11 +106,11 @@ public class GolfScore { */ public static String getCourseName(String csvFilename) { try { - return CSVUtility.readFile(csvFilename)[0]; + return CSVUtility.readFile(csvFilename)[0]; //Return the first line of the CSV file } catch (FileNotFoundException e) { e.printStackTrace(); } - return null; + return null; //If all else fail, return null } /** @@ -122,22 +122,22 @@ public class GolfScore { */ public static int[] getCoursePar(String csvFilename, String courseName) { // ENTER CODE HERE - String[][] data; try { - data = CSVUtility.readCSV(csvFilename, false); + String[][] data = CSVUtility.readCSV(csvFilename, false); // Read file and store it in data + for (int i = 0; i < data.length; i++) { //loop through + if (courseName.equals(data[i][0])) { //If the course name of the the current row is equal to courseName, read the current line + int[] pars = new int[data[i].length - 1]; //Create an array to store current course's par data + for (int j = 1; j < data[i].length; j++) //Loop through each par, start from 1 to exclude the course name + pars[j - 1] = Integer.parseInt(data[i][j]); //Put the par no. n at index n-2 + return pars; //return the par for course, this end also exit the loop + } + } } catch (FileNotFoundException e) { e.printStackTrace(); return new int[0]; } - for (int i = 0; i < data.length; i++) { - if (courseName.equals(data[i][0])) { - int[] pars = new int[data[i].length - 1]; - for (int j = 1; j < data[i].length; j++) - pars[j - 1] = Integer.parseInt(data[i][j]); - return pars; - } - } - return new int[0]; + + return new int[0]; //If all else fail (File not found, etc) return an empty int array } /** @@ -149,11 +149,11 @@ public class GolfScore { */ public static int[] calculateHandicap(int[][] scores, int[] par) { // ENTER CODE HERE - int hc[] = new int[scores.length]; - for (int i = 0; i < scores.length; i++) - for (int j = 0; j < scores[i].length; j++) - hc[i] += calculateHoleHandicap(par[j], scores[i][j]); - return hc; + int hc[] = new int[scores.length]; //create a handicap array of nGolfers elements + for (int i = 0; i < scores.length; i++) //Loop through each row + for (int j = 0; j < scores[i].length; j++) //Loop through each hole + hc[i] += calculateHoleHandicap(par[j], scores[i][j]); //no. golfer = row = i+1; no. hole = column = j+1 + return hc; //Return the Array } @@ -168,9 +168,10 @@ public class GolfScore { */ public static int calculateHoleHandicap(int par, int score) { // ENTER CODE HERE + //Use conditional if-else chain to calculate par if (score - par == 1) return 1; - if (score - par >= 2) + else if (score - par >= 2) return 2; return 0; } @@ -186,11 +187,11 @@ public class GolfScore { // ENTER CODE HERE int[][] playerScores = new int[golfScoreList.length][3]; for (int i = 0; i < playerScores.length; i++) { - for (int j = 0; j < 9; j++) + for (int j = 0; j < 9; j++) //Sum first 9 holes playerScores[i][0] += golfScoreList[i][j]; - for (int j = 0; j < 9; j++) + for (int j = 0; j < 9; j++) //Sum last 9 holes playerScores[i][1] += golfScoreList[i][j + 9]; - playerScores[i][2] = playerScores[i][0] + playerScores[i][1]; + playerScores[i][2] = playerScores[i][0] + playerScores[i][1]; //all hole = index 0+1 } return playerScores; }