0% found this document useful (0 votes)
14 views18 pages

Minimalist Black and White Blank Paper Document PDF

The document outlines an investigatory project on a Student Management System developed by Ahmad Ali for the academic year 2024-2025. It details the project's purpose, software and hardware specifications, advantages, and includes the complete Python source code. The system is designed to efficiently manage student information, allowing for operations such as adding, viewing, updating, and deleting student records.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views18 pages

Minimalist Black and White Blank Paper Document PDF

The document outlines an investigatory project on a Student Management System developed by Ahmad Ali for the academic year 2024-2025. It details the project's purpose, software and hardware specifications, advantages, and includes the complete Python source code. The system is designed to efficiently manage student information, allowing for operations such as adding, viewing, updating, and deleting student records.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Central Board of Secondary Education

BROWN WOOD PUBLIC SCHOOL

Chilkana Road Saharanpur


Session 2024-25

Computer Science

INVESTIGATORY PROJECT ON
STUDENT MANAGEMENT

Submitted To : Submitted By :

Mr. Abdul Hadi Mohammad huzaifa

12-A
Certification.
Investigatory Project Certificate.

This certifies that the Investigatory Project has been successfully


completed by Ahmad Ali,
Class XII, Section B,
for the academic year 2024–2025.

Designed, developed, and completed in the School Computer Lab,


reflecting dedication and excellence.

Crafted for success. Inspired by innovation.

External Examiner
Internal Examiner
Mr. Abdul Hadi
Signature Signature
Acknowledgement.
I, Ahmad Ali, Class XII-B, extend my heartfelt gratitude to my Computer
Science teacher, Mr. Abdul Hadi, whose invaluable support, guidance, and
encouragement made this project possible.

I am equally grateful to Brownwood Public School for providing access to


the state-of-the-art school laboratory, fostering an environment where ideas
are transformed into reality.

Crafted with guidance. Achieved through excellence.


Acknowledgment

I, Ahmad Ali, Class XII-A, extend my heartfelt gratitude to my Computer


Science teacher, Mr. Abdul Hadi, whose invaluable support, guidance, and
encouragement made this project possible.

Crafted with guidance. Achieved through excellence.


Index
Brief Overview
A summary of the project, outlining its purpose and functionality.

Software & Hardware Specifications


Details of the tools and components used to create the project.

Advantages of the Project


Key benefits and practical applications of the project.

Source Code in Python


The complete Python code developed for the project.

Output Screen
Screenshots and visuals showcasing the final output of the project.

Bibliography
References and resources consulted during the project’s development.

Effortlessly structured. Precisely organized.


Overview.
Student Management System is an innovative application
designed to streamline the process of managing student
information efficiently. The system enables users to perform
essential operations like adding, viewing, updating, and deleting
student records. With an intuitive interface, it simplifies data
handling for administrators, ensuring accuracy and reliability.

Built with a seamless integration of Python and MySQL, the


program leverages Python for logical operations and user
interaction, while MySQL serves as a robust backend database
for secure data storage.

Upon running the program, the user is prompted to log in or


access the main menu, where various functionalities are
available. The system ensures data consistency and offers a real-
world approach similar to management mechanisms used in
educational institutions at all levels.

Designed to manage. Built to excel.


Need of Computerization
The use of computerized quizzes is highly recommended for any
instructor teaching a course that is either large in size (with a
typical lecture format) or that requires that students to engage in
a significant amount of assigned readings. Students appear to
benefit from the use of such computerized quizzes as they
become actively engaged in the course material and study with
greater frequency throughout the semester

Computerized settings can be designed to provide students with


immediate feedback regarding their quiz grades, and allow them
to take each quiz more than once to provide greater mastery of
the material. It may be helpful to limit the number of quiz
attempts to three.

Automatic, computerized grading and entry of each student’s


highest quiz grades into the course gradebook will generate
significant time savings for the instructor, and provide students
with immediate feedback on their quiz performance.
Software and Hardware

Software Specifications. Hardware Specifications.


• Operating System: macOS •Processor: Apple Silicon
Ventura, macOS Monterey, (M1/M2) or Intel Core i3 and
or Windows 10/8/7 above
• Storage: Minimum 40 GB
• Platform: Python IDLE
available storage
3.7/3.8 or PyCharm
• RAM: 4 GB (macOS) or 1 GB
Community Edition
(Windows)
• Database: MySQL 8.0 or • Devices Supported: MacBook
higher Air, MacBook Pro, iMac, and
• Languages: Python (with compatible Windows PCs
essential libraries like
MySQL-connector) Engineered for performance.
Built for seamless integration.
Advantages of the Project
In the modern era, efficient management of student data is crucial. The
Student Management System is designed to simplify and enhance this
process, offering a seamless and intuitive experience.

Key advantages include:


• Streamlined Data Management: Effortlessly add, update, view, and
delete student records.
• Encourages Efficiency: Reduces manual work and ensures accurate
record-keeping.
• User-Friendly Interface: Designed for simplicity and ease of use,
making it accessible to all users.
• Responsive and Scalable: Adapts to various user needs, whether for
small institutions or larger organizations.
• Environmentally Friendly: Eliminates the need for paper records by
digitizing the process.
• Real-Time Updates: Ensures that any changes are immediately
reflected in the database.
• Enhanced Accuracy: Minimizes human errors in data entry and
management.
• Secure Data Storage: Powered by MySQL to maintain confidentiality
and integrity of information.

Built for simplicity. Powered by innovation.


import 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'],
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


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)
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'])
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 ")
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()
elif rchoice == '2':
search_record()
elif rchoice == '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()
elif echoice == '2':
read_records()
elif echoice == '3':
search_record()
elif echoice == '4':
modify_record()
elif echoice == '5':
delete_record()
elif echoice == '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()
================================================================================
STUDENT
REPORT CARD
PROJECT
MADE BY: PyForSchool.com
================================================================================

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): 1

ENTER STUDENT'S DETAILS


Enter roll number: 101
Enter name: John Doe
Enter Marks in English: 85
Enter Marks in Maths: 90
Enter Marks in Physics: 88
Enter Marks in Chemistry: 84
Enter Marks in CS: 92

Wants to enter more record (y/n)?: n

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): 2

STUDENT DETAILS..
Roll Number: 101
Name: John Doe
English: 85
Maths: 90
Physics: 88
Chemistry: 84
CS: 92

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): 6

MAIN MENU
1. REPORT MENU
2. ADMIN MENU
3. EXIT
Enter choice(1-3): 3

Thanks for using Student Management System

You might also like