You are on page 1of 20

BIRLA PUBLIC SCHOOL DOHA,QATAR

STUDENT MANAGMENT SYSTEM

By - Vedant Pawar
Class - XII - L
ACKNOWLEDGMENT

We are overwhelmed in all humbleness and gratefulness to


acknowledge our depth to all those who have helped us to put
these ideas, well above the level of simplicity and into
something concrete.

We would like to express our special thanks of gratitude to


our teacher, Miss. Litty Jacob who gave us the golden
opportunity to do this
wonderful project , which also helped us in doing a lot of
Research and we came to know about so many new
things.We are really thankful to them.

Any attempt at any level can‘t be satisfactorily completed


without the support and guidance of our parents and friends.
We would like to thank our parents who helped us a lot in
gathering different information, collecting data and guiding us
from time to time in making this project, despite of their busy
schedules, they gave us different ideas in making this project
unique
INDEX

SNO CONTENTS

1 PROJECT SYNOPSIS
2 CODE
3 OUTPUT
PROJECT
SYNOPSIS
REASON FOR CHOOSING THE PROJECT

The selection of the topic "student management" stems


from a fundamental recognition of the critical role that
effective student management plays in the educational
landscape. Education is a vital pillar of society, shaping
the future through the development of young minds.
Within this context, managing students in an organized
and efficient manner is essential for their academic
growth, personal development, and overall success.
This topic offers a comprehensive exploration of the
strategies, systems, and technologies that can optimize
the educational experience, ensuring that students
receive the necessary support and guidance for their
learning journey. By delving into student management,
we aim to shed light on how educational institutions
and educators can create an environment conducive to
learning, fostering holistic development and ultimately
empowering the next generation to thrive in an
ever-evolving world.
Introduction

What is Python?
Python was conceived in the late 1980s by Guido van
Rossum at Centrum Wiskunde &Informatica
(CVVI) in the Netherlands as a successor to ABC
programming language, which was inspired by SETL.

Python is an interpreted, object-oriented, high-level


programming language with dynamic semantics. Its
high-level built-in data structures, combined with
dynamic typing and dynamic binding, make it very
attractive for Rapid Application Development, as well
as for use as a scripting or glue language to connect
existing components together. Python's simple,
easy to learn syntax emphasizes readability and
therefore reduces the cost of program maintenance.
Python supports modules and packages, which
encourages program modularity and code reuse. The
Python interpreter and the extensive standard library
are available in source or binary form without charge
for all major platforms and can be freely distributed.
Debugging Python programs is easy: a bug or bad
input will never cause a segmentation fault. Instead,
when the interpreter discovers an error, it raises an
exception. When the program doesnt catch the
exception, the interpreter prints a stack trace. A source
level debugger allows inspection of local and global
variables, evaluation of arbitrary expressions, setting
breakpoints, stepping through the code a line at a time,
and so on. The debugger is written in Python itself,
testifying to Python;s introspective power.

Introduction to Matplotlib
Matplotlib is a plotting library for the Python
programming language and its numerical
mathematics extension NumPy. It provides an
object-oriented API for embedding plots into
applications using general-purpose GUI toolkits like
Tkinter. wxPython, Qt, or GTK. There is also a
procedural "pylab" interface based on a
state machine (like OpenGL), designed to closely
resemble that of MATLAB, though its use is
discouraged.
Matplotlib was originally written by John D. Hunter.
Since then, it has an active development
community and is distributed under a BSD-style
license

Introduction to Pandas
Pandas is an open-source library that is made
mainly for working with relational or labeled data
both easily and intuitively. It provides various data
structures and operations for manipulating
numerical data and time series.
This library is built on top of the NumPy library.
Pandas is fast and it has high performance &
productivity for users. Pandas were initially
developed by Wes McKinney in 2008 while he was
working at AQR Capital Management. He
convinced the AQR to allow him to open source the
Pandas. Another AQR employee, Chang She,
joined as the second major contributor to the library
in 2012.

Introduction to numpy
Numpy is an open-source library for effectively
using arrays. Numpy stands for Numerical Python,
was developed by Travis Oliphant in 2005.
Numerous other libraries in Python rely on it as a
critical data science library. It is extremely popular
since it makes working with multidimensional
arrays much easier and faster.

Some benefits of numpy include


1. Using NumPy ndarray objects for mathematical
operations can be up to 50 times faster than using
loops to iterate over native Python lists. The
efficiency gains are primarily attributable to NumPy
storage of array elements in an organized single
location within memory, elimination of redundancy
by having all elements be the same type, and full
utilization of modern CPUs. Operating on arrays
with thousands or millions of elements, which are
fairly common in data science, makes the
efficiency advantages particularly clear.
2. It provides an Indexing syntax for easily
accessing portions of data within an array.
3. It has built-in functions for linear algebra, array
transformations, and matrix math that make
working with arrays and math more convenient.
System Implementation

The Hardware Used:

12th Gen Intel® Core™ i5-12400 (18 MB cache, 6


cores, 12 threads,
2.50 GHz to 4.40 GHz Turbo), 8 GB, 1 x 8 GB,
DDR4, 3200 MHz, 512

GB, M.2, PCIe NVMe, SSD, Intel® UHD Graphics


730

The Software Used


1.Windows 10 as Operating System
2.Microsoft Word for Documentation
3.Microsoft Excel for CSV files
4.Jupyter Notebook(Anaconda 3) for code devopment
5.Pandas Library preinstalled
6.Matplotlib Library preinstalle
7.Numpy preinstalled
CODE
CSV file
import pandas as pd
import matplotlib.pyplot as plt

