You are on page 1of 25

HOLY ANGELS PUBLIC SCHOOL

Computer Science

Student Management System

Name: Abel Siju Thomas


Class: XII A
Board Number:
Roll Number:
School: Holy Angels Public School, Pallipad
Page | 1
Project Details

Subject: Computer Science


School: HOLY ANGELS PUBLIC SCHOOL
Submitted By:
Class: XII A
Supervised By: Mrs. JULY JOSEPH
TOPIC: STUDENT MANAGEMENT SYSTEM
TIME REQUIRED: 3 Months

Page | 2
INDEX

1. Certificate
2. Acknowledgement
3. Introduction of the Project
4. Objective of the Project
5. Proposed System
6. System Development Life Cycle (SDLC)
7. Source Code
8. Output
9. Bibliography

Page | 3
CERTIFICATE
This is to certify that Abel Siju Thomas has
successfully completed the annual investigatory
project in the Academic Year 2023-24 as per the
CBSE syllabus for chemistry, class XII in Holy
Angels Public School, Pallipad

Signature: -

Teacher in charge

Examiner’s Signature Principal

Date: ___________ Institution Stamp

Page | 4
Acknowledgement
I sincerely thank our Computer Science teacher Mrs.
July Joseph for her guidance, encouragement and
support throughout the duration of the project.
Without her motivation and help the successful
completion of this project would not have been
possible.
I would also like to extend my gratitude to the entire
Computer department and Principal of Holy Angels
Public School Dr. Noushad.A for their constant
support.
Abel Siju Thomas XII A

Page | 5
PROJECT ON STUDENT
MANAGEMENT SYSTEM

INTRODUCTION

Our project Student Management system includes registration of students,


storing their details into the system i.e. computerized the process. Our
software has the facility to give a unique ID for every student and stores the
details of every student. It includes a search facility also –search by name,
contact and roll number .The data can be retrieved easily. The interface is
very, User-friendly. The data are well protected for personal use and makes
the data processing very fast

Page | 6
OBJECTIVES OF THE PROJECT

The objective of this project is to let the students apply the programming
knowledge into a real- world situation/problem and exposed the students
how programming skills helps in developing a good software.
• Write programs utilizing modern software tools.
• Apply object oriented programming principles effectively when
developing small to medium sized projects.
• Write effective procedural code to solve small to medium sized problems.
• Students will demonstrate a breadth of knowledge in computer science, as
exemplified in the areas of systems, theory and software development.
• Students will demonstrate ability to conduct a research or applied
Computer Science project, requiring writing and presentation skills which
exemplify scholarly style in computer science

Student Management System is software which is helpful for college as well


as the school authorities. In the current system all the activities are done
manually. It is very time consuming and costly. Our Student Management
System deals with the various activities related to managing student
records. Our Objective is computerizing the process of student records
management.

Page | 7
PROPOSED SYSTEM
The proposed software product is the Student Management System. The
system will be used in any School, College and coaching institute to get the
information from the student and then storing that data for future usage
the current system in use is a paper-based system. It is too slow and cannot
provide updated lists of students within a reasonable timeframe. The
intentions of the system are to reduce overtime pay and increase
productivity. Requirements statements in this document are both
functional and non-functional.

Page | 8
SYSTEM DEVELOPMENT LIFE
CYCLE (SDLC)

The systems development life cycle is a project management technique that divides
complex projects into smaller, more easily managed segments or phases. Segmenting
projects allows managers to verify the successful completion of project phases before
allocating resources to subsequent phases. Software development projects typically
include initiation, planning, design, development, testing, implementation, and
maintenance phases. However, the phases may be divided differently depending on the
organization involved. 9 For example, initial project activities might be designated as
request, requirements-definition, and planning phases, or initiation,
concept-development, and planning phases. End users of the system under development
should be involved in reviewing the output of each phase to ensure the system is being
built to deliver the needed functionality.

Source Code
Page | 9
Create a python project of Student Management System
Note:
• Display the options and ask the user to enter the choice.
• Show an in progress message.
• Create appropriate response.

• Allow the user to continue/ or quit the game.

Solutionsport pickle
import time
import os

def set_data():
print("ENTER STUDENT'S DETAILS")
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
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'])

def display_data_tabular(student):

print('{0:<8}{1:<20}{2:<10}{3:<10}{4:<10}{5:<10}{6:<10}'.format(student['rollno
'],
student['name'], student['english'],student['maths'],
student['physics'],

Page | 10
student['chemistry'],student['cs']))

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('{0:<8}{1:<20}{2:<10}{3:<10}{4:<10}{5:<10}{6:<10}'.format('Rollno',
'Name', 'English', 'Maths','Physics','Chemistry','CS'))
#read to the end of file.
while True:
try:
#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':
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

Page | 11
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
print('SEARCH RECORD')
rollno = int(input('Enter the rollno you want to search: '))
#read to the end of file.
while True:
try:
#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('DELETE RECORD')

try:
infile = open('student.dat', 'rb')
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)

Page | 12
found = True
break
else:
pickle.dump(student,outfile)
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

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':
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'])

Page | 13
ans=input('Wants to edit(y/n)? ')
if ans in 'yY':
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)

infile.close()
outfile.close()
os.remove("student.dat")
os.rename("temp.dat","student.dat")

def intro():
print("="*80)
print("{: ^80s}".format("STUDENT"))
print("{: ^80s}".format("REPORT CARD"))
print("{: ^80s}".format("PROJECT"))
print("{: ^80s}".format("MADE BY: PyForSchool.com"))
print("="*80)
print()

def main_menu():
time.sleep(1)
print("MAIN MENU")
print("1. REPORT MENU")
print("2. ADMIN MENU")
print("3. EXIT")

def report_menu():
time.sleep(1)
print("REPORT MENU")
print("1. CLASS RESULT")
print("2. STUDENT REPORT CARD")
print("3. BACK TO MAIN MENU")

def admin_menu():
time.sleep(1)
print("\nADMIN MENU")
print("1. CREATE STUDENT RECORD")
print("2. DISPLAY ALL STUDENTS RECORDS")
print("3. SEARCH STUDENT RECORD ")
print("4. MODIFY STUDENT RECORD ")

Page | 14
print("5. DELETE STUDENT RECORD ")
print("6. BACK TO MAIN MENU")

def main():
intro()
while(True):
main_menu()
choice = input('Enter choice(1-3): ')
print()

if choice == '1':
while True:
report_menu()
rchoice = input('Enter choice(1-3): ')
print()
if rchoice == '1':
class_result()
elifrchoice == '2':
search_record()
elifrchoice == '3':
break
else:
print('Invalid input !!!\n')
print()

elif choice == '2':


while True:
admin_menu()
echoice = input('Enter choice(1-6): ')
print()
if echoice == '1':
write_record()
elifechoice == '2':
read_records()
elifechoice == '3':
search_record()
elifechoice == '4':
modify_record()
elifechoice == '5':
delete_record()
elifechoice == '6':
break
else:
print('Invalid input !!!\n')

elif choice == '3':


print('Thanks for using Student Management System')
break
else:
print('Invalid input!!!')
print()

#call the main function.


main()

Page | 15
Page | 16
Output

Page | 17
Page | 18
Page | 19
Page | 20
Page | 21
Page | 22
Page | 23
Page | 24
Bibliography
1.W3Schools Online Web Tutorials

Page | 25

You might also like