Recent Question/Assignment

• Task
The Innovation University of Australia (IUA) asks you to make further modifications to the AGoS system in order to allow a lecturer to store the marks of a number of students (instead of just a single student) permanently in a text file in their computer. When a lecturer runs the system it will ask them to enter a student’s ID, name, and the Assignment 1, Assignment 2 and Final Exam mark one by one.
When all marks for a student are entered it will display the student ID, name, weighted mark for each assignment, the total weighted mark of the assignments, weighted mark for the Final Exam, total weighted mark of the subject, bonus mark and total mark with bonus.
The system will then ask the lecturer 'Do you want to enter marks for another student (Y/N)?' If they enter 'Y' the system will allow them to enter details and marks for another student as before, if they enter 'N' the system will quit, otherwise it will ask the same question again.
A typical example of the display of your program can be as follows. Your program MUST follow the same display style.
-----------------------------------------------------------------------------------------
The Innovation University of Australia (IUA) Grade System
-----------------------------------------------------------------------------------------
Please enter all marks out of 100
Please enter the student ID: 1111
Please enter the student name: Alice Furner
Please enter the marks for Assignment 1: 80
Please enter the marks for Assignment 2: 90
Please enter the marks for the Final Exam: 74
Thank You!
Weighted mark for Assignment 1: 16
Weighted mark for Assignment 2: 27
Total weighted mark of the assignments: 43
Weighted mark for the Final Exam is: 37
Total weighted mark for the subject: 80
Bonus mark: 3.5
Total mark with bonus: 83.5
Do you want to enter marks for another student (Y/N)? z
Do you want to enter marks for another student (Y/N)? Y
Please enter the student ID: 1112
Please enter the student name: Bob Siers
Please enter the marks for Assignment 1: 68
Please enter the marks for Assignment 2: 68
Please enter the marks for the Final Exam: 92
Thank You!
Weighted mark for Assignment 1: 13.6
Weighted mark for Assignment 2: 20.4
Total weighted mark of the assignments: 34
Weighted mark for the Final Exam is: 46
Total weighted mark for the subject: 80
Bonus mark: 3.5
Total mark with bonus: 83.5
Do you want to enter marks for another student (Y/N)? N
Goodbye.
In addition, the system should store the details and marks of each student in a file called IUA.txt in the same folder as the Python code of the AGoS system. Every time a student details are entered the system should append them in the text file.
The IUA.txt file will have the following content after the details of Alice Furner are entered.
You need to develop the system by completing the following three tasks:
Task 1 -
Draw Nassi Shneiderman (NS) diagram/s that present the steps of the algorithm required to perform the task specified. Refer to the tools used in assignments one and two, or submit a hand drawn diagram if you prefer.
Task 2 -
Select three sets of test data that will demonstrate the 'normal' operation of your program; that is, test data that will demonstrate what happens when a VALID input is entered. Select two sets of test data that will demonstrate the 'abnormal' operation of your program.
Set it out in a tabular form as follows: test data type, test data, the reason it was selected, the output expected due to using the test data, and finally the output actually observed when the test data is used. It is important that the output listings (i.e., screenshots) are not edited in any way.
Test Data Table
Test data type Test data The reason it was selected The output expected due to the use of the test data The screenshot of the actual output when the test data are used.

Task 3 -
Implement your algorithm in Python. Comment on your code as necessary to explain it clearly.
In addition for this exercise, use multiple functions, instead of using a single function to do everything. Create a good design of the functions to make the best use of the code and avoid duplicate calculations. For example, you can have a function for calculating the weighted mark of an assignment and the function can be used for calculating all weighted marks. Avoid duplicate code.
You also need to design your program so that it has components that can be reused in another program, if needed. Handle exceptions appropriately. Use appropriate data structure.
Run your program using the test data you have selected and complete the test data table above.
Your submission will consist of:
1. Your algorithm through Nassi Shneiderman (NS) diagram/s.
2. The table recording your chosen test data and results (it can be in a Word file)
3. Source code for your Python implementation