Professional Documents
Culture Documents
Computer Science
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
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
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
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.
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)
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
def read_records():
#open file in binary mode for reading
try:
infile = open('student.dat', 'rb')
except FileNotFoundError:
print('No record found..')
return
Page | 11
display_data(student)
except EOFError:
break
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!!')
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
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)
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()
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