Pseudocode
FUNCTION calculateGrade()
IF marks are greater than 80
RETURN “High Distinction”
IF marks are greater than 70
RETURN “Distinction”
IF marks are greater than 60
RETURN “Credit”
IF marks are greater than 50
RETURN “Pass”
IF marks are lesser than 50
RETURN “Fail”
END FUNCTION calculateGrade()
FUNCTION main()
DECLARE assessment name list
DECLARE assessment value list
DECLARE total value variable
INPUT number of assessments
FOR LOOP for 1 to MAX assessments
INPUT name of assessment
INPUT value of assessment
APPEND name of assessment in assessment name list
APPEND value of assessment in assessment value list
Calculate total value of all assessments
IF total value is equals to 100
INPUT number of student
DECLARE class marks variable
DECLARE top mark student name variable
DECLARE top mark variable
FOR LOOP for 1 to MAX students
INPUT name of student
DECLARE total marks variable
FOR LOOP for 1 to MAX assessments
INPUT student marks from particular assessment
IF marks is lesser than 0
SET marks TO 0
IF marks is greater than assessment value
SET marks TO assessment value
CALCULATE marks from 100 using (marks/assessmentValue[n])*100)
CALCILATE grade from marks by calling FUNCTION calculateGrade()
PRINT MARKS AND GRADE of individual assessment
ADD marks INTO total marks
CALCILATE grade from total marks by calling FUNCTION calculateGrade()
PRINT total marks and grade of student
IF top mark is lesser than total marks
SET top mark TO total marks
SET top mark student name TO student name
ADD total marks INTO class marks
CALCULATE average class marks
CALCULATE grade from average class marks by calling FUNCTION calculateGrade()
PRINT class average marks and class grade
PRINT top mark student name and top mark of student
IF assessment values is not equals to 100
PRINT error message and EXIT
END FUNCTION main()