0% found this document useful (0 votes)
37 views37 pages

Modern Py

Uploaded by

ksingham000
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)
37 views37 pages

Modern Py

Uploaded by

ksingham000
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/ 37

MODERN SCHOLAR’S ACADEMY

SENIOR SECONDARY SCHOOL


CHAMBA, TEHRI GARHWAL

SESSION-2023-24
TOPIC: STUDENT MANAGEMENT SYSTEM

NAME: PALAK RAWAT,SMITA SAJWAN,ABHINAV


RAWAT,SHEKHAR BAHUGUNA
ROLL NO: 12024,12011,12002,12029
CLASS : XII
SUBJECT: COMPUTER SCIENCE WITH PYTHON
SOURCE CODE: 083
SUBMITTED TO: ER.ABHISHEK DANGWAL

1
1

MODERN SCHOLAR’S ACADEMY


SENIOR SECONDARY SCHOOL
CHAMBA, TEHRI GARHWAL

CERTIFICATE
This is to certify that PALAK RAWAT,SMITA SAJWAN,ABHINAV
RAWAT,SHEKHAR BAHUGUNA Of Class XII A has prepared the report on
the Project entitled “STUDENT MANAGEMENT SYSTEM". The report is
the result of her/his efforts & endeavors. The report is found worthy of
acceptance as final project report for the subject Computer Science of
Class XII. She/he has prepared the report under my guidance.

Er Abhishek Dangwal

PGT (Computer Science)

Teacher’s sign Principal’s Sign Examiner’s Sign


2
PAGE
SER:
DESCRIPTION NO :

01 ACKNOWLEDGEMENT

02 INTRODUCTION

03 OBJECTIVES OF THE PROJECT

04 PROPOSED SYSTE M

05 SYSTEM DEVELOPMENT LIFE


CYCLE (SDLC)
06 PHASES OF SYSTEM
DEVELOPMENT LIFE CYCLE
07 SOURCE CODE

08 FLOW CHART

09 OUTPUT

10 TESTING

11 HARDWARE AND SOFTWARE


REQUIREMENTS
12 BIBLIOGRAPHY

3
TABLE OF CONTENTS [T.O.C]

ACKNOWLEDGEMENT
I am really grateful for the opportunity of
this project and sincerely thanks my
computer teacher Er. Abhishek Dangwal.
He will remain one of my favorite teachers
for contributing his valuable time and effort
to help me with this project. Their
suggestions and feedback helped me a lot to
improve the practical quality from the
implementation.
Secondly, I would like to thank my parents,
family member and friends who have always
been there whenever needed.
Lastly, I thank them all from my heart and
wish that they will continue to support me
like this.
4
4

PROJECT ON ATM MANAGEMENT SYSTEM

INTRODUCTION:

This Python code is a simple student records management system


implemented using MySQL for data storage and interaction. The program
provides a command-line interface for users to perform various operations,
including adding student records, displaying all records, searching for a
student by roll number, deleting a student record, updating a student's fees,
and exiting the system.

Here's a brief overview of the main functionalities:

1. **Database Setup:**

- The code establishes a connection to a MySQL database server


running on localhost with a specified username and password.

- It checks if a database named "studentrecords" exists; if not, it creates


the database.

- Inside the "studentrecords" database, a table named "students" is


created to store information such as roll number, name, class, and fees.

2. **User Authentication:**

- The program prompts the user to enter a username and password for
authentication.

5
- If the provided credentials match the hardcoded values ('computer' for
username and '12345' for password), the user is granted access to the
main menu; otherwise, an invalid credential message is displayed.

3. **Main Menu Options:**

- The main menu presents several options to the user, such as adding a
new student record, displaying all records, searching for a student by roll
number, deleting a student record, updating a student's fees, and exiting
the system.

4. **Operations:**

- **Add Record:** Allows the user to input details for a new student, such
as roll number, name, class, and fees. The information is then inserted into
the MySQL database.

- **Display Record:** Retrieves all student records from the database and
displays them in a tabular format using the PrettyTable library.

