0% found this document useful (0 votes)
30 views50 pages

Benovin J Rejol Class 12 (CS) MPCC Project

The document outlines a Computer Science project titled 'Exam Marks Management System' completed by Benovin J Rejol at Velammal Vidhyashram for the academic year 2024-2025. It emphasizes the importance of efficient exam marks management for accuracy, performance monitoring, and data-driven decision-making, while detailing the use of Python and MySQL for the system's development. The project aims to automate and streamline the recording and analysis of student exam marks to enhance educational processes.

Uploaded by

SHADOW
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)
30 views50 pages

Benovin J Rejol Class 12 (CS) MPCC Project

The document outlines a Computer Science project titled 'Exam Marks Management System' completed by Benovin J Rejol at Velammal Vidhyashram for the academic year 2024-2025. It emphasizes the importance of efficient exam marks management for accuracy, performance monitoring, and data-driven decision-making, while detailing the use of Python and MySQL for the system's development. The project aims to automate and streamline the recording and analysis of student exam marks to enhance educational processes.

Uploaded by

SHADOW
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/ 50

VELAMMAL VIDHYASHRAM

PADUR

COMPUTER SCIENCE
EXAM MARKS MANAGEMENT
SYSTEM
2024 - 2025

NAME - BENOVIN J REJOL


ROLL NO -
CLASS - XII
GROUP - CS MATHS
BONAFIDE CERTIFICATE

This is to certify that this COMPUTER SCIENCE


Investigatory Project on the topic “EXAM MARKS
MANAGEMENT SYSTEM” has been successfully
completed by BENOVIN J REJOL of class XII
Roll.no……….…….at Velammal Vidhyashram, Padur
for the partial fulfilment of this project as a part of All
India Senior School Certificate Examination-CBSE,
New Delhi for the academic Year 2024 – 2025.
Date: ……………………

Signature of Principal Signature of the Guide

Signature of the Signature of the


Internal Examiner External Examiner
ACKNOWLEDGMENT

I wish to express my deep gratitude and sincere


thanks to the principal Mrs. Pratibha Madan of
Velammal Vidhyashram Padur for their
encouragement given to me and for all the
facilities that they provided for this project work.
I extend my hearty thanks to Ms RINA Computer
Science Teacher, who guided me to the successful
completion of this project.
I take this opportunity to express my deep
gratitude for her valuable guidance,
encouragements, motivation, which sustained my
efforts at all the stage of this project work.
I would like to thank my lab assistant, lab in
charge and technical staffs for providing me
correct information which makes the completion
of this project work in an excellent way.
I cannot forget to offer my sincere thanks to my
parents, and to my classmates who helped me to
carry out this project work successful and for their
valuable advice and support, which I have received
from them.
TABLE OF CONTENT

 INTRODUCTION

 OBJECTIVES

 TOOLS AND TECHNOLOGIES USED

 SYSTEM REQUIREMENTS

 SYSTEM DESIGN

 IMPLEMENTATION

 OUTPUT SCREENSHOTS IN MYSQL

 PYTHON SOURCE CODE

 OUTPUT SCREENSHOTS IN PYTHON

 CONCLUSION

 BIBLIOGRAPHY
INTRODUCTION

