Write a program that uses a file named scores.txt to record sets of bowling scores for different dates. You can assume that the user will always record exactly 3 scores for any given date. scores.txt should store the data so that each line has a month, day, and the 3 scores the user earned on that date. For example, scores.txt should look something like this:
January15200300126
April20125100150 May17300100215
When the program first starts, no scores should be recorded and scores.txt should not exist. In a continuous loop, give the user four options:
1. Quit the program.
2. View all Scores. If the user selects this option, call a function named viewScores. This function should print the scores in a nicely formatted manner. For example:
"On January 15, you scored 200, 300, and 126"
etc..
3. Add a Score. If the user selects this option, call a function named addScore. This function should ask the user for a month, day, and 3 scores. The day should be between 1 and 31, and each of the 3 scores should be between 0 and 300. Do not worry about validating the 'month' string. When the user submits data to be entered, a separate function named scoreExistsForDate should be called. This function returns true if there is already an entry in scores.txt for the given date. In that case, tell the user that a set of scores already exists and do not enter the new score. If all input validation passes (i.e. the day is between 1 and 31, the scores are all between 0 and 300, there is no entry for the given date) then append the data to scores.txt. Do not worry about the dates being out of order!
4. Average Scores. If the user selects this option, call a function named averageScores. This function should add up all scores for all of the dates on scores.txt and then calculate the average.
Make sure to perform error handling as well (for example, if the user tries to view scores before scores.txt even exists, the program should not crash!)