For this assignment, you will write a Python program that uses a file named scores.txt to store sets of bowling scores for different dates. scores.txt should store the data so that each line has a...


For this assignment, you will write a Python program that uses a file named scores.txt to store sets of bowling scores for different dates.


scores.txt should store the data so that each line has a month, day, and the scores the user earned on that date. As an example, scores.txt might look something like this:


January 15 200 300 126 200 250
April 20 125 100 May 17 300 100 215


The very first time your program starts, scores.txt should not exist (i.e. create it with Python code the first time the program runs).


In your main function, continuously give the user the following five options:



  1.  Quit the program.

  2. View all Scores.  If the user selects this option, call a function named view_scores. 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 add_score. This function should ask the user for a month, day, and as many scores as they want to add for that date. Perform validation on the day and each score: day should be between 1 and 31, and each of score should be between 0 and 300. Do not worry about validating the 'month' string. When the user submits data to be entered, call a separate function named score_exists_for_date. This function returns True if there is already an entry in the file for the given date. In that case, tell the user that a set of scores already exists and do not enter the new data. 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 average_scores. This function should add up all scores for all of the dates on scores.txt and then calculate andreturn the average (print it in main).

  5. Number of 300s. If the user selects this option, call a function named num_300s. This function should calculate how many times the user scored 300 andreturn the result (print it in main).


Perform the following error handling as well (for example, if the user tries to view scores before scores.txt exists, the program should not crash!)

Jun 06, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here