def main_menu():
print("\n------- Student Management System -------\n")
print("1. Create/Import New Dataframe")
print("2. Student Data Analysis")
print("3. Student Data Visualisation")
print("4. Export Dataframe to csv file")

def create_dataframe_menu():
print("\n------- Create Dataframe -------\n")
print("1. Create Dataframe")
print("2. Import Dataframe from csv file")
print("3. Add/Modify Custom Index")
print("4. Add/Modify Custom Column Head")
print("5. Return to main menu")

def analysis_menu():
print("\n------- Data Analysis using Python -------\n")
print("1. Display All records")
print("2. Print first nth records")
print("3. Print last nth records")
print("4. Print All records in order of Name")
print("5. Display student with maximum marks")
print("6. Display student with minimum marks")
print("7. Display students who have secured passing
marks")
print("8. Print distinct classes")
print("9. Add a row to Dataframe")
print("10. Delete a row from Dataframe")
print("11. Return to main menu")

def visualisation_menu():
print("\n------- Visualisation using Matplotlib -------\n")
print("1. Plot Line graph (Subject wise marks)")
print("2. Plot Bar graph (Students, Marks)")
print("3. Plot Horizontal Bar graph (Student, Class)")
print("4. Return to main menu")

cols =
['admn','name','dob','class','maths','english','science','m
arks']
df = pd.DataFrame([],columns = cols) # Create an
EmptyDataFrame
while True:
main_menu()
ch = int(input("Select Option: "))
if ch == 1:
# Create New Dataframe
create_dataframe_menu()
ch = int(input("Select Option: "))
if ch == 1:
data = []
while True:
ch = input("Add Row [y/n]")
if ch.lower() == 'y':
admn = int(input("Admission Number: "))
name = input("Student Name: ")
dob = input("DOB in dd-mm-yyyy format: ")
std = int(input("Class: "))
maths = float(input("Maths: "))
english = float(input("English: "))
science = float(input("Science: "))
marks = maths+english+science
data.append([admn, name, dob, std,
marks])
else:
break
df = pd.DataFrame(data, columns = cols)
elif ch == 2:
file = input("File name: ")
df = pd.read_csv(file)
elif ch == 3:
index_list = input("Index List: ").split(",")
df.index = index_list
elif ch == 4:
column_list= input("Column List: ").split(",")
df.columns = column_list
print(df)

elif ch == 2:
while True:
# Student Data Analysis
analysis_menu()
ch = int(input("Select Option: "))
if ch == 1:
print(df)
elif ch == 2:
nth = int(input("Enter no of rows to display: "))
print(df.head(nth))
elif ch == 3:
nth = int(input("Enter number of rows to
display: "))
print(df.tail(nth))
elif ch == 4:
print(df.sort_values(by='name'))
elif ch == 5:
print(df[df['marks'] == df['marks'].max()])
elif ch == 6:
print(df[df.marks == df["marks"].min()])
elif ch == 7:
print(df[df['marks']*100/240 >= 33])
elif ch == 8:
print(df['class'].unique())
elif ch == 9:
while True:
ch = input("Add Row [y/n]")
if ch.lower() == 'y':
admn = int(input("Admission Number: "))
name = input("Student Name: ")
dob = input("DOB in dd-mm-yyyy
format: ")
std = int(input("Class: "))
maths = float(input("Maths: "))
english = float(input("English: "))
science = float(input("Science: "))
marks = maths+english+science
df = df.append({"admn": admn,
"name":name,
"dob": dob, "class": std, "maths":
maths,
"english": english, "science": science,
"marks": marks}, ignore_index=True)
else:
break
elif ch == 10:
print("1. Delete Row by Index")
print("2. Delete Row by Admn No.")
ch = int(input("Select Option: "))
if ch == 1:
idx = int(input("Index to delete: "))
df = df.drop(index = idx)
elif ch == 2:
admn = int(input("Admn no to delete: "))
df = df.drop(df[df["admn"] == admn].index)
else:
print("Wrong Option Selected! ")
else:
print("Returning to main menu")
break
elif ch == 3:
while True:
# Student Data Visualisation
visualisation_menu()
ch = int(input("Select Option: "))
if ch == 1:
plt.plot(df['name'], df['maths'], label='Maths',
color = "blue", marker="*")
plt.plot(df['name'], df['english'],
label='English', color = "green", marker="*")
plt.plot(df['name'], df['science'],
label='Science', color = "purple", marker="*")
plt.xlabel("Student", fontsize=12)
plt.ylabel("Marks", fontsize=12)
plt.title("Subject Wise Marks of Students",
fontsize=16)
plt.legend()
plt.show()
elif ch == 2:
x_values = df["name"]
y_values = df['marks']
plt.bar(x_values, y_values, color = 'orange')
plt.xlabel("Students", fontsize=12)
plt.ylabel("Marks", fontsize=12)
plt.title("Students - Marks Visualisation",
fontsize=14)
plt.show()
elif ch == 3:
x_values = df["name"]
y_values = df["class"]
plt.barh(x_values, y_values, color =
'magenta')
plt.xlabel("Students", fontsize=12)
plt.ylabel("Class", fontsize=12)
plt.title("Students - Class Visualisation",
fontsize=16)
plt.show()
elif ch == 4:
print("Returning to main menu")
break
else:
print("Wrong Option Selected! ")
elif ch == 4:
# Export Dataframe to csv file
file = input("File name: ")
df.to_csv(file, index = False)
elif ch == 5:
# Exit
print("Bye ...")
exit()
else:
# Error Display and Exit
print("Error! Wrong option selected. ")
break

You might also like