Program to create grade calculator in Python

In academics, it is a common requirement to calculate student grades based on their assessment scores. In this article, we will create a Python program that assigns grades using a predefined grading criteria.

Grading Criteria

Below is the grading criteria used in our program ?

Score >= 90 : "O" (Outstanding)
Score >= 80 : "A+" (Excellent)
Score >= 70 : "A" (Very Good)
Score >= 60 : "B+" (Good)
Score >= 50 : "B" (Above Average)
Score >= 40 : "C" (Average)
Score < 40  : "F" (Fail)

Program Structure

Our grade calculator follows these steps ?

  • Create a class to encapsulate student details and grade calculation logic

  • Accept student information (roll number, name, and marks for 5 subjects)

  • Calculate total marks and percentage

  • Assign grades based on percentage using conditional statements

  • Determine pass/fail status based on individual subject marks

  • Display the complete grade report

Implementation

class GradeCalculator:
    def __init__(self):
        self.__roll_number = 0
        self.__name = ""
        self.__marks_obtained = []
        self.__total_marks = 0
        self.__percentage = 0
        self.__grade = ""
        self.__result = ""
    
    def get_student_details(self):
        self.__roll_number = int(input("Enter Roll Number: "))
        self.__name = input("Enter Name: ")
        print("Enter marks for 5 subjects:")
        for i in range(5):
            mark = int(input(f"Subject {i + 1}: "))
            self.__marks_obtained.append(mark)
    
    def calculate_total(self):
        self.__total_marks = sum(self.__marks_obtained)
    
    def calculate_percentage(self):
        self.__percentage = self.__total_marks / 5
    
    def assign_grade(self):
        if self.__percentage >= 90:
            self.__grade = "O"
        elif self.__percentage >= 80:
            self.__grade = "A+"
        elif self.__percentage >= 70:
            self.__grade = "A"
        elif self.__percentage >= 60:
            self.__grade = "B+"
        elif self.__percentage >= 50:
            self.__grade = "B"
        elif self.__percentage >= 40:
            self.__grade = "C"
        else:
            self.__grade = "F"
    
    def determine_result(self):
        passed_subjects = sum(1 for mark in self.__marks_obtained if mark >= 40)
        
        if passed_subjects == 5:
            self.__result = "PASS"
        elif passed_subjects >= 3:
            self.__result = "COMPARTMENT"
        else:
            self.__result = "FAIL"
    
    def generate_report(self):
        self.calculate_total()
        self.calculate_percentage()
        self.assign_grade()
        self.determine_result()
        
        print("\n--- Grade Report ---")
        print(f"Roll Number: {self.__roll_number}")
        print(f"Name: {self.__name}")
        print(f"Total Marks: {self.__total_marks}/500")
        print(f"Percentage: {self.__percentage:.1f}%")
        print(f"Grade: {self.__grade}")
        print(f"Result: {self.__result}")

def main():
    calculator = GradeCalculator()
    calculator.get_student_details()
    calculator.generate_report()

if __name__ == "__main__":
    main()

Sample Output

When you run the program, it will prompt for student details and display the grade report ?

Enter Roll Number: 101
Enter Name: John Smith
Enter marks for 5 subjects:
Subject 1: 85
Subject 2: 78
Subject 3: 92
Subject 4: 67
Subject 5: 89

--- Grade Report ---
Roll Number: 101
Name: John Smith
Total Marks: 411/500
Percentage: 82.2%
Grade: A+
Result: PASS

Key Features

  • Encapsulation: Uses private attributes to protect student data

  • Grade Assignment: Automatically assigns grades based on percentage

  • Pass/Fail Logic: Determines result based on individual subject performance

  • Compartment System: Students passing 3+ subjects get compartment status

Conclusion

This grade calculator provides a complete solution for academic grade computation. It handles student data securely using encapsulation and provides clear grade assignments based on standard criteria. The program can be easily extended to handle more subjects or different grading systems.

Updated on: 2026-03-15T17:33:07+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements