Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