- **Search Record:** Enables the user to search for a specific student by


providing their roll number. The matching record is displayed if found.

- **Delete Record:** Allows the user to delete a student record based on


the roll number provided.

- **Update Record:** Permits the user to update a student's fees by


entering the roll number and the new fee amount.

5. **User Interface:**

- The program uses a loop to maintain interaction with the user until the
user chooses to exit.

This student records management system demonstrates the basic


principles of connecting to a MySQL database, executing SQL queries, and
providing a menu-driven interface for user interaction.
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.
1. Write programs utilizing modern software tools.
2. Apply object oriented programming principles
effectively when developing small to medium sized
projects.
3. Write effective procedural code to solve small to
medium sized problems.
4. Students will demonstrate a breadth of knowledge in
computer science, as exemplified in the areas of systems,
theory and software development.
5. 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.

7
PROPOSED SYSTEM
Today one cannot afford to rely on the fallible human
beings of be really wants to stand against today’s
merciless competition where not to wise saying “to err is
human” no longer valid, it’s outdated to rationalize your
mistake. So, to keep pace with time, to bring about the
best result without malfunctioning and greater efficiency so
to replace the unending heaps of flies with a much
sophisticated hard disk of the computer.
One has to use the data management software. Software
has been an ascent in atomization various organizations.
Many software products working are now in markets,
which have helped in making the organizations work
easier and efficiently. Data management initially had to
maintain a lot of ledgers and a lot of paper work has to be
done but now software product on this organization has
made their work faster and easier. Now only this software
has to be loaded on the computer and work can be done.
This prevents a lot of time and money. The work becomes
fully automated and any information regarding the
organization can be obtained by clicking the button.
Moreover, now it’s an age of computers of and automating
such an organization gives the better look.

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. 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

9
each phase to ensure the system is being built to deliver the needed
functionality

PHASES OF SYSTEM DEVELOPMENT


LIFE CYCLE INITIATION PHASE
The Initiation Phase begins when a business sponsor identifies a need or
an opportunity

. The purpose of the Initiation Phase is to:

Identify and validate an opportunity to improve business accomplishments


of the organization or a deficiency related to a business need.

Identify significant assumptions and constraints on solutions to that


need.
Recommend the exploration of alternative concepts and methods to
satisfy the need including questioning the need for technology, i.e.,
will a change in the business process offer a solution?
Assure executive business and executive technical sponsorship. The
Sponsor designates a Project Manager and the business need is
documented in a Concept Proposal. The Concept Proposal includes
information about the business process and the relationship to the
Agency/Organization
Infrastructure and the Strategic Plan. A successful Concept Proposal
results in a Project Management Charter which outlines the authority
of the project manager to begin the project.

Careful oversight is required to ensure projects support strategic business


objectives and resources are effectively implemented into an organization's
enterprise architecture. The initiation phase begins when an opportunity to
add, improve, or correct a system is identified and formally requested
through the presentation of a business case. The business case should, at
a minimum, describe a proposal’s purpose, identify expected benefits, and
explain how the proposed system supports one of the organization’s
10
business strategies. The business case should also identify alternative
solutions and detail as many informational, functional, and network
requirements as possible

SYSTEM CONCEPT DEVELOPMENT


PHASE
The System Concept Development Phase begins after a business need or
opportunity is validated by the Agency/Organization Program Leadership
and the Agency/Organization CIO.

The purpose of the System Concept Development Phase is to:

Determine the feasibility and appropriateness of the alternatives.


Identify system interfaces.
Identify basic functional and data requirements to satisfy the business
need.
Establish system boundaries; identify goals, objectives, critical
success factors, and performance measures. Evaluate costs and
benefits of alternative approaches to satisfy the basic functional
requirements
Assess project risks
Identify and initiate risk mitigation actions, and Develop high-level
technical architecture, process models, data models, and a concept
of operations. This phase explores potential technical solutions within
the context of the business need.
It may include several trade-off decisions such as the decision to use
COTS software products as opposed to developing custom software
or reusing software components, or the decision to use an
incremental delivery versus a complete, onetime deployment.

