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:  Quit the program. 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.. 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! 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 and return the average (print it in main). 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 and return 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!)

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

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 and return 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 and return 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!)

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 1 images

Blurred answer
Knowledge Booster
Constants and Variables
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education