0% found this document useful (0 votes)
21 views23 pages

stu topic project cs

Uploaded by

rrajan15210
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views23 pages

stu topic project cs

Uploaded by

rrajan15210
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 23

ACKNOWLEDGEMENT

Foremost we the associates of the project “STUDENT


MANAGEMENT SYSTEM USING BINARY FILE” convey our gratitude
and heartfelt thanks to our Computer Science Teacher Mr. D
PRABHAKARAN, KAMARAJ ENGLISH MEDIUM SENIOR SECONDARY SCHOOL,
PORT BLAIR, for encouraging me in our entire endeavour and permitting
me to take up this project.

I also extend my humble thanks to the respected principal, Mrs. V S


BEENA, for her guidance, encouragement, constant review on the
progress of the project and her moral support for providing all the
requirements and inspiring us throughout this project.

For the execution of this project and report I also show my Zealous
gratitude to other teaching staffs of our school for bestowing their
valuable ideas and also imbibing in us the necessary human values like
‘Team Work’ without which I wouldn’t have dared to undertake this
project.
Introduction & Objective

Introduction:

In the dynamic landscape of educational institutions, efficient


management of student information is crucial for streamlined
administration and enhanced academic performance. The Student
Management System (SMS) serves as a comprehensive solution to
address the complex tasks associated with student data, academic
records, and administrative processes. This project harnesses the power
of Python programming language and MySQL database management
system to create a robust and user-friendly system for managing student-
related information.

Key Features:

User-Friendly Interface: The Student Management System offers an


intuitive and user-friendly interface that facilitates easy navigation for
administrators, teachers, and students alike. Through a well-designed
graphical user interface, users can access and manage a multitude of
functionalities seamlessly.

Student Registration and Profile Management: The system allows


for the efficient registration of new students, with comprehensive profiles
that include personal details, academic records, and contact information.
It provides the capability to update and manage student profiles
throughout their academic journey.

Course and Subject Management: Course and subject information is


centrally managed within the system, enabling administrators to organize
and update the academic curriculum effortlessly. This includes adding or
modifying courses, assigning subjects, and maintaining a structured
academic framework.

Attendance Tracking: The SMS facilitates real-time attendance tracking,


providing an accurate and up-to-date record of student attendance. This
feature aids educators in monitoring student participation and identifying
patterns that may impact academic performance.
Grading and Result Generation: The system automates the grading
process, allowing teachers to input and calculate grades efficiently. It also
supports the generation of comprehensive result sheets, ensuring
transparency and accessibility for both students and their guardians.

Communication and Notifications: To enhance communication


between stakeholders, the SMS incorporates a messaging system for
administrators, teachers, and students. It also supports automated
notifications for important events such as examination schedules, grade
updates, and other relevant announcements.

Security and Access Control: Robust security measures are


implemented to safeguard sensitive student data. Access controls are
enforced to ensure that only authorized personnel can view and modify
specific information, maintaining the confidentiality and integrity of the
system.

Data Analytics and Reporting: The system includes features for


generating insightful reports and analytics, empowering administrators to
make data-driven decisions. This can include trends in attendance,
academic performance, and other relevant metrics.

By leveraging the capabilities of Python and MySQL, this Student


Management System aims to revolutionize the way educational
institutions handle student information, providing a scalable, efficient, and
secure platform for managing the diverse aspects of student
administration. Through the integration of modern technologies, this
project contributes to the advancement of educational management
systems, fostering a conducive environment for academic excellence and
administrative efficiency.
Scope of the Project
The Student Management System (SMS) project using Python and MySQL
encompasses a broad scope, aiming to address various facets of student
administration and enhance overall operational efficiency within
educational institutions. The project's scope includes:

Student Information Management:

Registration and maintenance of student profiles with personal details,


academic records, and contact information.

Dynamic updating of student information throughout their academic


journey.

Course and Subject Management:

Creation and modification of academic courses and subjects.

Assignment of subjects to specific courses, ensuring a structured


curriculum.

Attendance Tracking:

Real-time monitoring and recording of student attendance.

Analysis of attendance data to identify patterns and trends.

Grading and Result Management:

Automated grading system for efficient input and calculation of student


grades.

Generation of comprehensive result sheets for students and teachers.

Communication and Notifications:

Implementation of a messaging system for communication among


administrators, teachers, and students.

Automated notifications for important events, such as examination


schedules, grade updates, and announcements.

Security Measures:
Implementation of robust security measures to protect sensitive student
data.

Access control mechanisms to ensure that only authorized personnel can


