Python Project New Dilli
Python Project New Dilli
Computer
science
Investigatory project
Powered by
DILLIES V.A
ADITHYAN NS
JAWAHAR NAVODAYA VIDYALAYA, KANNUR
ACADEMIC YEAR:2023-24
PROJECT REPORT ON
MANAGEMENT SYSTEM
1
JAWAHAR NAVODAYA VIDAYALA,KANNUR
CERTIFICATE
Internal Examiner:
Name: _______________
Signature: Principal
External Examiner:
Name: _______________
Signature
2
DECLARATION
Date name 1
Place
3
TABLE OF CONTENTS [ T O C ]
PAGE
SER DESCRIPTION
NO
01 ACKNOWLEDGEMENT 05
02 INTRODUCTION 06
04 PROPOSED SYSTEM 06
07 FLOW CHART 15
08 SOURCE CODE 17
09 OUTPUT 28
10 TESTING 29
12 BIBLIOGRAPHY 32
4
ACKNOWLEDGEMENT
Apart from the efforts of me, the success of any project depends largely
on the encouragement and guidelines of many others. I take this
opportunity to express my gratitude to the people who have been
instrumental in the successful completion of this project. I gratefully
acknowledge the contribution of the individuals who contributed in
bringing this project up to this level, who continues to look after me
despite my flaws, I express my deep sense of gratitude to the luminary
The Principal Jawahar Navodaya Kannur who has been continuously
motivating and extending their helping hand to us.I am overwhelmed to
express my thanks to The Administrative Officer for providing me an
infrastructure and moral support while carrying out this project in the
school. My sincere thanks to Jisna.C.K, Master In-charge, A guide,
Mentor all the above a friend, who critically reviewed my project and
helped in solving each and every problem, occurred during
implementation of the project. The guidance and support received from
all the members who contributed and who are contributing to this
project, was vital for the success of the project. I am grateful for their
constant support and help
5
Introduction:
In this project ,we are going to create GUI scientific calculator using python
.As you can see, calculating large numbers nowadays is difficult and time
consuming .We have created a simple scientific calculator GUI using Python that
allows you to perform simple and complex calculations. To implement GUI we
use the thinker module of python.
Proposed system:
The proposed system is error free. Trivial concepts of Python language
are implemented into the system. As, the usage of Python Tkinter as the GUI
provided various controls, such as buttons, labels, and text boxes to build a user
friendly application. The rapid expansion and use of the internet, confirms the
splendid future and scope of the project.
6
SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
7
PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE
INITIATION PHASE
8
organization’s business strategies. The business case should also identify
alternative solutions and detail as many informational, functional, and
network requirements as possible.
9
PICTORIAL REPRESENTATION OF SDLC:
PLANNING 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 a level 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.
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
DEVELOPMENT PHASE
12
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
programming techniques. Procedural programming involves the line-by-line
scripting of logical
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 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 user requirements.
14
flowchart
15
16
Source code
from tkinter import *
import math
import tkinter.messagebox
root = Tk()
root.title("Scientific Calculator")
root.configure(background = 'white')
root.resizable(width=False, height=False)
root.geometry("480x568+450+90")
calc = Frame(root)
calc.grid()
class Calc():
def __init__(self):
self.total=0
self.current=''
self.input_value=True
self.check_sum=False
self.op=''
self.result=False
def sum_of_total(self):
self.result=True
self.current=float(self.current)
if self.check_sum==True:
self.valid_function()
17
else:
self.total=float(txtDisplay.get())
def valid_function(self):
if self.op == "add":
self.total += self.current
if self.op == "sub":
self.total -= self.current
if self.op == "multi":
self.total *= self.current
if self.op == "divide":
self.total /= self.current
if self.op == "mod":
self.total %= self.current
self.input_value=True
self.check_sum=False
self.display(self.total)
def Clear_Entry(self):
self.result = False
self.current = "0"
self.display(0)
self.input_value=True
def All_Clear_Entry(self):
self.Clear_Entry()
self.total=0
18
def pi(self):
self.result = False
self.current = math.pi
self.display(self.current)
def tau(self):
self.result = False
self.current = math.tau
self.display(self.current)
def e(self):
self.result = False
self.current = math.e
self.display(self.current)
def mathPM(self):
self.result = False
self.current = -(float(txtDisplay.get()))
self.display(self.current)
def squared(self):
self.result = False
self.current = math.sqrt(float(txtDisplay.get()))
self.display(self.current)
def cos(self):
self.result = False
self.current = math.cos(math.radians(float(txtDisplay.get())))
self.display(self.current)
def cosh(self):
self.result = False
self.current = math.cosh(math.radians(float(txtDisplay.get())))
self.display(self.current)
def tan(self):
self.result = False
self.current = math.tan(math.radians(float(txtDisplay.get())))
self.display(self.current)
def tanh(self):
19
self.result = False
self.current = math.tanh(math.radians(float(txtDisplay.get())))
self.display(self.current)
def sin(self):
self.result = False
self.current = math.sin(math.radians(float(txtDisplay.get())))
self.display(self.current)
def sinh(self):
self.result = False
self.current = math.sinh(math.radians(float(txtDisplay.get())))
self.display(self.current)
def log(self):
self.result = False
self.current = math.log(float(txtDisplay.get()))
self.display(self.current)
def exp(self):
self.result = False
self.current = math.exp(float(txtDisplay.get()))
self.display(self.current)
def acosh(self):
self.result = False
self.current = math.acosh(float(txtDisplay.get()))
self.display(self.current)
def asinh(self):
self.result = False
self.current = math.asinh(float(txtDisplay.get()))
self.display(self.current)
def expm1(self):
self.result = False
self.current = math.expm1(float(txtDisplay.get()))
self.display(self.current)
def lgamma(self):
self.result = False
20
self.current = math.lgamma(float(txtDisplay.get()))
self.display(self.current)
def degrees(self):
self.result = False
self.current = math.degrees(float(txtDisplay.get()))
self.display(self.current)
def log2(self):
self.result = False
self.current = math.log2(float(txtDisplay.get()))
self.display(self.current)
def log10(self):
self.result = False
self.current = math.log10(float(txtDisplay.get()))
self.display(self.current)
def log1p(self):
self.result = False
self.current = math.log1p(float(txtDisplay.get()))
self.display(self.current)
added_value = Calc()
numberpad = "789456123"
i=0
btn = []
for j in range(2,5):
for k in range(3):
btn.append(Button(calc, width=6, height=2,
bg='black',fg='white',
font=('Helvetica',20,'bold'),
bd=4,text=numberpad[i]))
btn[i].grid(row=j, column= k, pady = 1)
21
btn[i]["command"]=lambda
x=numberpad[i]:added_value.numberEnter(x)
i+=1
# ROW 2 :
btn2Pi = Button(calc, text="2pi",width=6,
height=2,bg='black',fg='white',
font=('Helvetica',20,'bold'),
bd=4,command=added_value.tau
).grid(row=2, column= 4, pady = 1)
# ROW 3 :
btnlog = Button(calc, text="log",width=6,
height=2,bg='black',fg='white',
font=('Helvetica',20,'bold'),
bd=4,command=added_value.log
).grid(row=3, column= 4, pady = 1)
24
btnExp = Button(calc, text="exp",width=6, height=2,
bg='black',fg='white',
font=('Helvetica',20,'bold'),
bd=4,command=added_value.exp
).grid(row=3, column= 5, pady = 1)
# ROW 4 :
btnlog10 = Button(calc, text="log10",width=6,
height=2,bg='black',fg='white',
font=('Helvetica',20,'bold'),
bd=4,command=added_value.log10
).grid(row=4, column= 4, pady = 1)
def iExit():
iExit = tkinter.messagebox.askyesno("Scientific Calculator",
"Do you want to exit ?")
if iExit>0:
root.destroy()
return
def Scientific():
root.resizable(width=False, height=False)
root.geometry("944x568+0+0")
26
def Standard():
root.resizable(width=False, height=False)
root.geometry("480x568+0+0")
menubar = Menu(calc)
# ManuBar 1 :
filemenu = Menu(menubar, tearoff = 0)
menubar.add_cascade(label = 'File', menu = filemenu)
filemenu.add_command(label = "Standard", command = Standard)
filemenu.add_command(label = "Scientific", command = Scientific)
filemenu.add_separator()
filemenu.add_command(label = "Exit", command = iExit)
# ManuBar 2 :
editmenu = Menu(menubar, tearoff = 0)
menubar.add_cascade(label = 'Edit', menu = editmenu)
editmenu.add_command(label = "Cut")
editmenu.add_command(label = "Copy")
editmenu.add_separator()
editmenu.add_command(label = "Paste")
root.config(menu=menubar)
root.mainloop()
27
28
TESTING
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.
29
SPECIFICATION-BASED TESTING
be provided to the tester, who then can simply verify that for a given
input, the output value (or behaviour), 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
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, 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)
30
Types of white box testing:-
The following types of white box testing exist:
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.
31
HARDWARE AND SOFTWARE REQUIREMENTS
SOFTWARE REQUIREMENTS:
I. Windows OS
II. Python
BIBLIOGRAPHY
https://realpython.com/python-gui-tkinter/
https://ncert.nic.in/textbook.php?lecs1=0-13
computer science textbook for class 12 ncert
32
33
34