Examination Module System
Examination Module System
Examination Module System
BARRACKPORE
SUBMITTED BY:
CLASS AND SECTION : XII-D
ROLL NUMBER:
TABLE OF CONTENTS
INTRODUCTION TO PYTHON.
INTRODUCTION TO THE PROJECT.
ACKNOWLEDGEMENT.
SYSTEMREQUIREMENTS.
BACKEND DETAILS.
FRONTEND DETAILS.
MOTIVE.
SCREEN SHOTS OF EXECUTION.
BIBLIOGRAPHY.
LIMITATIONS.
CERTIFICATE.
1 | Page
INTRODUCTION TO PYTHON
History of Python:
Python is a widely used general-purpose, high-level programming language. It was initially
designed by Guido van Rossum in 1991 and developed by Python Software Foundation. It was
mainly developed for emphasis on code readability, and its syntax allows programmers to
express concepts in fewer lines of code.
2 | Page
INTRODUCTION TO THE PROJECT
The Examination Module System software is an ERP software used in government and
private educational institutions in the senior secondary level.This software stores details of
students and their marks details in different subjects. We can check the report card of the
student and perform marks analysis by graphical method. This software helps us to create
profile for students, update marks and attendance detailsas per the requirement.
ACKNOWLEDGEMENT
I thank my Computer Science teacher Mr. Abhisek Roy for guidance and support. I am also
thankful to our principal Mrs. Moitreyee Mukherjee. I would also thank to my parent for
encouraging during the course of this project. Finally, I would like to thank CBSE for giving me
this opportunity to undertake this project.
3 | Page
SYSTEM REQUIREMENTS
HARDWARE REQUIREMENT:
SOFTWARE REQUIREMENT:
Windows 7 or higher
My-SQL server 5.5 or higher(as backend)
Python idle 3.6 or higher or spyder (as frontend).
Microsoft Word 2010 or higher for documentation.
BACKEND DETAILS
Code:
CREATE TABLE STUDENT(
adm_no INT(6) PRIMARY KEY,
4 | Page
NameVARCHAR(40),
classint(2),
section char(1));
Code:
5 | Page
grade char(1),
remarks varchar(50));
FRONTEND DETAILS
PROGRAM CODE
import sys
import matplotlib.pyplot as plt
import mysql.connector
mycon=mysql.connector.connect(host='localhost',user='root',
password='abhisek',database='exam')
mycur=mycon.cursor()
def Student_Profile():
sql="Insert into student(adm_no,name,class,section)values(%s,%s,%s,%s)"
print('\nPLEASE PROVIDE THE REQUIRED INFORMATION\n')
ad=input('\nENTER THE ADMISSION NUMBER TO REGISTER FOR EXAM:')
nm=input('\nENTER THE STUDENT NAME:')
cls=int(input('\nENTER THE CLASS(11/12):'))
sec=input('\nENTER THE SECTION(A-D):')
value=(ad,nm,cls,sec)
try:
mycur.execute(sql,value)
print(nm,'ADDED SUCCESSFULLY TO EXAM MODULE')
mycon.commit()
except:
print('UNABLE TO INSERT!!!!!')
def Edit_Profile():
sql="Update student set section=%s where adm_no=%s";
ph=input('\nENTER THE ADMISSION NUMBER WHOSE SECTION TO MODIFY:')
6 | Page
nm=input('\nENTER THE NEW SECTION(A-D):')
value=(nm,ph)
try:
mycur.execute(sql,value)
mycon.commit()
print('RECORD UPDATED SUCCESSFULLY')
except:
print('UNABLE TO UPDATE SECTION!!!!')
def Remove_Profile():
ph=input('\nENTER THE ADMISSION NUMBER TO DELETE:')
sql='Delete from student where Adm_no=%s'
value=(ph,)
try:
mycur.execute(sql,value)
mycon.commit()
print('RECORD DELETED SUCCESSFULLY')
except:
mycon.rollback()
print('UNABLE TO DELETE RECORD!!!')
def Record_Entry():
sql="Insert into
result(adm_no,exam_name,sub1,sub2,sub3,sub4,sub5,total,percentage,attendance,grade,r
emarks)values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
print('\nPLEASE PROVIDE THE REQUIRED INFORMATION\n')
ad=int(input('\nENTER THE ADMISSION NUMBER TO ENTER RECORD:'))
nm=input('\nENTER THE EXAM NAME:')
sub1=int(input('ENTER MARKS IN SUBJECT 1(MAX:100):'))
sub2=int(input('ENTER MARKS IN SUBJECT 2(MAX:100):'))
sub3=int(input('ENTER MARKS IN SUBJECT 3(MAX:100):'))
sub4=int(input('ENTER MARKS IN SUBJECT 4(MAX:100):'))
7 | Page
sub5=int(input('ENTER MARKS IN SUBJECT 5(MAX:100):'))
total=sub1+sub2+sub3+sub4+sub5
per=total//5
wrkday=int(input('ENTER TOTAL NUMBER OF WORKING DAYS:'))
present=int(input('ENTER NO OF DAYS PRESENT:'))
att=present/wrkday*100
att=int(att)
if(per>=90):
g='A'
rem='EXCELLENT PERFORMANCE!!'
elif(per>=75 and per<90):
g='B'
rem='VERY GOOD PERFORMANCE!!'
elif(per>=55 and per<=75):
g='C'
rem='SATISFACTORY PERFORMANCE!!'
elif(per>=35 and per<55):
g='D'
rem='AVERAGE PERFORMANCE!!'
else:
g='E'
rem='SCOPE FOR IMPROVEMENT!!'
value=(ad,nm,sub1,sub2,sub3,sub4,sub5,total,per,att,g,rem)
try:
mycur.execute(sql,value)
print('RECORD ADDED SUCCESSFULLY TO EXAM MODULE')
mycon.commit()
except:
print('UNABLE TO INSERT!!!!!')
8 | Page
def Report_Card():
ad=int(input('\nENTER THE ADMISSION NUMBER TO SEARCH:'))
sql1='Select * from student where adm_no=%s'
value=(ad,)
mycur.execute(sql1,value)
rec1=mycur.fetchone()
if(rec1!=None):
adm=rec1[0]
name=rec1[1]
cls=rec1[2]
sec=rec1[3]
sql2='Select * from result where adm_no=%s'
value=(ad,)
mycur.execute(sql2,value)
rec2=mycur.fetchone()
if(rec2!=None):
adm=rec2[0]
exname=rec2[1]
sub1=rec2[2]
sub2=rec2[3]
sub3=rec2[4]
sub4=rec2[5]
sub5=rec2[6]
total=rec2[7]
per=rec2[8]
att=rec2[9]
g=rec2[10]
rem=rec2[11]
if(rec1==None and rec2==None):
print('WRONG ADMISSION NUMBER GIVEN!!!!!!')
else:
9 | Page
print('\n\n--------REPORT CARD OF',name,'----------\n\n')
print('\nCLASS-',cls,'SECTION-',sec,'\n')
print('\n------------------------------\n')
print('\nRESULT OF',exname,'\n')
print('\n------------------------------\n')
if(sec=='A'):
print('\n ENGLISH : ',sub1)
print('\n HISTORY : ',sub2)
print('\n POL. SC : ',sub3)
print('\n ECONOMICS : ',sub4)
print('\n GEOGRAPHY : ',sub5)
print('\n TOTAL : ',total)
print('\n PERCENTAGE : ',per)
print('\n ATTENDANCE : ',att,'%')
print('\n GRADE : ',g)
print('\n REMAKS : ',rem)
elif(sec=='B'):
print('\n ENGLISH : ',sub1)
print('\n ACCOUNTANCY: ',sub2)
print('\n B.STUDIES : ',sub3)
print('\n ECONOMICS : ',sub4)
print('\n INFO.PRAC : ',sub5)
print('\n TOTAL : ',total)
print('\n PERCENTAGE : ',per)
print('\n ATTENDANCE : ',att,'%')
print('\n GRADE : ',g)
print('\n REMAKS : ',rem)
elif(sec=='C'):
print('\n ENGLISH : ',sub1)
print('\n PHYSICS : ',sub2)
print('\n COMP.SC : ',sub3)
10 | P a g e
print('\n CHEMISTRY : ',sub4)
print('\n MATHEMATICS: ',sub5)
print('\n TOTAL : ',total)
print('\n PERCENTAGE : ',per)
print('\n ATTENDANCE : ',att,'%')
print('\n GRADE : ',g)
print('\n REMAKS : ',rem)
elif(sec=='D'):
print('\n ENGLISH : ',sub1)
print('\n PHYSICS : ',sub2)
print('\n BIO.SC : ',sub3)
print('\n CHEMISTRY : ',sub4)
print('\n MATHEMATICS: ',sub5)
print('\n TOTAL : ',total)
print('\n PERCENTAGE : ',per)
print('\n ATTENDANCE : ',att,'%')
print('\n GRADE : ',g)
print('\n REMAKS : ',rem)
def Remove_Record():
ph=input('\nENTER THE ADMISSION NUMBER TO DELETE:')
sql='Delete from RESULT where Adm_no=%s'
value=(ph,)
try:
mycur.execute(sql,value)
mycon.commit()
print('RECORD DELETED SUCCESSFULLY')
except:
mycon.rollback()
print('UNABLE TO DELETE RECORD!!!')
11 | P a g e
def Graph():
ad=int(input('\nENTER THE ADMISSION NUMBER TO SEARCH:'))
sql1='Select * from result where adm_no=%s'
value=(ad,)
mycur.execute(sql1,value)
T=mycur.fetchone()
sql2='Select section from student where adm_no=%s';
mycur.execute(sql2,value)
s=mycur.fetchone()
L=[T[2],T[3],T[4],T[5],T[6]]
sec=s[0]
if(sec=='A'):
sub1,sub2,sub3,sub4,sub5='English','History','Pol.Sc','Economics','Geography'
elif(sec=='B'):
sub1,sub2,sub3,sub4,sub5='English','Accountancy','B.Studies','Economics','Info.Practice
s'
elif(sec=='C'):
sub1,sub2,sub3,sub4,sub5='English','Physics','Computer
Sc.','Chemistry','Mathematics'
elif(sec=='D'):
sub1,sub2,sub3,sub4,sub5='English','Physics','Biology','Chemistry','Mathematics'
sub=[sub1,sub2,sub3,sub4,sub5]
clr=('red','green','blue','orange','brown')
plt.bar(sub,L,color=clr)
plt.xlabel('Subjects')
plt.ylabel('Marks')
plt.title('Marks Analysis')
plt.show()
def Close():
12 | P a g e
print('\nTHANK YOU FOR USING THE APPLICATION')
sys.exit()
13 | P a g e
MOTIVE
To maintain the student profile, marks and attendance details of the students of class-XI and XII.
To generate report card displaying the marks of a student in different subjects in a particular
exam and represent the same by graphical analysis.
Globalized usage.
14 | P a g e
SCREEN SHOTS OF EXECUTION
MAIN MENU
15 | P a g e
EDITING STUDENT PROFILE
16 | P a g e
GENERATING REPORT CARD
PRODUCING GRAPH
17 | P a g e
DELETING STUDENTS PROFILE
18 | P a g e
19 | P a g e
BIBLIOGRAPHY
BOOKS:
WEBSITES:
www.geeksforgeeks.org
https://docs.python.org/3/
https://www.w3schools.com/python/
20 | P a g e
LIMITATIONS
The Project has no provision to update marks after the report card is generated.
The project does not incorporate the provision of producing the result of the entire
class for a particular examination.
The project is limited to the examination system of class-XI and XII and does not
provide the yearly summary sheet report generation facility.
CERTIFICATE
21 | P a g e
This is to certify that of class XII, Guru Nanak Public School,
Ramgarh has successfully completed his/her project in Computer Science Practical for the
AISSCE as prescribed by CBSE in the year 2021-2022.
Roll No :
22 | P a g e