Python
Python is a high-level, interpreted scripting
language developed in the late 1980s by Guido
van Rossum at the National Research Institute
for Mathematics and Computer Science in the
Netherlands. The initial version was published at
the alt.sources newsgroup in 1991, and version
was released in 1994.
Python 2.0 was released in 2000, and the 2.x
versions were the prevalent releases until
December 2008. At that time, the development
team made the decision to release version 3.0,
which contained a few relatively small but
significant changes that were not backward
compatible with the 2.x versions. Python 2 and 3
are very similar, and some features of Python 3
have been backported to Python 2. But in
general, they remain not quite compatible.
Both Python 2 and 3 have continued to be
maintained and developed, with periodic release
updates for both. As of this writing, the most
recent versions available are 2.7.15 and 3.6.5.
However, an official End of life of January
1,2020 has been established for Python 2, after
which time it will no longer be maintained. If
you are a newcomer to Python, it is
recommended that you focus on Python 3, as this
tutorial will do.
Python is still maintained by a core development
team at the Institute, and Guido is still in charge,
having been given the title of BDFL (Benevolent
Dictator For Life) by the Python community.
The name Python, by the way, derives not from
the snake, but from the British comedy troupe
Monty Python’s Flying Circus, of which Guido
was, and presumably still is, a fan. It is common
to find references to Monty Python sketches and
movies scattered throughout the Python
documentation.
Python is Popular
Python has been growing in popularity over the
last few years. The 2018 Stack Overflow
Developer Survey ranked Python as the 7th most
popular and the number one most wanted
technology of the year. World-class software
development countries around the globe use
Python every single day. According to research
by Dice Python is also one of the hottest skills to
have and the most popular programming
language in the world based on the Popularity of
programming Language Index.

Python is Interpreted
Many languages are compiled, meaning the
source code you create needs to be translated
into machine code, the language of your
computer’s processor, before it can be run.
Programs written in an interpreted language are
passed straight to an interpreter that runs them
directly.
This makes for a quicker development cycle
because you just type in your code and run it,
without the intermediate compilation step.
One potential downside to interpreted languages
is execution speed. Programs that are compiled
into the native language of the computer
processor tend to run more quickly than
interpreted programs. For some applications that
are particularly computationally intensive, like
graphics processing or intense number
crunching, this can be limiting.
In practice, however, for most programs, the
difference in execution speed is measured in
milliseconds, or seconds at most, and not
appreciably noticeable to a human user. The
expediency of coding in an interpreted language
is typically worth it for most applications.

Python is Free
The Python interpreter is developed under an
OSI-approved open-source license, making it
free to install, use, and distribute, even for
commercial purposes.
A version of the interpreter is available for
virtually any platform there is, including all
flavours of Unix, Windows, mac OS,
smartphones and tablets, and probably anything
else you ever heard of. A version even exists for
the half dozen people remaining who use OS/2.

Python is Portable
Because Python code is interpreted and not
compiled into native machine instructions, code
written for one platform will work on any other
platform that has the Python interpreter installed.
(This is true of any interpreted language, not just
Python.)

Python is Simple
As programming languages go, Python is
relatively uncluttered, and the developers have
deliberately kept it that way.
A rough estimate of the complexity of a
language can be gleaned from the number of
keywords or reserved words in the language.
These are words that are reserved for special
meaning by the compiler or interpreter because
they designate specific built-in functionality of
the language.
Python 3 has 33 keywords, and Python 2 has 31.
By contrast, C++ has 62, Java has 53, and Visual
Basic has more than 120, though these latter
examples probably vary somewhat by
implementation or dialect.

MySQL:
Database Management System & Types of
DBMS
A Database Management System(DBMS) is a
software application that interacts with the user,
applications and the database itself to capture
and analyse data. The data stored in the
database can be modified, retrieved and deleted,
and can be of any type like strings, numbers,
images etc.
Types of DBMS
There are mainly 4 types of DBMS, which are
Hierarchical, Relational, Network, and
Object-Oriented DBMS.
Hierarchical DBMS: As the name suggests,
this type of DBMS has a style of predecessor-
successor type of relationship. So, it has a
structure similar to that of a tree, wherein the
nodes represent records and the branches of the
tree represent fields.
Relational DBMS (RDBMS): This type of
DBMS, uses a structure that allows the users to
identify and access data in relation to another
piece of data in the database.
Network DBMS: This type of DBMS supports
many to many relations wherein multiple
member records can be linked.
Object-oriented DBMS: This type of DBMS
uses small individual software called objects.
Each object contains a piece of data, and the
instructions for the actions to be done with the
data.

Structured Query Language (SQL)


