Question: solve using python please Problem Statement: The computer science department of an institute assesses the performance of its staff to ensure high standards. The assessment


Problem Statement: The computer science department of an institute assesses the performance of its staff to ensure high standards. The assessment process is coordinated by the Quality Control (QC) unit of the department and is performed twice each semester, at the middle and the end of the semester. By the end of each semester, the QC unit must provide a summary of the two assessments for each course. The summary, which is the aggregate of the students' evaluations, comprises of staff's basic information (such as staff unique number, name, course, year, and semester) and hisher score in each of the two assessments. Some performance statistics (such as the highest and lowest performing staff among others) are often generated from the summary. The whole process is done manually, which is very tedious for the QC unit of the department. As a programmer, you are requested to write a python program that will ease the use of the summary aspect of the assessment (assuming the summary is generated and given to you as a file). Your program should: I. Ask the QC staff to enter the number of staff assessed (RegStaff), the semester (CurrentSem), and the year (Current Year). IL. Then set valid staff numbers, names, courses, and scores. Use readData to read data from the assessment summary file. Sample Assessment Summary file is shown below: III. Next, provide a menu of options (loop) after reading and validating data. The menu should include the following list of main features and their requirements: 1. Find the highest score bassed on (1. Assessment 1, 2. Asiessment 2, 3. Total) a. Print the result as fall details of the comesponding staff 2. Find the lowest score based on (1. Assesament 1, 2. Assessment 2, 3. Total) a. Print the resalt as full details of the correiponding staff. 3. Find the average sooe based on (1. Assesiment_1, 2. Assessment 2,3. Total) A. Print the average score 4. Print details of staft based on the staff s unique number a. Print the result as full details of the corresponding staff. 5. Print details for all the waff Some Tips: Your program must initialize at least the following global variables and arrays*: 1. Names] ]: Array of Strings to hold the names of the staff. 2. Numbers| 1: Array of Strings to hold the staff's unique number 3. Courses] 1: Array of Strings to hold the staff s courses 4. Assessment_1 I: Array of integers to hold the staff's assessment 1 seore. 5. Assessment_2] ]: Array of integers to hold the staff's assessment 2 score. 6. Totall I: Amay of integers to hold the total assessment score of each staff. 7. AssessmentW: Integer to hold the weight of the assessments and it must be equal to 50. 8. CurrentSem: String value to hold the current assessment semester (Fall/Spring) 9. CurrentYear: Integer value to hold the current assessment year. 10. RegStaff: Integer to hold the number of staff assessed for the semester in that year. [*] - The size of the arrays should be equal to the number of assessed staff (BegStaff) Your program must initialize at least the following methods: 1. readData: ( 2.5 marks) To access the summary file to get the name, number, course, assessment 1 , and assessment 2 of every staff. - Call setValidName to set the validation of each name in the Names[] array. - Call setValidiD to set the validation of each number in the Numbers[] array. - Call setValidCourse to set the validation of each course in the Courses [] array. - Call setValidScore to check the validation of both assessments in the Assessment_[ [] and Assessment_2[] arrays based on the provided assessment weight (AssessmentW). - Save the data in Names[], Numbers[], Courses[], Assessment 1[], d Assessment 2[] - Then calculate and fill the Total[] array for each staff; - Notify the user when the data is saved successfully. 2. setValidName: ( 2 marks) - The parameter is the index of the names. - Check if a name in the array (Names) is valid. (The name is valid if it has only strings of alphabets and space). - In case of an invalid name, the name will be priated and the user has to be prompted to enter a new value (the method must be teminated only in case of valid name entered). 3. setYaliaid: ( 2 marks) - The parameter is the index of the numben. - Check if a number in array (Numbers) is valid. (The number is valid if it has only characters as number). - In case of an invalid number, the number will be printed and the user has to be prompted to enter a new value (the method must be terminated only in case of valid number entered). 4. setValidCourse: (2 marks) - The parameter is the index of the courses. - Check if a course in the array (Courses) is valid. (The course is valid if it has only strings of alphabets and space). - In case of an invalid course, the course will be printed and the user has to be prompted toenter a new value (the method must be terminated only in case of valid course entered). 5. setValidScore: ( 2 marks) - The parameters are an index of the score and a string. The string is to specify if the score is for assessment 1 or assessment 2. 'Al' for assessment 1 or 'A2' for assessment 2. - Check if a score in the array of assessment 1 or assessment 2 is valid. (The score is valid if it is greater than or equal to 0 and less than or equal to the assessment weight (AssessmentW)) - In case of an invalid score, the score will be printed and the user has to be prompted to enter a new value (the method must be terminated only in case of valid score entefed). 6. getlndexByID: ( 1.5 marks) - Retum index for a specific staff number. 7. getMaxlndex: (1.5 marks) - Return the index of the highest-scoring staff in an array. 8. getMlinlndex: ( 1.5 marks) - Retum the index of the lowest-scoring staff in an array. 9. getAvg: ( 1.5 marks) - Return the average of values in an array. 10. RrintDetailsByID: ( 2 marks) - Print the name, number, course, assessment 1, assessment 2, total, semester, and year for a given staff number in the following format: 11. printDetails: (1.5 marks) - Print full details for all staff which are the name, number, course, assessment 1 , assessment 2 , and total in the following fommat
Step by Step Solution
There are 3 Steps involved in it
To solve this problem in Python youll need to create a structured program that includes various func... View full answer
Get step-by-step solutions from verified subject matter experts