11
Construction of executable prototypes is encouraged to evaluate
technology to support the business process. The System Boundary
Document serves as an important reference document to support the
Information Technology Project Request (ITPR) process.
The ITPR must be approved by the State CIO before the project can
move forward.

PICTORIAL REPRESENTATION OF SDLC:

PLANNING PHASE

The planning phase is the most critical step in completing development,


acquisition, and maintenance projects. Careful planning, particularly in the
early stages of a project, is necessary to coordinate activities and manage

12
project risks effectively. The depth and formality of project plans should be
commensurate with the characteristics and risks of a given project. Project
plans refine the information gathered during the initiation phase by further
identifying the specific activities and resources required to complete a
project.

A critical part of a project manager’ sob is to coordinate discussions


between user, audit, security, design, development, and network personnel
to identify and document as many functional, security, and network
requirements as possible. During this phase, a plan is developed that
documents the approach to be used and includes a discussion of methods,
tools, tasks, resources, project schedules, and user input. Personnel
assignments, costs, project schedule, and target dates are established.

A Project Management Plan is created with components related to


acquisition planning, configuration management planning, quality
assurance planning, concept of operations, system security, verification
and validation, and systems engineering management planning

REQUIREMENTS ANALYSIS PHASE


This phase formally defines the detailed functional user requirements using
high-level requirements identified in the Initiation, System Concept, and
Planning phases. It also delineates the requirements in terms of data,
system performance, security, and maintainability requirements for the
system. The requirements are defined in this phase to alevel of detail
sufficient for systems design to proceed. They need to be measurable,
testable, and relate to the business need or opportunity identified in the
Initiation Phase. The requirements that will be used to determine
acceptance of the system are captured in the Test and Evaluation Master
Plan

The purposes of this phase are to:

