student marksheet(Sarthak Awasthi)

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 37

SHANTI GYAN NIKETAN SR. SEC.

PUBLIC SCHOOL

COMPUTER SCIENCE (083)


(Academic Year 2024-25)

PROJECT REPORT
on
‘STUDENT MARKSHEET’

SUBMITTED BY: -
NAME : Sarthak Awasthi
CLASS : XII-B ROLL.NO: …………….
UNDER THE GUIDANCE OF: Ms.RITA SEGAN

CERTIFICATE

This is to certify that this project report entitled

‘Student Marksheet’

is a bonafide record of the project work done by

Sarthak Awasthi of class XII in the academic year 2024

– 25. The project has been submitted in partial

fulfillment of CBSE AISSCE for practical Examination

and has been carried out under my direct supervision and

guidance.

………………………… ……………………………..
Signature of Student Signature of
Teacher

Name: Sarthak Awasthi Name: Ms. RITA SEGAN


Roll No.: Design.: PGT Comp.Sc.
ACKNOWLEDGEMENT

I , undertook this Project work, as the part of my XII-Computer


Science. I had tried to apply my best of knowledge and
experience, gained during the study and class work experience.
However, developing software system is generally a quite
complex and time-consuming process. It requires a systematic
study, insight vision and professional approach during the
design and development. Moreover, the developer always feels
the need, the help and good wishes of the people near you,
who have considerable experience and idea.

I would like to extend my sincere thanks and gratitude to my


teacher

Ms.Neetu Bhasin , for giving valuable time and moral support


to develop this software.

I also feel indebted to my friends for the valuable suggestions


during the project work.

SARTHAK AWASTHI

Class XII B
C O N T E N T S

1. Introduction-------------------------------------------------------Page No

2. Objective & Scope of the Project--------------------------------------

3. System Implementation---------------------------------------------------

3.1 The Hardware used:-----------------------------------------------------

3.2 The Softwares used:-----------------------------------------------------

4. Theoretical Background------------------------------------

4.1 What is Database? -------------------------------------------------

4.2 What is MySQL?-----------------------------------------------------

4.3 What is Python? ----------------------------------------------------

5. System Design & Development----------------------------------------

5.1 Database Design:---------------------------------------------------------

5.2 Event Coding:--------------------------------------------------------------

6. Output------------------------------------------------------------------------

7. References -------------------------------------------------------------------
1. Introduction

This project is developed to automate the functionalities.The

purpose of the software project is to develop the Management

Information System (MIS) to automate the records with a view

to enhance the decision making of the functionaries.

A MIS mainly consists of a computerized database. An

application program is tied with the database for easy access

and interface to the database. Using Application program or

front-end, we can store, retrieve and manage all information in

proper way.

This project, being simple in design and working, does not

require much of training to users, and can be used as a

powerful tool for automating a Student Marksheet.

During coding and design of the Project, Python IDLE, a

powerful front-end tool is used for getting Graphical User

Interface (GUI) based integrated platform and coding simplicity.

As a back-end a powerful, open source RDBMS, My SQL or

Binary file is used.


2. Objective & Scope of the Project

The objective of the project is to develop a computerized


MIS to automate the functions of a STUDENT MARKSHEET.

The proposed software system is expected to do the


following functionality-

• To provide a user friendly, Graphical User Interface (GUI)


based integrated and centralized environment for MIS
activities.
• The proposed system should maintain all the records and
transactions, and should generate the required reports
and information when required.
• To provide graphical and user-friendly interface to interact
with a centralized database based on client-server
architecture.
• To identify the critical operation procedure and possibilities
of simplification using modern IT tools and practices.

In its current scope, the software enables user to retrieve and


update the information from centralized database designed
with MySQL or Binary file . This software does not require much
training time of the users due to limited functionality and
simplicity.

During the development of 'STUDENT MARKSHEET' project,


Python IDLE, a powerful, open source event-driven form-based
development environment is used for modular design and
future expandability of the system.
Despite of the best effort of the developer, the following
limitations and functional boundaries are visible, which limits
the scope of this application project.

This project can store records and produce reports in pre-


designed format in soft copy. There is no facility yet to produce
customized reports. Only specified reports are covered.

So far as future scope of the project is concerned, firstly it is


open to any modular expansion i.e. other modules or functions
can be designed and embedded to handle the user need in
future. Any part of the software and reports can be modified
independently without much effort.

3. System Implementation
The Hardware and Software used:

