1
KENDRIYA VIDYALAYA
UTTARKASHI
ACADEMIC YEAR: 2021-22
PROJECT REPORT ON
STUDENT MANAGEMENT SYSTEM
ROLL NO : 01, 09
NAME : 1.VINAYAK MISHRA
2. KRISHNA POKHRIYAL
CLASS : XII A
SUBJECT : COMPUTER SCIENCE
SUB CODE : 083
PROJECT GUIDE: Mrs. RITIKA BISHT
PGT (COMPUTER SCIENCE)
2
TABLE OF CONTENTS [ T O C ]
S.N PAGE
DESCRIPTION
O NO
1 ACKNOWLEDGEMENT 3
2 CERTIFICATE
4
3 INTRODUCTION
5
4 OBJECTIVES OF THE PROJECT
7
5 PROPOSED SYSTEM
8
7 CODING
10
8 SAMPLE OUTPUTS
26
9 HARDWARE AND SOFTWARE REQUIREMENTS
28
10 REFRENCES AND BIBLIOGRAPHY
29
KENDRIYA VIDYALAYA UTTARKASHI
3
ACKNOWLEDGEMENT
I would like to express my sincere gratitude
to my Computer Science teacher Mrs. RITIKA
BISHT THAPA Mam for their vital support
and in the guidance of our honourable
Principal Mrs. MANISHA MAKHIJA Mam.I
would also like to express my gratitude to
my family who gave their valuable time and
contributed in completeing this task and
supported me morally and financially
towards the completition of this project.
4
CERTIFICATE
This is to certify that Vinayak Mishra and
Krishna Pokhriyal of Class XII have prepared
the project on STUDENT MANAGEMENT
SYSTEM. This report is the result of his
efforts and endeavors towards the project.
The report is found worthy of acceptance as
final project report for the subject Computer
Science of Class XII, and has prepared under
my guidance.
Mrs. Ritika Bisht
Subject Teacher
5
INTRODUCTION:
The “Student Management System” has been developed to
override the problems prevailing in the practicing manual
system.This software is supported to eliminate and in some
cases reduce the hardships faced by this existing
system.Moreover this system is designed for the particular
need of the company to carry out operations in a smooth
and effective manner.
The application is reduced as much as possible to avoid
errors while entering the data.It also provides error
message while entering invalid data.No formal knowledge is
needed for the user to use this system.Thus by this all it
proves it is user-friendly.Student Management System, as
described above, can lead to error free, secure, reliable and
fast manangement system.It can assist the user to
concentrate on record keeping.Thus it will help organization
in better utilization of resources.
Every organization, whether big or small, has challenges to
overcome and managing the informations of fees, student
profiles, exams, courses etc.Every Student Management
6
System has different student needs, therefore we design
exclusive employee management systems that are adapted
to your managerial requirements.This is designed to assist
in strategic planning,and will help you ensure that your
organization is equipped with the right level of information
and details for your future goals .Also,for those busy
executive who are always on the go,our systems come with
remote access features,which will allow you to manage
your workforce anytime,at alltimes.These systems will
ultimately allow you to better manage resources.
7
Objectives of the Project
The main objective of the Project on Student Management
System is to manage the details of
student,fees,logins,course.It manages all the information
about student,exams,courses,student.The project is totally
built at administrative end and thus only the administrator
is guaranteed the access. The purpose of the project is to
build an application program to reduce the manual work for
managing the student, fees, exams; logins.It tracks all the
details about the logins, profiles, and courses.
Functionalities provided by Student
Management System are as follows;
Provides the searching facilities based on various
factors. Such as student, logins, profiles, etc.
Student Management System also manages the
exam details online for profiles details, courses
details, etc.
8
It tracks all the information of fees, exams,
profiles, etc.
Shows the information and description of the
student logins.
It deals with monitoring the information and
transactions of profiles.
Editing, adding and updating of records is
improved which results in proper resource
management of student data.
Integration of all records of Courses.
The Proposed System has the following
requirements;
System needs store information about new entry
of student.
System needs to help the internal staff to keep
information of fees and find them as per various
queries.
System need to maintain quantity record.
9
System need to keep the record of Logins.
System need to update and delete the record.
System also needs a search area.
It also needs a security system to prevent data.
10
# Coding :
Program (student-management-system.py)
import pickle
import time
import os
def set_data():
rollno = int(input('Enter roll number: '))
name = input('Enter name: ')
english = int(input('Enter Marks in English: '))
maths = int(input('Enter Marks in Maths: '))
physics = int(input('Enter Marks in Physics: '))
chemistry = int(input('Enter Marks in Chemistry: '))
cs = int(input('Enter Marks in CS: '))
print()
#create a dictionary
11
student = {}
student['rollno'] = rollno
student['name'] = name
student['english'] = English
student['maths'] = maths
student['physics'] = physics
student['chemistry'] = chemistry
student['cs'] = cs
return student
def display_data(student):
print('\nSTUDENT DETAILS..')
print('Roll Number:', student['rollno'])
print('Name:', student['name'])
print('English:', student['english'])
print('Maths:', student['maths'])
print('Physics:', student['physics'])
print('Chemistry:', student['chemistry'])
print('CS:', student['cs'])
12
def display_data_tabular(student):
print(student['rollno'], student['name'],
student['english'], student['maths'], student['physics'],
student['chemistry'], student['cs'],sep='\t')
def class_result():
#open file in binary mode for reading
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found..')
print('Go to admin menu to create record')
return
print('\nRollno', ' Name', '\tEnglish',
'Maths','Physics','Chemistry','CS')
#read to the end of file.
while True:
try:
13
#reading the oject from file
student = pickle.load(infile)
#display the record
display_data_tabular(student)
except EOFError:
break
#close the file
infile.close()
def write_record():
#open file in binary mode for writing.
outfile = open('student.dat', 'ab')
while(True):
#serialize the record and writing to file
pickle.dump(set_data(), outfile)
ans = input('Wants to enter more record (y/n)?: ')
if ans in 'nN':
14
break
#close the file
outfile.close()
def read_records():
#open file in binary mode for reading
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found..')
return
#read to the end of file.
while True:
try:
#reading the oject from file
student = pickle.load(infile)
#display the record
15
display_data(student)
except EOFError:
break
#close the file
infile.close()
def search_record():
#open file in binary mode for reading
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record..')
return
found = False
rollno = int(input('Enter the rollno you want to search: '))
#read to the end of file.
while True:
try:
16
#reading the oject from file
student = pickle.load(infile)
if student['rollno'] == rollno:
#display the record
display_data(student)
found = True
break
except EOFError:
break
if found==False:
print('Record not found!!')
#close the file
infile.close()
def delete_record():
print('\nDELETE RECORD')
try:
infile = open('student.dat', 'rb')
17
except FileNotFoundError:
print('No record found to delete..')
return
outfile = open("temp.dat","wb")
found = False
rollno = int(input('Enter roll number: '))
while True:
try:
#reading the oject from file
student = pickle.load(infile)
#display record if found and set flag
if student['rollno'] == rollno:
display_data(student)
found = True
break
else:
pickle.dump(student,outfile)
18
except EOFError:
break
if found == False:
print('Record not Found')
print()
else:
print("record found and deleted")
infile.close()
outfile.close()
os.remove("student.dat")
os.rename("temp.dat","student.dat")
def modify_record():
print('\nMODIFY RECORD')
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found to modify..')
return
19
found = False
outfile = open("temp.dat","wb")
rollno = int(input('Enter roll number: '))
while True:
try:
#reading the oject from file
student = pickle.load(infile)
#display record if found and set flag
if student['rollno'] == rollno:
print('Name:',student['name'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['name'] = input("Enter the
name ")
print('English marks:',student['english'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
20
student['english'] = int(input("Enter
new marks: "))
print('Maths marks:',student['maths'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['maths'] = int(input("Enter
new marks: "))
print('Physics
marks:',student['physics'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['physics'] =
int(input("Enter new marks: "))
print('Chemistry
marks:',student['chemistry'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
21
student['chemistry'] =
int(input("Enter new marks: "))
print('CS marks:',student['cs'])
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
student['cs'] = int(input("Enter
new marks: "))
pickle.dump(student,outfile)
found = True
break
else
pickle.dump(student,outfile)
except EOFError:
break
if found == False:
print('Record not Found')
else:
print('Record updated')
display_data(student)
22
infile.close()
outfile.close()
os.remove("student.dat")
os.rename("temp.dat","student.dat")
def intro():
print("=x=x=x=x=x=x=x=x=x=x=x=x=x=")
print("STUDENT")
print("REPORT CARD")
print("PROJECT")
print("MADE BY : YOUR NAME")
print("SCHOOL : SCHOOL NAME")
print("=x=x=x=x=x=x=x=x=x=x=x=x=x=")
print()
time.sleep(1)
def main_menu():
print("MAIN MENU")
print("1. REPORT MENU")
print("2. ADMIN MENU")
23
print("3. EXIT")
def report_menu():
print("REPORT MENU")
print("1. CLASS RESULT")
print("2. STUDENT REPORT CARD")
print("3. BACK TO MAIN MENU")
def admin_menu():
print("ADMIN MENU")
print("1. CREATE STUDENT RECORD")
print("2. DISPLAY ALL STUDENTS RECORDS")
print("3. SEARCH STUDENT RECORD ")
print("4. MODIFY STUDENT RECORD ")
print("5. DELETE STUDENT RECORD ")
print("6. BACK TO MAIN MENU")
def main():
intro()
while(True):
24
main_menu()
choice = input('Enter choice(1-3): ')
print()
if choice == '1':
report_menu()
rchoice = input('Enter choice(1-4): ')
if rchoice == '1':
class_result()
elif rchoice == '2':
search_record()
elif rchoice == '3':
pass
else:
print('Invalid input !!!')
print()
elif choice == '2':
admin_menu()
echoice = input('Enter choice(1-6): ')
25
if echoice == '1':
write_record()
elif echoice == '2':
read_records()
elif echoice == '3':
search_record()
elif echoice == '4':
modify_record()
elif echoice == '5':
delete_record()
elif echoice == '6':
pass
else:
print('Invalid input !!!')
print()
elif choice == '3':
break
else:
print('Invalid input!!!')
print()
26
#call the main function.
main()
#Sample Output:
=x=x=x=x=x=x=x=x=x=x=x=x=x=
STUDENT
REPORT CARD
PROJECT
MADE BY: YOUR NAME
SCHOOL: SCHOOL NAME
=x=x=x=x=x=x=x=x=x=x=x=x=x=
MAIN MENU
1. REPORT MENU
2. ADMIN MENU
3. EXIT
Enter choice (1-3): 1
REPORT MENU
1. CLASS RESULT
2. STUDENT REPORT CARD
3. BACK TO MAIN MENU
27
Enter choice (1-4): 3
MAIN MENU
1. REPORT MENU
2. ADMIN MENU
3. EXIT
Enter choice (1-3): 2
ADMIN MENU
1. CREATE STUDENT RECORD
2. DISPLAY ALL STUDENTS RECORDS
3. SEARCH STUDENT RECORD
4. MODIFY STUDENT RECORD
5. DELETE STUDENT RECORD
6. BACK TO MAIN MENU
Enter choice (1-6):
28
REQUIREMENTS:-
# Hardware required:
Printer: to print the required documents of the
project.
Compact Drive.
Processor: Pentium III or above.
Ram: 64 or above.
Hardisk: 20 GB or above.
#Software used:
Operating system: windows 7 ultimate.
Python, for execution of program and file
editor, for presentation of output.
29
References and
Bibliography:
1) Computer Science with python
Sumita Arora.
2) PY.charm.in
3) Webschool.com
4) Wikipedia.com
30