13
Further define and refine the functional and data requirements and
document them in the Requirements Document,
Complete business process reengineering of the functions to be
supported (i.e., verify what information drives the business process,
what information is generated, who generates it, where does the
information go, and who processes it),
Develop detailed data and process models (system inputs, outputs,
and the process.
Develop the test and evaluation requirements that will be used to
determine acceptable system performance.

DESIGN PHASE

The design phase involves converting the informational, functional, and


network requirements identified during the initiation and planning phases
into unified design specifications that developers use to script programs
during the development phase. Program designs are c constructed in
various ways. Using a top-down approach, designers first identify and link
major program these include:

Components and interfaces, then expand design layouts as they identify


and link smaller subsystems and connections. Using a bottom-up
approach, designers first identify and link minor program components and
interfaces, then expand design layouts as they identify and link larger
systems and connections. Contemporary design techniques often use
prototyping tools that build mock-up designs of items such as application
screens, database layouts, and system architectures. End users,
designers, developers, database managers, and network administrators
should review and refine the prototyped designs in an iterative process until
they agree on an acceptable design. Audit, security, and quality assurance
personnel should be involved in the review and approval process. During
this phase, the system is designed to satisfy the functional requirements
identified in the previous phase. Since problems in the design phase could
be very expensive to solve in the later stage of the software development, a
variety of elements are considered in the design to mitigate risk.

14
These include:

Identifying potential risks and defining mitigating design features.


Performing a security risk assessment.
Developing a conversion plan to migrate current data to the new
system.
Determining the operating environment.
Defining major subsystems and their inputs and outputs.
Allocating processes to resources.
Preparing detailed logic specifications for each software module. The
result is a draft System Design Document which captures the
preliminary design for the system.
Everything requiring user input or approval is documented and
reviewed by the user. Once these documents have been approved by
the Agency CIO and Business Sponsor, the final System Design
Document is created to serve as the Critical/Detailed Design for the
system.
This document receives a rigorous review by Agency technical and
functional representatives to ensure that it satisfies the business
requirements. Concurrent with the development of the system design,
the Agency Project Manager begins development of the
Implementation Plan, Operations and Maintenance Manual, and the
Training Plan

DEVELOPMENT PHASE

The development phase involves converting design specifications into


executable programs. Effective development standards include
requirements that programmers and other project participants discuss
design specifications before programming begins. The procedures help
ensure programmers clearly understand program designs and functional
requirements. Programmers use various techniques to develop computer
programs. The large transaction oriented programs associated with
financial institutions have traditionally been developed using procedural

15
programming techniques. Procedural programming involves the line-by-line
scripting of logical instructions that are combined to form a program.
Effective completion of the previous stages is a key factor in the success of
the Development phase. The Development phase consists of:

Translating the detailed requirements and design into system


components.
Testing individual elements (units) for usability.
Preparing for integration and testing of the IT system.

INTEGRATION AND TEST PHASE

Subsystem integration, system, security, and user acceptance


testing is conducted during the integration and test phase. The
user, with those responsible for quality assurance, validates that
the functional requirements, as defined in the functional
requirements document, are satisfied by the developed or
modified system. OIT Security staff assess the system security
and issue a security certification and accreditation prior to
installation/implementation.

Multiple levels of testing are performed, including:


Testing at the development facility by the contractor and possibly
supported by end users
Testing as a deployed system with end users working together
with contract personnel
Operational testing by the end user alone performing all functions.
Requirements are traced throughout testing,a final Independent
Verification & Validation evaluation is performed and all
documentation is reviewedand accepted prior to acceptance of the
system
.
IMPLEMENTATION PHASE

This phase is initiated after the system has been tested and
accepted by the user. In this phase, the system is installed to

16
support the intended business functions. System performance is
compared to performance objectives established during the
planning phase. Implementation includes user notification, user
training, installation of hardware, installation of software onto
production computers, and integration of the system into daily
work processes. This phase continues until the system is
operating in production in accordance with the defined
userrequirements
.
OPERATIONS AND MAINTENANCE PHASE

The system operation is ongoing. The system is monitored for


continued performance in accordance with user requirements and
needed system modifications are incorporated. Operations
continue as long as the system can be effectively adapted to
respond to the organization’s needs. When modifications or
changes are identified, the system may reenter the planning
phase.

The purpose of this phase is to:

Operate, maintain, and enhance the system.


Certify that the system can process sensitive information.
Conduct periodic assessments of the system to ensure the
functional requirements continue to be satisfied.
Determine when the system needs to be modernized,
replaced, or retired.

SOURCE CODE

17
from prettytable import PrettyTable
import mysql.connector

mydatabase =
mysql.connector.connect(host="localhost",
user="root", password="PHWa089#lly")

# Creating DATABASE & TABLE


mycursor = mydatabase.cursor()
mycursor.execute("CREATE DATABASE IF
NOT EXISTS studentrecords")
mycursor.execute("USE studentrecords") #
Added this line to use the created database
mycursor.execute("CREATE TABLE IF NOT
EXISTS students (Rollno INT PRIMARY KEY, Name
VARCHAR(20), Class VARCHAR(5), Fees INT)")

# Define the success function


def success():

18
while True:

print(".................................................................................
...........................................................")

print("********************************** MAIN
MENU*******************************")

print(".................................................................................
...........................................................")
print("1. Add Record")
print("2. Display Record")
print("3. Search Record")
print("4. Delete Record")
print("5. Update Record")
print("6. Exit")

print(".................................................................................
...........................................................")

19
# Add Record
a = int(input("Enter your choice:"))
if a == 1:

print(".................................................................................
...........................................................")

print("********************************** Enter
Details of Student**************************")

print(".................................................................................
...............................................................")
R = int(input("Enter Roll no:")) # Convert
to int
N = input("Enter Name:")
F = input("Enter Class:")
D = int(input("Enter Fees:")) # Convert to
int
mycursor = mydatabase.cursor()

20
sql = "INSERT INTO students (Rollno,
Name, Class, Fees) VALUES (%s, %s, %s, %s)"
values = (R, N, F, D)
mycursor.execute(sql, values)
mydatabase.commit()
print("\t \t \t \tInformation Saved")

print(".................................................................................
...................................................................")

# Display All Information


elif a == 2:
mycursor = mydatabase.cursor()
mycursor.execute("SELECT * FROM
students")
myresult = mycursor.fetchall()
t = PrettyTable(['Rollno', 'Name', 'Class',
'Fees'])
for Rollno, Name, Cls, Fee in myresult:

21
t.add_row([Rollno, Name, Cls, Fee])
print(t)

# Search Student By Rollno


elif a == 3:

print(".................................................................................
............................................................")

print("********************************** Search
student by roll no****************************")

print(".................................................................................
....................................................................")
r_1 = input("Enter Student Rollno:")
mycursor = mydatabase.cursor()
mycursor.execute("SELECT * FROM
students WHERE Rollno=" + r_1)
myresult = mycursor.fetchall()

22
t = PrettyTable(['Rollno', 'Name', 'Class',
'Fee'])
for Rollno, Name, Cls, Fee in myresult:
t.add_row([Rollno, Name, Cls, Fee])
print(t)

# Delete Student Information By Rollno


elif a == 4:

print(".................................................................................
...........................................................")

print("********************************** Delete
Student Information By Roll*****************")

print(".................................................................................
...............................................................")
r_1 = input("Enter Student Rollno Whose
Information You Want To Delete=")
mycursor = mydatabase.cursor()
23
mycursor.execute("DELETE FROM
students WHERE Rollno=" + r_1)
mydatabase.commit()
print("\t \t \t \tRecord Deleted
Successfully!!!")

print(".................................................................................
................................................................")

# Update Student Fees Information By Rollno


elif a == 5:

print(".................................................................................
...........................................................")

print("**********************************
Update Student Information By Roll
*****************")

print(".................................................................................
...............................................................")
24
r_1 = input("Enter Student Rollno Whose
fees you want to update:")
new_fees = int(input("New Fees:")) #
Convert to int
mycursor = mydatabase.cursor()
mycursor.execute("SELECT * FROM
students WHERE Rollno=" + r_1)
myresult = mycursor.fetchall()

if myresult:
t = PrettyTable(['Rollno', 'Name', 'Class',
'Fees'])
for Rollno, Name, Cls, Fees in myresult:
t.add_row([Rollno, Name, Cls, Fees])
print("Current Student Information:")
print(t)

# Update fees in the database

25
mycursor.execute("UPDATE students SET
Fees=%s WHERE Rollno=%s", (new_fees, r_1))
mydatabase.commit()

# Display updated information


mycursor.execute("SELECT * FROM
students WHERE Rollno=" + r_1)
updated_result = mycursor.fetchall()
t_updated = PrettyTable(['Rollno', 'Name',
'Class', 'Fees'])
for Rollno, Name, Cls, Fees in
updated_result:
t_updated.add_row([Rollno, Name, Cls,
Fees])
print("\nUpdated Student Information:")
print(t_updated)
else:
print("Student with Rollno " + r_1 + " not
found.")

26
# Exit

exit()

# Main function start

from prettytable import PrettyTable

mydatabase =
mysql.connector.connect(host="localhost",
user="root", password="PHWa089#lly",
database="studentrecords")
mycursor = mydatabase.cursor()

while True:

27
print(".................................................................................
............................................................")

print("*********************************LOGIN*
**************************************")

print(".................................................................................
..............................................................")

username = input("enter username:")


password = input("enter password:")
if username == 'computer' and password ==
'12345':
print("\t \t \t \tLogin successful")
success()
else:

print(".................................................................................
...........................................................")

28
print("\t \t \t \tINVALID USERNAME OR
PASSWORD!!!")

print(".................................................................................
...........................................................")

FLOWCHART

29
OUTPUT

30
31
32
TESTING

Software Testing is an empirical investigation conducted to provide


stakeholders with information about the quality of the product or service
under test[1] , with respect to the context in which it is intended to operate.
Software Testing also provides an objective, independent view of the
software to allow the business to appreciate and understand the risks at
implementation of the software. Test techniques include, but are not limited
to, the process of executing a program or application with the intent of
finding software bugs. It can also be stated as the process of validating and
verifying that a software program/application/product meets the business
and technical requirements that guided its design and development, so that
it works as expected and can be implemented with the same
characteristics. Software Testing, depending on the testing method
employed, can be implemented at any time in the development process,
however the most test effort is employed after the requirements have been
defined and coding process has been completed.

TESTING METHODS

Software testing methods are traditionally divided into black box testing
and white box testing. These two approaches are used to describe the
point of view that a test engineer takes when designing test cases.

BLACK BOX TESTING

Black box testing treats the software as a "black box," without any
knowledge of internal implementation. Black box testing methods include:
equivalence partitioning, boundary value analysis, all-pairs testing, fuzz
testing, model-based testing, traceability matrix, exploratory testing and
specification-based testing.

SPECIFICATION-BASED TESTING

Specification-based testing aims to test the functionality of software


according to the applicable requirements.[16] Thus, the tester inputs data

33
into, and only sees the output from, the test object. This level of testing
usually requires thorough test cases to be provided to the tester, who then
can simply verify that for a given input, the output value (or behavior), either
"is" or "is not" the same as the expected value specified in the test case.
Specification-based testing is necessary, but it is insufficient to guard
against certain risks

ADVANTAGES AND DISADVANTAGES

The black box tester has no "bonds" with the code, and a tester's
perception is very simple: a code must have bugs. Using the principle, "Ask
and you shall receive," black box testers find bugs where programmers
don't. But, on the other hand, black box testing has been said to be "like a
walk in a dark labyrinth without a flashlight," because the tester doesn't
know how the software being tested was actually constructed.

That's why there are situations when (1) a black box tester writes many test
cases to check something that can be tested by only one test case, and/or
(2) some parts of the back end are not tested at all. Therefore, black box
testing has the advantage of "an unaffiliated opinion," on the one hand, and
the disadvantage of "blind exploring," on the other.

WHITE BOX TESTING

White box testing, by contrast to black box testing, is when the tester has
access to the internal data structures and algorithms (and the code that
implement these)

Types of white box testing:-

The following types of white box testing exist:

34
api testing - Testing of the application using Public and Private APIs.
Code coverage - creating tests to satisfy some criteria of code
coverage

. For example, the test designer can create tests to cause all statements in
the program to be executed at least once.

fault injection methods


mutation testing methods.
static testing - White box testing includes all static testing

CODE COMPLETENESS EVALUATION

White box testing methods can also be used to evaluate the completeness
of a test suite that was created with black box testing methods. This allows
the software team to examine parts of a system that are rarely tested and
ensures that the most important function points have been tested.

Two common forms of code coverage are:

Function Coverage: Which reports on functions executed and


Statement Coverage: Which reports on the number of lines executed
to complete the test

They both return coverage metric, measured as a percentage

HARDWARE AND SOFTWARE REQUIREMENTS


I.OPERATING SYSTEM : WINDOWS 7 AND
II. PROCESSOR : PENTIUM(ANY) OR AMD ATHALON(3800+-
4200+ DUAL CORE) III.
MOTHERBOARD : 1.845 OR 915,995 FOR PENTIUM 0R MSI
K9MM-V VIA K8M800+8237R PLUS CHIPSET FOR AMD
ATHALON
IV. RAM : 512MB+

35
V. Hard disk : SATA 40 GB OR ABOVE
VI. CD/DVD r/w multi drive combo: (If back up required)
VII. FLOPPY DRIVE 1.44 MB : (If Backup required)
VIII. MONITOR 14.1 or 15 -17 inch IX. Key board and mouse
X. Printer : (if print is required – [Hard copy])

SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
III. MySQL

BIBLIOGRAPHY
1. Computer science With Python - Class XII By :
Sumita Aurora
2. A Project Report On Blood Bank Management
System (BBMS) By : Praveen M Jig jinni
3. Website: https://www.w3resource.com 4.
https://en.wikipedia.org/wiki/E_(mathematical_const
ant)
36
37

You might also like