Welcome, guest | Sign In | My Account | Store | Cart
# @author: Abhijeet vaidya
# @contact: abhijeetavaidya@gmail.com
# @license: MIT license(Free Open Source License)
# @Description: Gpa is Grade point average, which is use to determine the student academic pointer
#               based on the value of the grade he/she acquired in single semester, where as cgpa is cumlative
#               grade point average is to calculate the total credits and total grade acquired in
#               his/her entire academics. Here i have determined to use grade scale of two values
#               5.0 and 10.0, many other academics may have different grading system.For a different grades and   #               their grade values, You can change the value in method called getGradeData.For any bug report #               contact at above email-address

class Gpa(object):
   
# data attributes
   
"helps to calculate the Gpa and Cgpa"
    arg1
= None
    arg2
= None
    subData
= None
   
Scale = None
    credits
= None
    initCourse
= 0
    initgetCredit
= 0
    totalCredits
= 0
    temp
= 0

   
def getCourse(self):
       
"get the value of the no of course you registered"
       
self.arg1 = input("No of course you have registered: " )
       
pass
   
   
def getSubject(self,value):
       
"get the subject value"
       
self.arg2 = value
       
pass
   
   
def getScale(self):
       
"To get the scale value"
       
self.Scale = input("Enter the Scale value(Either 5 or 10): " )
       
pass
       
       
   
def getSubjectData(self):
       
"get the subject Data in string"
       
self.subData = raw_input("Enter the grade: " )
       
pass              
   
def getGradeData(self):
       
# To calculate grade for two scale,one is for 5.0 and other one for 10.0
       
if self.Scale == 10:
           
            grade1
= {'s':10,'a':9,'b':8,'c':7,'d':5,'e':3,'f':0}
            x
=grade1[self.subData]
       
       
else: #5.0 scale
            grade2
= {'a':5,'b':4,'c':3,'d':2,'e':1,'f':0}
            x
=grade2[self.subData]
       
return x
   
def getCredits(self):
       
"get credit value"
       
self.credits = input("Enter the credits for a subject:"  )
       
pass
   
   
def gpa(self):
       
print "Calculate GPA:"
        sem
= raw_input("Please Enter Semester: " )
       
self.getScale() #input the scale value
       
if self.Scale == 5 or self.Scale == 10:
           
self.getCourse()
           
if self.arg1 >= 2:
               
self.calculateGpa()
           
else:
               
print "In order to calculate Gpa you schould have atleast 2 subject minimum"
       
else:
           
print "you have not entered the scale correctly please try again"
       
pass
               
               
   
def calculateGpa(self):
       
"Method to calculate Gpa "
       
while self.initCourse!=self.arg1:
           
self.initCourse=self.initCourse+1
           
self.getCredits()
           
self.initgetCredit = self.credits
           
self.getSubjectData()
           
#type(self.getSubjectData())
           
self.temp = self.initgetCredit*self.getGradeData()+self.temp
           
self.totalCredits=self.totalCredits+self.initgetCredit
           
        gpa
= round((self.temp+.0)/(self.totalCredits+.0),2)
       
print "you have registered for total credits:"+" "+str(self.totalCredits)+" "+"and you have acquired GPA:\""+str(gpa)+"\""
       
pass
   
   
def cgpa(self):
       
print "Calculate your cgpa: "
        semesters
= input("Enter how many semester cgpa has to be found of: " )
        counter
= 0
        tempInit
= 0
        tempTotalCredits
= 0
       
self.getScale() #input the scale value
       
if self.Scale == 5 or self.Scale == 10:
           
while counter != semesters:
                counter
= counter+1
               
print "Please enter the details of the semester"+" "+str(counter)
               
self.getCourse()
               
self.calculateGpa()
                tempInit
= self.temp+tempInit
                tempTotalCredits
= tempTotalCredits + self.totalCredits
               
# re-assigning
               
self.arg1=0
               
self.initCourse =0
               
self.temp=0
               
self.totalCredits=0
               
print "\n"
               
            cgpa
= round((tempInit+.0)/(tempTotalCredits+.0),2)
           
           
print "you have registered for total credits:"+" "+str(tempTotalCredits)+" "+"and you have acquired CGPA:\""+str(cgpa)+"\" "    
       
else:
           
print "you have not entered the scale correctly please try again"
       
pass


if __name__ == '__main__': # main method
   
#how to calculate it

   
Init = Gpa() # Creating Instance

   
# for calculation of Cgpa (cumulative grade point average)
   
Init.cgpa()

   
# In Order to calculate Gpa for single semester
   
#Init.gpa()
   

#output:
"""
[abhi@localhost ~]$ python gpaCalculator.py

Calculate your cgpa:
Enter how many semester cgpa has to be found of: 2
Enter the Scale value(Either 5 or 10): 10
Please enter the details of the semester 1
No of course you have registered: 2
Enter the credits for a subject:4
Enter the grade: a
Enter the credits for a subject:4
Enter the grade: c
you have registered for total credits: 8 and you have acquired GPA:"
8.0"


Please enter the details of the semester 2
No of course you have registered: 3
Enter the credits for a subject:4
Enter the grade: b
Enter the credits for a subject:5
Enter the grade: a
Enter the credits for a subject:3
Enter the grade: c
you have registered for total credits: 12 and you have acquired GPA:"
8.17"


you have registered for total credits: 20 and you have acquired CGPA:"
8.1"    

"""

History