SQL is the core of a relational database which is
used for accessing and managing the database.
By using SQL, you can add, update or delete
rows of data, retrieve subsets of information,
modify databases and perform many actions.
The different subsets of SQL are as follows:
 DDL (Data Definition Language) –It allows
you to perform various operations on the
database such as CREATE, ALTER and
DELETE objects.
 DML (Data Manipulation Language)– It
allows you to access and manipulate data. It
helps you to insert, update, delete and
retrieve data from the database.
 DCL (Data Control Language)– It allows
you to control access to the database.
Example – Grant or Revoke access
permissions.
 TCL(Transaction Control Language) – It
allows you to deal with the transaction of the
database. Example – Commit, Rollback,
Savepoint, Set Transaction.

MySQL & its Features


MySQL is an open-source relational database
management system that works on many
platforms. It provides multi-user access to
support many storage engines and is backed by
Oracle. So,you can buy a commercial license
version from Oracle to get premium support
services.
The features of MySQL are as follows:
Ease of Management –The software very easily
gets downloaded and also uses an event
scheduler to schedule the tasks automatically.
 Robust Transactional Support –Holds the
ACID (Atomicity, Consistency, Isolation,
Durability) property, and also allows
distributed multi-version support.
 Comprehensive Application Development
–MySQL has plugin libraries to embed the
database into any application. It also supports
stored procedures, triggers, functions, views
and many more for application development.
You can refer to the RDS Tutorial, to
understand Amazon’s RDBMS.
 High Performance –Provides fast load
utilities with distinct memory caches and
table index partitioning.
 Low Total Cost Of Ownership –This
reduces licensing costs and hardware
expenditures.
 Open Source & 24 * 7 Support –This
RDBMS can be used on any platform and
offers 24*7 support for open source and
enterprise edition.
 Secure Data Protection –MySQL supports
powerful mechanisms to ensure that only
authorized users have access to the databases.
 Scalability & Flexibility –With MySQL you
can run deeply embedded applications and
create data warehouses holding a humongous
amount of data.
MySQL Data Types
 Numeric – This data type includes integers of
various sizes, floatingpoint(real) of various
precisions and formatted numbers.
 Character-string – These data types either
have a fixed, or a varying number of
characters. This data type also has a variable-
length string called CHARACTER LARGE
OBJECT(CLOB) which is used to specify
columns that have large text values.
 Bit-string – These data types are either of a
fixed length or varying length of bits. There
is also a variable-length bit string data type
called BINARY LARGE OBJECT(BLOB),
which is available to specify columns that
have large binary values, such as images.
 Boolean –This data type has TRUE or
FALSE values. Since
o SQL, has NULL values, a three-valued
logic is used, which is
o UNKNOWN.
 Date & Time –The DATE data type has:
YEAR, MONTH, and DAY in the form
YYYY-MM-DD. Similarly, the TIME data
type has the components HOUR, MINUTE,
and SECOND in the form HH:MM: SS.
These formats can change based on the
requirement.
 Timestamp & Interval –The TIMESTAMP
data type includes a minimum of six
positions, for decimal fractions of seconds
and an optional WITH TIME ZONE qualifier
in addition to the DATE and TIME fields.
The INTERVAL data type mentions a relative
value that can be used to increment or
decrement an absolute value of a date, time,
or timestamp.

MySQL Database Connection


Arguments required to connect MySQL from
Python
You need to know the following detail of the
MySQL server to perform the connection from
Python.
 Username – i.e., the username that you
use to work with MySQL Server. The
default username for the MySQL database
is a root
 Password – Password is given by the user
at the time of installing the MySQL
database. If you are using root then you
won’t need the password.
 Host Name – is the server name or Ip
address on which MySQL is running. if
you are running on localhost, then you can
use localhost, or it’s IP, i.e. 127.0.0.0
 Database Name – Database name to
which you want to connect.

READ Operation
Read Operation on any database means to fetch
some useful information from the database.
Once our database connection is established,
you are ready to make a query into this database.
You can use either fetchone() method to fetch
single record or fetchall() method to fetch
multiple values from a database table.
 fetchone() − It fetches the next row of a
