Professional Documents
Culture Documents
Result Analaysis System
Result Analaysis System
Objective
The main objective of the Student Result Analysis System is to provide
a better way to analyse the performance of students in a given exam.
The system will allow users to compare the results of different
students, compare their performance across different subjects and to
identify the areas in which they need to work more in order to improve.
The system will also provide users with various visualisations which will
help them to understand the data better.
Proposed System
Analysis The analysis of the data is done using Python code. The code
is used to calculate the marks obtained by each student in each
subject and the grade obtained by them. It also calculates the average
marks and grades obtained by each student across all the subjects.
The code is also used to generate various visualisations which help the
user to understand the data better. The visualisations include bar
graphs, line graphs and scatter plots which can be used to compare
the performance of different students and to identify the areas in which
they need to work more in order to improve.
LIMITATIONS OF OUR PROJECT:
1- User ID and Password control is missing
2- Online and remote operation is missing
5- Internet and cloud based database is missing
HARDWARE AND SOFTWARE REQUIREMENT
Hardware Requirements:
A computer or laptop with OS :-windows 7 or above
Processor : x86 64-bit CPU (Intel / AMD architecture)
RAM : 4 GB RAM
Disk Space : 5 GB free disk space.
Software Requirements:
Python 3.6.x or higher version
Pandas library preinstalled
Matplotlib library preinstalled
Ms-Office Pre-installed for documentation
OPERATING SYSTEM
global df
df=pd.read_csv("Book1.csv")
df['Hindi']=df['Hindi'].fillna(0)
sch_code=int(input("Enter School Code : "))
session=input("Enter Session : ")
ttl=df.Eng+df.Hindi+df.Maths+df.Science+df.S_Sc
df.insert(8,'Total',ttl)
df.insert(9,'Percent',df.Total*100/500)
def menu():
while True:
print("-------------------------------------------------------------------------------------------
---------------")
print("Session :",session," Sch. No-
",sch_code)
print("-------------------------------------------------------------------------------------------
---------------")
print(''' RED ROSE SECONDARY SCHOOL EXAMINATION RESULT
ANALYSIS
---------------------------------------------------------------------------------------------------------
elif ch==2:
per_analysis()
elif ch==3:
distinction()
elif ch==4:
passed()
elif ch==5:
ninety_above()
elif ch==6:
top_10()
else:
my_chance=input("Do you really want to exit?(y/n)")
if my_chance=='y' or my_chance=='Y':
str="THANK YOU VERY MUCH FOR USING THIS PROJECT.
EXITING....."
for k in str:
print(k,end='')
time.sleep(0.1)
sys.exit()
else:
print("\nInvalid choice. Try again")
continue
c1=(count_90/df.Name.count())*100
c2=(count_75/df.Name.count())*100
c3=(count_60/df.Name.count())*100
c4=(count_45/df.Name.count())*100
c5=(count_33/df.Name.count())*100
c6=(count_32/df.Name.count())*100
per_range=[c1,c2,c3,c4,c5,c6]
dict1={"No of
Students":[count_90,count_75,count_60,count_45,count_33,count_32],"Percent
STD":per_range}
percent_df=pd.DataFrame(dict1)
percent_df.index=["90.0-100.0%","75.0-89.9%","60.0-74.9%","45.0-59.9%","33.0-
44.9%","Less than 33"]
print(percent_df)
print()
print()
while True:
choice=input("Enter type of chart : L-Line, B-Bar, X-Exit :")
if choice=='L':
percent_df.plot(kind="line",rot=30,linewidth=3,linestyle='dashed',marker='^',markered
gecolor='r')
elif choice=='B':
percent_df.plot(kind="bar",rot=30)
else:
print("Exiting......")
break
plt.xlabel('Percentage Range->',color='g',fontsize=12)
plt.ylabel('No.of Students->',color='g',fontsize=12)
gtitle1="RED ROSE SENIOR SECONDARY SCHOOL"+"\nPercentage Range
Analysis "+session
plt.title(gtitle1,fontsize=16,color='b')
plt.grid()
plt.show()
for i in range(len(df)):
if df.Eng[i]>=75:
eng_d+=1
if df.Hindi[i]>=75:
hin_d+=1
if df.Maths[i]>=75:
math_d+=1
if df.Science[i]>=75:
sci_d+=1
if df.S_Sc[i]>=75:
sst_d+=1
sub_tot=[eng_t,hin_t,math_t,sci_t,sst_t]
sub_dist=[eng_d,hin_d,math_d,sci_d,sst_d]
dist_df=pd.DataFrame({"Total Appear":sub_tot, "Distinction":sub_dist})
dist_df.index=['English','Hindi','Maths','Science','S.Sc']
print(dist_df)
print()
print()
while True:
choice=input("Enter type of chart : L-Line, B-Bar, X-Exit :")
if choice=='L':
dist_df.plot(kind="line",rot=30,linewidth=3,linestyle='dashed',marker='^',markeredgec
olor='r')
elif choice=='B':
dist_df.plot(kind="bar",color=['purple','red'],rot=30)
else:
print("Exiting......")
break
plt.xlabel('Subject ->',color='r',fontsize=12)
plt.ylabel('No.of Students->',color='r',fontsize=12)
gtitle1="RED ROSE SENIOR SECONDARY SCHOOL"+"\nSubject Wise
Distinction Analysis "+session
plt.title(gtitle1,fontsize=16,color='b')
plt.grid()
plt.show()
pass_df.plot(kind="line",rot=30,linewidth=3,linestyle='dashed',marker='^',markeredge
color='r')
elif choice=='B':
pass_df.plot(kind="bar",color=['purple','red'],rot=30)
else:
print("Exiting......")
break
plt.xlabel('Subject ->',color='r',fontsize=12)
plt.ylabel('No.of Students->',color='r',fontsize=12)
gtitle1="RED ROSE SENIOR SECONDARY SCHOOL"+"\nSubject Wise Total
vs Pass Analysis "+session
plt.title(gtitle1,fontsize=16,color='b')
plt.grid()
plt.show()
sub_tot=[eng_t,hin_t,math_t,sci_t,sst_t]
sub_ab_90=[eng_90,hin_90,math_90,sci_90,sst_90]
ab_90_df=pd.DataFrame({"Total Appear":sub_tot, "90 & Above":sub_ab_90})
ab_90_df.index=['English','Hindi','Maths','Science','S.Sc']
print(ab_90_df)
print()
print()
while True:
choice=input("Enter type of chart : L-Line, B-Bar, X-Exit :")
if choice=='L':
ab_90_df.plot(kind="line",rot=30,linewidth=3,linestyle='dashed',marker='^',markeredg
ecolor='r')
elif choice=='B':
ab_90_df.plot(kind="bar",color=['purple','red'],rot=30)
else:
print("Exiting......")
break
plt.xlabel('Subject ->',color='r',fontsize=12)
plt.ylabel('No.of Students->',color='r',fontsize=12)
gtitle1="RED ROSE SENIOR SECONDARY SCHOOL"+"\nSubject Wise Total
vs Above 90% Analysis "+session
plt.title(gtitle1,fontsize=16,color='b')
plt.grid()
plt.show()
# Top 10 Students
def top_10():
df_top10=df.sort_values(by='Percent', ascending=False).head(10)
print("----------------------------- TOP 10 STUDENTS (PERCENTAGE WISE) -------
------------------------")
print(sch_code,"-","RED ROSE SENIOR SECONDARY SCHOOL","
Session :",session)
print("----------------------------------------------------------------------------------------------
--------------------------")
print(df_top10[['Name','Percent']])
print()
print()
print("Hit Enter to continue........")
key=input()
Main Page
********