The University requires a program to predict progression outcomes at the end of each academic year. You should write this program in Python using the data shown in Table 1.
Table 1: Progression outcomes as defined by the University regulations. see image.
1. The program should allow students to predict their progression outcome at the end of each academic year.
2. The program should prompt for the number of credits at pass, defer and fail and then display the appropriate progression outcome for an individual student.
3. The program should let the user know if a credit input is the wrong data type. I.e., 'Integers required' is displayed.
4. The program should let the user know if credits are not in the range 0, 20, 40, 60, 80, 100 and 120. I.e., 'Range error' is displayed.
5. The program should let the user know if the total of the pass, defer and fail credits is not 120. I.e., 'Total incorrect' is displayed.
This extension should meet the requirements specified for Part 1 but also allow a staff member to predict progression outcomes for multiple students.
1. The program should prompt for credits at pass, defer and fail and display the appropriate progression for each individual student until the staff member user enters 'q' to quit.
2. When 'q' is entered, the program should produce a histogram where each star represents a student who achieved a progress outcome in the category range: progress, trailing, module retriever and exclude. See example below.
3. The program should display the number of students for each progression category and the total number of outcomes processed.
This following horizontal histogram example shows the output distribution for 20 outcomes. However, your program should work with any number of outcomes generated.
Progress 10: **********
Trailing 5: *****
Retriever 3: ***
Excluded 2: **
20 outcomes in total.
Extend your program to add an additional histogram that displays vertically so the stars in a category should go downwards and not across the screen, e.g.: see image.
Hint: as a line is printed decide if each category needs a star or space.
Part 3 does NOT require a flow diagram or a test plan.
For this staff version the data will be accessed from a list, tuple or dictionary and NOT from user input. The data held in the list, tuple or dictionary will match the test cases 1 to 10 shown in the appendix. Use user-defined functions.