query result set. A result set is an object
that is returned when a cursor object is
used to query a table.
 fetchall() − It fetches all the rows in a
result set. If some rows have already been
extracted from the result set, then it
retrieves the remaining rows from the
result set.

DATABASE CONNECTIVITY
Steps to connect MySQL database in Python
using MySQL Connector Python
 Install MySQL Connector Python using
pip.
 Use the mysql.connector.connect()method
of MySQL Connector Python with
required parameters to connect MySQL.
 Use the connection object returned by a
connect()method to create a cursor object
to perform Database Operations.
 The cursor.execute() to execute SQL
queries from Python.
 Close the Cursor object using a
cursor.close() and MySQL database
connection using connection.close() after
your work completes.
 Catch Exception if any that may occur
during this process.

In today’s educational landscape, the effective


management of exam marks is vital for
maintaining the integrity and quality of academic
processes. The Exam Marks Management System
is designed to automate and streamline the process
of recording, storing, and analysing student exam
marks. This project aims to provide a robust
solution that not only simplifies the workflow of
educators and administrative staff but also
enhances the accuracy and accessibility of student
performance data. By leveraging technology, the
system seeks to reduce the manual workload,
minimize errors, and offer meaningful insights into
student achievements, thereby supporting
educational goals and objectives.

Importance of Exam Marks Management


Exam marks are a critical component of a
student’s academic journey. They serve as a
quantifiable measure of a student's understanding
and mastery of the subject matter. Efficient exam
marks management is essential for several reasons:

Accuracy and Fairness: Proper management


ensures that marks are recorded accurately and
consistently. This helps in maintaining fairness
and transparency in the evaluation process, which
is crucial for the credibility of educational
institutions.
Performance Monitoring: By systematically
managing exam marks, educators can monitor
students' progress over time. This data can be used
to identify trends, such as areas where students
consistently excel or struggle. It enables teachers
to provide targeted support to students who may
need additional help.

Data-Driven Decision Making: Access to


accurate and timely exam marks data supports
data-driven decision-making. Educators and
administrators can use this information to make
informed decisions about curriculum adjustments,
resource allocation, and instructional strategies.

Streamlining Administrative Processes:


Automating the exam marks management process
reduces the administrative burden on teachers and
staff. It minimizes the time spent on clerical tasks,
allowing educators to focus more on teaching and
engaging with students.
Enhancing Student Motivation: When students
have easy access to their performance data, it can
motivate them to improve. Knowing their
strengths and weaknesses allows students to take
charge of their learning and set realistic academic
goals.

Why MySQL is Chosen for Database


Management
For the Exam Marks Management System,
MySQL has been chosen as the database
management system (DBMS) due to several
compelling reasons:
Reliability and Stability: MySQL is one of the
most widely used and trusted relational database
management systems in the world. Its proven
reliability and stability make it an excellent choice
for managing critical data, such as student exam
marks, where data integrity is paramount.

Scalability: MySQL is highly scalable, which


means it can handle growing amounts of data and
increasing numbers of users. This scalability
ensures that the system can adapt to the needs of
educational institutions of varying sizes, from
small schools to large universities.
Performance: MySQL is optimized for high-
performance applications. Its efficient data storage
and retrieval mechanisms ensure that the system
can handle large volumes of data without
compromising on speed or performance, which is
crucial for real-time access to marks and reports.

Security Features: MySQL offers robust security


features, including user authentication, data
encryption, and access control. These features are
essential for protecting sensitive student data and
ensuring that only authorized personnel have
access to modify or view marks.

Ease of Use and Integration: MySQL is known


for its ease of use, which facilitates faster
development and deployment. It also integrates
well with various programming languages and
platforms, making it a versatile choice for
developers. This compatibility is crucial for
building a flexible and user-friendly exam marks
management system.
Open Source and Cost-Effective: As an open-
source database management system, MySQL
offers a cost-effective solution without licensing
fees. This makes it an attractive option for
educational institutions that often operate under
budget constraints.

OBJECTIVES

The Exam Marks Management System involves


designing and implementing a robust database that
efficiently stores and manages student exam
marks. This database serves as the core component
of the system, facilitating essential operations and
data handling. The following sections outline the
key objectives and functionalities of this
component.

Database Creation and Structure


The primary goal is to create a well-structured
relational database that stores detailed information
about students, their courses, exam types, and
corresponding marks. The database will consist of
several tables, such as „Students‟, „Courses‟,
„Exams‟, and „Marks‟, each containing relevant
attributes like student ID, course ID, exam type,
and obtained marks. Establishing relationships
between these tables ensures data integrity and
enables efficient data retrieval.

CRUD Operations
To maintain and manipulate the data, the system
will support CRUD (Create, Read, Update, Delete)
operations:

Create: New records can be added to the database,


such as adding a new student, a new course, or
entering marks for a specific exam.
Read: Users can retrieve and view stored data,
like accessing a student's marks across various
exams or generating a list of students enrolled in a
particular course.
Update: The system allows for the modification of
existing records. For example, if there is an error
in the entered marks or if a student's details
change, the information can be updated
accordingly.
Delete: Users can remove records that are no
longer required, such as deleting the marks of a
student who has withdrawn from the course.

Report Generation
One of the critical functionalities of the system is
to generate reports that provide insights into
student performance. These reports will be
generated based on the data stored in the database
and can include:
Individual Student Report Cards: Displaying
detailed marks and grades across all exams for a
particular student.
Class Performance Reports: Summarizing the
performance of all students in a specific course or
exam.
Subject-wise Analysis: Offering insights into how
students are performing in different subjects,
which can be valuable for academic planning and
intervention.
TOOLS AND TECHNOLOGIES USED

MySQL: Database management system.


Python: Programming language to interface with
the MySQL database.
XAMPP/MAMP: Local server for running
MySQL.
MySQL Workbench: For database design and
querying.

SYSTEM REQUIREMENTS

Software: Python 3.x, MySQL Server, MySQL


Connector module (mysql-connector-python)
Hardware: A computer with at least 4GB RAM
and a stable internet connection.
Python Libraries: mysql-connector-python,
prettytable (for displaying data in tabular format)

SYSTEM DESIGN

Table Structure: Define tables such as Students,


Subjects, Exams, Marks.
Include attributes like student_id, name,
subject_id, subject_name, exam_id, marks.
Example Table Structures:
Students Table
 student_id (Primary Key)
 name
 class
 section

Subjects Table
 subject_id (Primary Key)
 subject_name

Exams Table
 exam_id (Primary Key)
 exam_name
 exam_date
Marks Table
 mark_id (Primary Key)
 student_id (Foreign Key)
 subject_id (Foreign Key)
 exam_id (Foreign Key)
 marks

IMPLEMENTATION

SQL Queries: Include SQL statements for


creating tables, inserting data, updating data,
deleting data, and retrieving data.

 Create Table
 Insert data
 Update data
 Delete data
 Retrieve data

OUTPUT SCREENSHOTS

Create Table
Insert data

Update data

Delete data
Retrieve data

DATABASE SETUP
PYTHON SOURCE CODE
import mysql.connector

# Establishing connection to the MySQL database


def connect_db():
try:
connection = mysql.connector.connect(
host="localhost",
user="root",
password="ashleytysonx",
database="exam_management")
return connection
except mysql.connector.Error as err:
print(f"Error: {err}")
return None

# Function to add a new student record


def add_student():
connection = connect_db()
if connection is None:
return

name = input("Enter student's name: ")


subject = input("Enter subject: ")
marks = int(input("Enter marks: "))

cursor = connection.cursor()
query = "INSERT INTO students (name, subject,
marks) VALUES (%s, %s, %s)"
data = (name, subject, marks)

try:
cursor.execute(query, data)
connection.commit()
print("Student record added successfully.")
except mysql.connector.Error as err:
print(f"Error: {err}")

cursor.close()
connection.close()

# Function to view all student records


def view_students():
connection = connect_db()
if connection is None:
return
cursor = connection.cursor()
query = "SELECT * FROM students"

try:
cursor.execute(query)
records = cursor.fetchall()

if cursor.rowcount == 0:
print("No records found.")
else:
print("Student Records:")
for record in records:
print(f"ID: {record[0]}, Name: {record[1]},
Subject: {record[2]}, Marks: {record[3]}")
except mysql.connector.Error as err:
print(f"Error: {err}")

cursor.close()
connection.close()

# Function to update a student's marks


def update_student_marks():
connection = connect_db()
if connection is None:
return

student_id = int(input("Enter student ID to update: "))


new_marks = int(input("Enter new marks: "))

cursor = connection.cursor()
query = "UPDATE students SET marks = %s WHERE
student_id = %s"
data = (new_marks, student_id)

try:
cursor.execute(query, data)
connection.commit()

if cursor.rowcount == 0:
print("No record found with the given ID.")
else:
print("Student marks updated successfully.")
except mysql.connector.Error as err:
print(f"Error: {err}")

cursor.close()
connection.close()

# Function to delete a student record


def delete_student():
connection = connect_db()
if connection is None:
return

student_id = int(input("Enter student ID to delete: "))

cursor = connection.cursor()
query = "DELETE FROM students WHERE
student_id = %s"
data = (student_id,)

try:
cursor.execute(query, data)
connection.commit()

if cursor.rowcount == 0:
print("No record found with the given ID.")
else:
print("Student record deleted successfully.")
except mysql.connector.Error as err:
print(f"Error: {err}")

cursor.close()
connection.close()

# Main menu function


def main_menu():
while True:
print("\n--- Exam Marks Management ---")
print("1. Add Student")
print("2. View Students")
print("3. Update Student Marks")
print("4. Delete Student")
print("5. Exit")

choice = input("Enter your choice: ")

if choice == '1':
add_student()
elif choice == '2':
view_students()
elif choice == '3':
update_student_marks()
elif choice == '4':
delete_student()
elif choice == '5':
print("Exiting the program. Goodbye!")
break
else:
print("Invalid choice. Please try again.")

if __name__ == "__main__":
main_menu()

OUTPUT SCREENSHOTS IN PYTHON


CONCLUSION

In conclusion, the Exam Marks Management


system developed in this project serves as a
comprehensive tool for efficiently managing and
analysing student exam scores. The system's
design, which integrates user-friendly interfaces
with robust backend functionalities, addresses
several critical aspects of marks management:
Data Organization: The system effectively
organizes student marks and related data, ensuring
that information is stored systematically and can
be retrieved or modified with ease.

Efficiency: By automating the process of marks


entry, calculation, and report generation, the
system reduces manual workload and minimizes
errors associated with manual data handling.

User Experience: The intuitive interface enhances


user experience, making it accessible for teachers
and administrators with varying levels of technical
expertise.

Analysis and Reporting: Advanced features for


data analysis, such as statistical summaries and
performance reports, provide valuable insights into
student performance, aiding in academic planning
and intervention strategies.
Future Enhancements: While the system meets
the current requirements, there is potential for
further development. Future enhancements could
include features such as online exam integration,
advanced analytics, and improved security
measures.

Overall, this project demonstrates the practical


application of computer science principles in
solving real-world problems. The Exam Marks
Management system not only streamlines the
process of managing student exam data but also
highlights the importance of thoughtful system
design and user-centric development.
BIBLIOGRAPHY

 Python Official Documentation


URL: https://docs.python.org/3/
Description: The official Python documentation provides detailed
information about Python's syntax and libraries.

 W3Schools SQL Tutorial


URL: https://www.w3schools.com/sql/
Description: A practical guide for learning SQL, which is essential
for database management.

 GeeksforGeeks - Python Programming Language


URL: https://www.geeksforgeeks.org/python-programming
Description: Offers tutorials and examples for Python
programming.

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