Question: Create a Python program to analyze student total point scores and grades for a given course with data read from an ASCII text file. a

Create a Python program to analyze student total point scores and grades for a given course with data read from an ASCII text file. a) Process a user input data filename to create a report that includes a listing of student names in each grade range and a summary bar chart of number of students in each grade range. Sample data files have been provided; submitted code will be tested with these and other data files. b) Any number of student names and total point scores are included in an ASCII text data file with the following comma separated information on each line: Student First and Last Name character string Total Point Score non-negative floating point number Several testing files are included with the assignment. Submitted Python program code with be tested with these and other data files for accuracy.
c) The inclusive grade ranges for total point scores are as follows: A 900.0 to 1000.0 B 800.0 to 899.9 C 700.0 to 799.9 D 600.0 to 699.9 F 0 to 599.9 d) Include the following design requirements for maximum possible points: Include a multi-line program comment header that includes your name, date, class, and short problem description. Descriptively prompt the user for the filename containing student total point scores for a class. Close the file when reading is complete. Include exception handling error messages for file open errors. Use try/except statements for exception handling, not assert statements or the print function, when allowing re-entry for invalid filename. Use tuple(s) to hold the grade range details and list(s) for holding the student names with total point scores and student names in each grade range. Use a modular approach. Include and use a main function to start the program, create variables, read input, call functions, and display output as required. Use parameters, not global variables, to transfer data between functions. Include only a single read student data from file. Include function docstrings for created functions.
The inclusive grade ranges for total point scores are as follows: A 900.0 to 1000.0 B 800.0 to 899.9 C 700.0 to 799.9 D 600.0 to 699.9 F 0 to 599.9 d) Include the following design requirements for maximum possible points: Include a multi-line program comment header that includes your name, date, class, and short problem description. Descriptively prompt the user for the filename containing student total point scores for a class. Close the file when reading is complete. Include exception handling error messages for file open errors. Use try/except statements for exception handling, not assert statements or the print function, when allowing re-entry for invalid filename. Use tuple(s) to hold the grade range details and list(s) for holding the student names with total point scores and student names in each grade range. Use a modular approach. Include and use a main function to start the program, create variables, read input, call functions, and display output as required. Use parameters, not global variables, to transfer data between functions. Include only a single read student data from file. Include function docstrings for created functions.
Create separate functions to perform individual tasks; the main function should not include all program logic. At a minimum the program should include separate functions (with parameters and return values to transfer data) to perform the following tasks: Read from user input data file to return list(s) of student names with total point scores Process list(s) of student names with total point scores and tuple(s) of grade range details as parameters to return list(s) of student names in each grade range. No display output is done in this function. Take parameters of tuple(s) for grade range details, and list(s) of student names in each grade range to display: names of students in each grade. Textual output should include a descriptive message with the following grade count details for each grade range (each on a separate line, as shown below): number of students processed in file how many students in each grade range with one digit precision for percentage student names (if count is >0), not the list of student names in brackets.
Take parameters of filename, tuple(s) for grade range details, and list(s) of student names in each grade range to display: a bar chart using matplotlib for count of students in each grade range for a given input data file.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!