Write a program that will take this dictionary: gradePoints = {"A":4,"B":3,"C":2,"D":1,"F":0} and this list: courseList = ["CST 161","Mat 144","ENG 201","PSY 101","HIS 101"] and randomly use elements from each of these lists : gradeList = ["A","B","C","D","F"] creditList = [3,4] and produce a grade point average. Academic average is determined by dividing the total number of quality points earned by the total number of credits taken, whether passed or failed. The following table is an illustration of this computation: GRADE & QUALITY NUMERICAL POINTS Course . . . Credits Value Per Course HIS 101. . . . . .3 C (2) 6 PSY 101. . . . . 3 B (3) 9 MAT 144. . . . 4 D (1) 4 ENG 201. . . . 3 B+ (3.5) 10.5 CST 161. . . . . 3 F (0) 0 Total credits taken: 16 Total quality points earned 29.5 29.5 divided by 16 results in a 1.8 grade point average. Here the gradeList element will be embedded as the key in referencing the grade points. (e.g. gPoints = gradePoints[random gradeList element]) (e.g. creditHours = random creditList element). To get a random list element, use the randint method with a range of (0,len(list)). That will be multiplied by the gPoints per course. Multiply them to get the the valuePerCourse for the that course. (e.g. valuePerCourse = (creditHours * gPoints), this will yield the value for that course. For each course (each pass through the loop), add creditHours to totalCredits and add valuePerCourse to qualityPoints qualityPoints divided by total Credits results in a GPA. Display each course with their grade, and the value per course. Display the quality points and the GPA. Display the proper string literals that will identify your output. After you are done, Add the logic to read the Courses, grades and credits from a file. Ex. CST 161 A 4 ENG 101 B 3 MAT 119 B 4 Process these courses, grades and credits in your program instead of using the courseList, gradeList and creditList. Submit that file.
Write a program that will take this dictionary:
gradePoints = {"A":4,"B":3,"C":2,"D":1,"F":0}
and this list:
courseList = ["CST 161","Mat 144","ENG 201","PSY 101","HIS 101"]
and randomly use elements from each of these lists :
gradeList = ["A","B","C","D","F"]
creditList = [3,4]
and produce a grade point average.
Academic average is determined by dividing the total number of quality
points earned by the total number of credits taken, whether passed or
failed. The following table is an illustration of this computation:
GRADE & QUALITY NUMERICAL POINTS
Course . . . Credits Value Per Course
HIS 101. . . . . .3 C (2) 6
PSY 101. . . . . 3 B (3) 9
MAT 144. . . . 4 D (1) 4
ENG 201. . . . 3 B+ (3.5) 10.5
CST 161. . . . . 3 F (0) 0
Total credits taken: 16
Total quality points earned 29.5
29.5 divided by 16 results in a 1.8 grade
point average.
Here the gradeList element will be embedded as the key in referencing the grade points.
(e.g. gPoints = gradePoints[random gradeList element])
(e.g. creditHours = random creditList element).
To get a random list element, use the randint method with a range of (0,len(list)).
That will be multiplied by the gPoints per course.
Multiply them to get the the valuePerCourse for the that course.
(e.g. valuePerCourse = (creditHours * gPoints), this will yield the value for that course.
For each course (each pass through the loop),
add creditHours to totalCredits and
add valuePerCourse to qualityPoints
qualityPoints divided by total Credits results in a GPA.
Display each course with their grade, and the value per course.
Display the quality points and the GPA.
Display the proper string literals that will identify your output.
After you are done, Add the logic to read the Courses, grades and credits from a file.
Ex.
CST 161 | A | 4 |
ENG 101 | B | 3 |
MAT 119 | B | 4 |
Process these courses, grades and credits in your program instead of using the courseList, gradeList and creditList.
Submit that file.

Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 3 images

Could you help me with this error?
![The image displays a Python script and its execution environment in IDLE. The script is meant to calculate grades for various courses. Below is a breakdown of the code and the resulting error message.
### Python Script Explanation:
1. **Imports**:
- `import random`: This library is used to generate random numbers.
- `from tabulate import tabulate`: This line attempts to import the `tabulate` module for formatting data in tables.
2. **Data Initialization**:
- `gradePoints`: A dictionary mapping letter grades to numeric values. For example, `"A":4`.
- `courseList`: A list of course codes like `["CST 161", "Mat 144", "ENG 202"]`.
- `gradeList` and `creditList`: Lists defining possible grades (`["A", "B", "C", "D", "F"]`) and corresponding credits (`[3, 4]`).
3. **Variables**:
- `data`: An empty list to store course data.
- `total_credit` and `sums`: Variables to accumulate credit hours and total grade points.
4. **User Input and Processing**:
- The user is prompted to enter the number of courses.
- Random courses, credits, and grades are generated, and their information is appended to `data`.
5. **Output**:
- The `tabulate` function should be used to print the data in a formatted table, followed by the total credits, quality points, and overall grade.
### Error Message:
- **ModuleNotFoundError**: `No module named 'tabulate'`
- This error indicates that the script attempts to use the `tabulate` module, which is not installed in the Python environment. To resolve this, the `tabulate` module needs to be installed, typically via a package manager like pip (`pip install tabulate`).
This code snippet demonstrates basic operations for GPA calculation, but it encounters an import error due to a missing external library.](https://content.bartleby.com/qna-images/question/2b5ce93e-94f9-49fd-8fc5-aabefed0184c/d5480a16-6b61-466b-a259-9b0d93023d3e/ul9zrue_thumbnail.png)