Hardware Requirement-
• Intel Pentium/Celeron or similar processor based PC at
Client/Server end.
• 128 MB RAM and 4GB HDD space (for Database) is
desirable.
• Standard I/O devices like Keyboard and Mouse etc.
• Printer is needed for hard-copy reports.
• Local Area Network(LAN) is required for Client-Server
Installation

Software Requirement-
• Microsoft Windows® 7 or Higher Version as Operating
System.
• Python 3.7.2 as Front-end Development environment.
• MySQL as Back-end Sever with Database for Testing.
• MS-Word 2010 for documentation.

4. Theoretical Background
4.1 What is Database?

Introduction and Concepts:


Database is a collection of related information that is organized
in such a way that supports for easy access, modify and
maintain data. The contents of a database are obtained by
combining data from all the different sources in an
organization. Generally, the database is managed by some
special software packages known as Database Management
Systems (DBMSs). DBMSs are specially designed applications to
create connection between user and program, and to store data
in an organized manner. The purpose of DBMS software is to
allow the user to create, modify and administration of
database. Examples of database management systems are: Ms-
Access, MySQL, PostgreSQL, SQLite, Microsoft SQL Server,
Oracle, SAP, dBASE, FoxPro, etc.

A table is a collection of data about a specific topic, such as


products or suppliers. Using a separate table for each topic
means you can store that data only once, which makes your
database more efficient and reduces data-entry errors. Table
organises data into columns (called fields) and rows (called
records).

A Primary key is one or more fields whose value or values


uniquely identify each record in a table. In a relationship, a
primary key is used to refer to specific record in one table from
another table. A primary key is called foreign key when it is
referred to from another table.

To find and retrieve just the data that meets conditions you
specify, including data from multiple tables, create a query. A
query can also update or delete multiple records at the same
time, and perform built-in or custom calculations on your data.
Role of RDBMS Application Program:
A computer database works as an electronic filing system,
which has a large number of ways of cross-referencing, and this
allows the user many different ways in which to re-organize and
retrieve data. A database can handle business inventory,
accounting and filing and use the information in its files to
prepare summaries, estimates and other reports. The
management of data in a database system is done by means of
a general-purpose software package called a Database
Management System (DBMS). Some commercially available
DBMS are MS SQL Server, MS ACCESS, INGRES, ORACLE, and
Sybase. A database management system, therefore, is a
combination of hardware and software that can be used to set
up and monitor a database, and can manage the updating and
retrieval of database that has been stored in it. Most of the
database management systems have the following capabilities:

• Creating of a table, addition, deletion, modification of


records.
• Retrieving data collectively or selectively.
• The data stored can be sorted or indexed at the user's
discretion and direction.
• Various reports can be produced from the system. These
may be either standardized report or that may be
specifically generated according to specific user definition.
• Mathematical functions can be performed and the data
stored in the database can be manipulated with these
functions to perform the desired calculations.
• To maintain data integrity and database use.
The DBMS interprets and processes users' requests to retrieve
information from a database. In most cases, a query request
will have to penetrate several layers of software in the DBMS
and operating system before the physical database can be
accessed. The DBMS responds to a query by invoking the
appropriate subprograms, each of which performs its special
function to interpret the query, or to locate the desired data in
the database and present it in the desired order.
4.2 What is My SQL ?
The management of data in a database system is done by
means of a general-purpose software package called a
Database Management System (DBMS). Some commercially
available RDBMS are MS SQL Server, MS ACCESS, INGRES,
ORACLE, and Sybase.

MySQL, the most popular Open Source SQL database


management system, is developed, distributed, and supported
by Oracle Corporation. MySQL is named after co-founder Monty
Widenius's daughter, My. The name of the MySQL Dolphin (our
logo) is “Sakila,”.

• MySQL is a database management system.


A database is a structured collection of data. It may be
anything from a simple shopping list to a picture gallery or
the vast amounts of information in a corporate network. To
add, access, and process data stored in a computer
database, you need a database management system such
as MySQL Server. Since computers are very good at
handling large amounts of data, database management
systems play a central role in computing, as standalone
utilities, or as parts of other applications.
• MySQL is based on SQL.
A relational database stores data in separate tables rather
than putting all the data in one big storeroom. This adds
speed and flexibility. The SQL part of “MySQL” stands for
“Structured Query Language.” SQL is the most common
standardized language used to access databases and is
defined by the ANSI/ISO SQL Standard. The SQL standard
has been evolving since 1986 and several versions exist.
In this manual, “SQL-92” refers to the standard released in
1992, “SQL:1999” refers to the standard released in 1999,
and “SQL:2003” refers to the current version of the
standard.
• MySQL software is Open Source.
Open Source means that it is possible for anyone to use
and modify the software. Anybody can download the
MySQL software from the Internet and use it without
paying anything. If you wish, you may study the source
code and change it to suit your needs. The MySQL
software uses the GPL (GNU General Public License),
• The MySQL Database Server is very fast, reliable,
and easy to use.
If that is what you are looking for, you should give it a try.
MySQL Server also has a practical set of features
developed in close cooperation with our users. You can
find a performance comparison of MySQL Server with
other database managers on our benchmark page. MySQL
Server was originally developed to handle large databases
much faster than existing solutions and has been
successfully used in highly demanding production
environments for several years. Although under constant
development, MySQL Server today offers a rich and useful
set of functions. Its connectivity, speed, and security make
MySQL Server highly suited for accessing databases on
the Internet.
• MySQL Server works in client/server or embedded
systems.
The MySQL Database Software is a client/server system
that consists of a multi-threaded SQL server that supports
different backends, several different client programs and
libraries, administrative tools, and a wide range of
application programming interfaces (APIs).
The Main Features of MySQL
• Written in C and C++.
• Works on many different platforms.
• Uses multi-layered server design with independent
modules.
• Provides transactional and non-transactional storage
engines.
• Designed to make it relatively easy to add other storage
engines. This is useful if you want to provide an SQL
interface for an in-house database.
• Uses a very fast thread-based memory allocation system.
• Executes very fast joins using an optimized nested-loop
join.
• Implements SQL functions using a highly optimized class
library that should be as fast as possible. Usually there is
no memory allocation at all after query initialization.
• Provides the server as a separate program for use in a
client/server networked environment, and as a library that
can be embedded (linked) into standalone applications.
Such applications can be used in isolation or in
environments where no network is available.
• Password security by encryption of all password traffic
when you connect to a server.
• Support for large databases. We use MySQL Server with
databases that contain 50 million records. We also know of
users who use MySQL Server with 200,000 tables and
about 5,000,000,000 rows.
• MySQL client programs can be written in many languages.
A client library written in C is available for clients written
in C or C++, or for any language that provides C bindings.
• APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and
Tcl are available, enabling MySQL clients to be written in
many languages.
• The Connector/ODBC (MyODBC) interface provides MySQL
support for client programs that use ODBC (Open
Database Connectivity) connections.
• The Connector/J interface provides MySQL support for Java
client programs that use JDBC connections. Clients can be
run on Windows or Unix. Connector/J source is available.
4.3What is Python ?
Python is an open source , object oriented high level
programming language developed by Guido Van Rossum in
1991 at the National Research Institute for Mathematics,
Netherlands.
Features of Python:
• It is an interactive ,interpreted language.
• It is a loosely typed object –oriented language.
• It is a free open –source and portable language,
• It takes less time to develop programs.
• It is extensible / extendable and highly efficient .
• It supports GUI.
• It can be easily compatible with other languages like C ,
C++ etc.
• It is used for both scientific and non-scientific
programming.

Installing Python:
It can be installed by using website :
https://www.python.org/downloads/

Interacting with Python:


Python programs can be run in two ways:
• Using Command line window
• Using IDLE
For those who use SQL Connectivity

5. System Design & Development


5.1 Database Design:
An important aspect of system design is the design of data
storage structure. To begin with a logical model of data
structure is developed first. A database is a container object
which contains tables, queries, reports and data validation
policies enforcement rules or constraints etc. A logical data
often represented as a records are kept in different tables after
reducing anomalies and redundancies. The goodness of data
base design lies in the table structure and its relationship.

This project maintains a database named ……… which contains


the following tables.

Table Design:
For example BUT PUT ACCORDING TO YOUR PROJECT

The database of LIBRARY MANAGEMENT SYSTEM contains 3


tables in database Library. The tables are normalized to
minimize the redundancies of data and enforcing the validation
rules of the organization. Most of the tables are designed to
store master records. The tables and their structure are given
below.
Table 1: BOOKRECORD
Table2: MEMBER
Table3: ISSUE
TABLE JOIN
For those who use DFH, Binary file
5. System Design & Development
Data is stored using file(s) permanently on secondary storage
media. A file (i.e. data file) is a named place on the disk where
a sequence of related data is stored. In python files are simply
stream of data, so the structure of data is not stored in the file,
along with data.

File:- A file is a collection of related data stored in a particular area on the disk.

Stream: - It refers to a sequence of bytes.

Need of File Handling:


File handling is an important part of any web application.
To store the data in secondary storage.
To Access the data fast.
To perform Create, Read, Update, Delete operations easily.

Basic operations performed on a data file are:


• Naming a file
• Opening a file
• Reading data from the file
• Writing data in the file
• Closing a file

Using these basic operations, we can process file in


many ways, such as
• Creating a file
• Traversing a file for displaying the data on screen
• Appending data in file
• Inserting data in file
• Deleting data from file
• Create a copy of file
• Updating data in the file, etc.

Python allow us to create and manage following types of


file
• Text
• Binary

A text file is usually considered as sequence of lines. Line is a


sequence of characters (ASCII), stored on permanent storage
media. Although default character coding in python is ASCII but
using constant with string, supports Unicode as well. Each line
is terminated by a special character, known as End of Line
(EOL). From strings we know that \n is newline character. So at
the lowest level, text file will be collection of bytes. Text files
are stored in human readable form and they can also be
created using any text editor.

A binary file contains arbitrary binary data i.e. numbers stored


in the file, can be used for numerical operation(s). So when
working on binary file, we have to interpret the raw bit
pattern(s) read from the file into correct type of data in our
program. It is perfectly possible to interpret a stream of bytes
originally written as string, as numeric value. But that will be
incorrect interpretation of data and we are not going to get
desired output after the file processing activity. So in the case
of binary file it is extremely important that we interpret the
correct data type while reading the file. Python provides special
module(s) for encoding and decoding of data for binary file.
CSV (Comma Separated Values). A csv file is a type of plain text
file that uses specific structuring to arrange tabular data. A CSV
is a common format for data interchange as it is compact,
simple and general. Each line of the file is one line of the table.
csv files have .csv as file extension.

Source Code:
Source code
import pickle
def add_rec():
f=open("students.dat","wb")
rec=[]
while True:
roll=int(input("Enter roll no"))
name=input("enter the name of student")
physics=float(input("Enter marks of physics"))
chemistry=float(input("Enter marks of chemistry"))
maths=float(input("Enter marks of maths"))
computer=float(input("Enter marks of computer"))
english=float(input("Enter marks of english"))
total=physics+chemistry+maths+computer+english
per=total/5
if(per>=90):
grade="A1"
elif(per>=80 and per<90):
grade="A2"
elif(per>=70 and per<80):
grade="B1"
elif(per>=60 and per<70):
grade="B2"
else:
grade="C"
data=[roll,name,physics,chemistry,maths,computer,english,total,per,grade]
rec.append(data)
ch=input("Do you want to enter more records(y/n)")
if ch =="n" or ch=="N":
break
pickle.dump(rec,f)
print("Records added successfully")
f.close()

def display_rec():
print("Contents in file are:")
f=open("students.dat","rb")
try:
while True:
s=pickle.load(f)
count=1
for i in s:
print("***************Record of stuident:",count,"****************")
print("Roll number:",i[0])
print("Name of student:",i[1])
print("Marks in physics:",i[2])
print("Marks in chemistry:",i[3])
print("Marks in maths:",i[4])
print("Marks in Computer:",i[5])
print("Marks in english:",i[6])
print("Total Marks of student in 5 subjects:",i[7])
print("Percentage :",i[8])
print("Grade of student:",i[9])
count=count+1
except:
f.close()

def append_rec():
f=open("students.dat","rb+")
print("append records in the file:")
rec=pickle.load(f)

while True:
roll=int(input("Enter roll no"))
name=input("enter the name of student")
physics=float(input("Enter marks of physics"))
chemistry=float(input("Enter marks of chemistry"))
maths=float(input("Enter marks of maths"))
computer=float(input("Enter marks of computer"))
english=float(input("Enter marks of english"))
total=physics+chemistry+maths+computer+english
per=total/5
if(per>=90):
grade="A1"
elif(per>=80 and per<90):
grade="A2"
elif(per>=70 and per<80):
grade="B1"
elif(per>=60 and per<70):
grade="B2"
else:
grade="C"
data=[roll,name,physics,chemistry,maths,computer,english,total,per,grade]
rec.append(data)
ch=input("Do you want to enter more records(y/n)")
if ch =="n" or ch=="N":
break
f.seek(0)
pickle.dump(rec,f)
print("Records appended successfully")
f.close()

def search_roll():
f=open("students.dat","rb")
r=int(input("Enter roll number of student whose record u want to search:"))
found=0
try:
while True:
s=pickle.load(f)
count=1
for i in s:
if i[0]==r:
print("Record found and details of student are:")
print("Roll number:",i[0])
print("Name of student:",i[1])
print("Marks in physics:",i[2])
print("Marks in chemistry:",i[3])
print("Marks in maths:",i[4])
print("Marks in Computer:",i[5])
print("Marks in english:",i[6])
print("Total Marks of student in 5 subjects:",i[7])
print("Percentage :",i[8])
print("Grade of student:",i[9])
found=1
except:
f.close()
if found==0:
print("sorry...record not found.")

def search_name():
f=open("students.dat","rb")
n=input("Enter name of student whose record u want to search:")
found=0
try:
while True:
s=pickle.load(f)
count=1
for i in s:
if i[1]==n:
print("Record found and details of student are:")
print("Roll number:",i[0])
print("Name of student:",i[1])
print("Marks in physics:",i[2])
print("Marks in chemistry:",i[3])
print("Marks in maths:",i[4])
print("Marks in Computer:",i[5])
print("Marks in english:",i[6])
print("Total Marks of student in 5 subjects:",i[7])
print("Percentage :",i[8])
print("Grade of student:",i[9])
found=1
except:
f.close()
if found==0:
print("sorry...record not found.")

def modifyby_roll():
f=open("students.dat","rb+")
r=int(input("Enter roll number of student whose details u want to modify:"))
f.seek(0)
try:
while True:
rpos=f.tell()
s=pickle.load(f)
for i in s:
if i[0]==r:
i[1]=input("enter new name of student ")
i[2]=float(input("Enter new marks of physics "))
i[3]=float(input("Enter new marks of chemistry "))
i[4]=float(input("Enter new marks of maths "))
i[5]=float(input("Enter new marks of computer "))
i[6]=float(input("Enter new marks of english "))
i[7]=i[2]+i[3]+i[4]+i[5]+i[6]
i[8]=i[7]/5
if(i[8]>=90):
i[9]="A1"
elif(i[8]>=80 and i[8]<90):
i[9]="A2"
elif(i[8]>=70 and i[8]<80):
i[9]="B1"
elif(i[8]>=60 and i[8]<70):
i[9]="B2"
else:
i[9]="C"

f.seek(rpos)
pickle.dump(s,f)

print("Records modified successfully")


break
except:
f.close()

def deleteby_roll():
f=open("students.dat","rb")
s=pickle.load(f)
f.close()
found=0
r=int(input("Enter roll no whose detail u want to delete:"))
f=open("students.dat","wb")
reclst=[]
for i in s:
if i[0]==r:
found=1
print("Record deleted successfully..")
continue
reclst.append(i)
pickle.dump(reclst,f)
if found==0:
print("Sorry!!record not found..")
f.close()

def menu():
while True:
print(""" Main Menu

1. Add record
2. Display all records
3. Append Records
4. Search by rollno
5. Search by name
6. Modify by rollno
7. Delete by rollno
8. Exit
""")
print(110*"=")
ch=int(input("Enter your choice"))
print(110*"=")
if(ch==1):
add_rec()
elif(ch==2):
display_rec()
elif(ch==3):
append_rec()
elif(ch==4):
search_roll()
elif(ch==5):
search_name()
elif(ch==6):
modifyby_roll()
elif(ch==7):
deleteby_roll()
elif(ch==8):
print("END")
break
else:
print("Enter any valid choice from 1-8")
menu()

6.Output

Main Menu
Adding Records

Displaying Records
Appending Records
Searching record by Roll number
Searching record by name

Modifying record of particular student


-

Deleting record
7. References

In order to work on this project titled –Student Marksheet, the following books and
literature are referred by me during the various phases of development of the
project:

(1) Computer Science with Python for class XII

-by Preeti Arora

(2) Computer Science with Python for class XII

-by Sumita Arora

(3) http://www.mysql.org/

(4) http://www.python.org/
(5) Various Websites of Discussion Forum and software development activities.

Other than the above-mentioned books, the suggestions and supervision of my


Computer Science teacher Ms. Rita Segan and my classmates also helped me to
develop this software project.

You might also like