access and modify specific information.

Data Analytics and Reporting:

Integration of features for generating reports and analytics.

Presentation of insights on attendance trends, academic performance,


and other relevant metrics.

User-Friendly Interface:

Development of an intuitive graphical user interface for administrators,


teachers, and students.

Ensuring ease of navigation and user satisfaction.

Scalability:

Designing the system to handle growth in the number of students,


courses, and data volume.

Ensuring that the system remains efficient and responsive as the


institution expands.

Integration with Python and MySQL:

Utilization of Python programming language for system development,


ensuring code readability and maintainability.

Integration with MySQL database management system for efficient data


storage and retrieval.

Documentation:

Comprehensive documentation of the system architecture, functionalities,


and user guides.

Ensuring that future developers and administrators can understand and


maintain the system.

Testing and Quality Assurance:

Implementation of thorough testing processes to identify and rectify bugs


and errors.
Ensuring the reliability and robustness of the system.

Future Enhancements:

Provision for future enhancements and updates to accommodate


changing educational requirements and technologies.

Planning for additional features or modules that may be identified after


the initial implementation.

By defining such a comprehensive scope, the Student Management


System project using Python and MySQL aims to provide a holistic solution
to the challenges faced in student administration, fostering a more
organized and efficient educational environment.
Python Overview

Python, created by Guido van Rossum and first released in 1991, is a


versatile, high-level programming language known for its readability,
simplicity, and flexibility. It has gained widespread popularity across
various domains, from web development to scientific computing, data
analysis, artificial intelligence, and more. Here's an overview of key
aspects of Python:

Readability and Simplicity:

Python emphasizes readability, using a clean and straightforward syntax.

The language's design philosophy prioritizes code readability, making it an


ideal choice for beginners and experienced developers alike.

General-Purpose Language:

Python is a general-purpose programming language, suitable for a wide


range of applications.

It supports both procedural and object-oriented programming paradigms.

Interpreted and Interactive:

Python is an interpreted language, which means that code can be


executed line by line, facilitating debugging and testing.

Interactive Python shells (such as IDLE or Jupyter Notebooks) enable real-


time code execution and experimentation.

Extensive Standard Library:

Python comes with a rich standard library that provides modules and
packages for various tasks, reducing the need for external dependencies.

The standard library covers areas like file I/O, networking, regular
expressions, and more.

Dynamic Typing and Memory Management:

Python is dynamically typed, allowing developers to assign values without


declaring the variable type explicitly.
Memory management is handled by a built-in garbage collector,
simplifying memory allocation and deallocation.

High-Level Data Structures:

Python provides built-in high-level data structures like lists, dictionaries,


sets, and tuples.

These data structures, along with their associated methods, make it easy
to implement complex algorithms and data manipulations.

Community and Ecosystem:

Python has a vibrant and active community of developers worldwide.

The Python Package Index (PyPI) hosts a vast collection of third-party


libraries and frameworks, contributing to the language's ecosystem.

Versatility in Application Domains:

Python is widely used in various domains, including web development


(Django, Flask), data science (NumPy, pandas), machine learning
(TensorFlow, PyTorch), and automation (scripting, system administration).

Cross-Platform Compatibility:

Python is cross-platform, meaning code written in Python can run on


different operating systems without modification.

This portability enhances its suitability for diverse environments.

Open Source and Community-Driven Development:

Python is an open-source language, and its development is guided by the


Python Enhancement Proposals (PEP) process.

The community actively contributes to language improvements, bug fixes,


and new features.

Popularity and Industry Adoption:

Python has consistently ranked among the top programming languages in


popularity indices.

Its ease of learning and extensive community support contribute to its


widespread adoption in academia, industry, and the tech community.

In summary, Python's readability, versatility, and extensive community


support have made it a preferred choice for developers across various
domains. Its user-friendly syntax and powerful features make it an
excellent language for both beginners and experienced programmers.

Hardware and Software Requirement

Front End:

Python3.8.2

INSTALL MYNSQL.CONECTOR

Back End:

My Sql

Operating System:

Windows10

Hardware Requirements:

Operating System:

x86 64-bit CPU (Intel / AMD architecture)


4 GB RAM.
5 GB free disk space.
Source Code

# Student management system with mysql


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()

Output Screen and Database


Structure
Output Screen
Bibliography
1. Computer Science with Python -Sumita Arora
2. www.freecomputerbooks.com
3. www.W3schools.org
4.
www.picshub.org/prabha’s/institute/of/computerscienc
e

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy