FUNCTIONAL DESIGN SPECIFICATION: GOLFSCORE ========================================== BASICS OF GOLF: There are 18 holes to a course. A golfer uses a club to hit the ball from a "tee". And then continues to hit the ball until it goes into the cup on the green. The number of strokes - how many times it was hit - is recorded for each hole. The "round" is the sum of the strokes for playing 18 holes. Each hole has a different length. Each hole has a "par" value, which is the expected average number of strokes. Depending on the length, the par might be 3, 4, or 5 strokes. If a hole has a par of 4, and the golfer makes 4 strokes, then they've "made" par. If the golfer is better, and makes 3, then they are 1 under par (-1). If they stroke 6, then +2. The sum of all 18 pars is the expected par for the entire course. If every hole is par 3, then the par for the course is 54. If a player strokes exactly 54, they are at par for the course. At 53, they are -1. At 64, they are at +10. A tournament consists of playing multiple rounds. (In some tournaments, the rounds are played on different golf courses - that will be the case below.) The golfer with the lowest score wins. Now for the software testing problem. GOLFSCORE is a program which calculates the scores of participants in a golf tournament which is based on the following. ASSUMPTIONS: (1) The number of courses is 1 to 4. (2) The number of golfers is 2 to 10. (3) Each golfer plays each course exactly once. (4) A golfer's tournament score is the sum of his/her scores on each course. (5) Each golf course has 18 holes, and par for each hole is 3, 4, or 5. (6) Course name and golfer name are each one word, up to 20 characters. INPUT: Formatted text file containing the following records, in sequence: (1) Course records: One record for each golf course. Each record contains the name of the course and par for each of its 18 holes. Column 1: Blank CourseName (one word) 18 integers (3, 4, 5) representing par values for each hole (2) Delimiter record: Denotes the end of the course records. Column 1: Non-blank (3) Golfer records: One record per golfer per course (in any order). Each record contains the course, the golfer, and the actual strokes on the 18 holes. Column 1: Blank CourseName (one word) GolferName (one word) 18 positive single digits representing the strokes for each hole (4) Delimiter record: Denotes the end of the golfer records. Column 1: Non-blank OUTPUT: A list of all the golfers sorted alphabetically. For each golfer, a sublist of the courses played, sorted alphabetically. For each course, the total strokes for the golfer on that course and its relationship (+/- int) to the par value for the course. At the end of each sublist, the tournament score for the golfer and the overall par value.