[go: up one dir, main page]

0% found this document useful (0 votes)
217 views20 pages

PWP Micro Project

Uploaded by

samarthkadam585
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)
217 views20 pages

PWP Micro Project

Uploaded by

samarthkadam585
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/ 20

Maharashtra State Board of Technical Education, Mumbai

Program Name: Diploma in Computer Engineering


Academic Year:2023-24 Course: CO-6-I Subject: PWP(22616)

A
Study
On

“Scientific Calculator Using Python ”


MICRO-PROJECT REPORT
Submitted in 2024 by group of 2 members

Sr. Roll Full Name of Students Enrollment


No. No. No. Exam
Seat
No.
1 CO-18 Samarth Rameshwar Kadam 2215860001 267570

2 CO-27 Pawanraj Rajendra Jadhav 2115860011 267579

Under the guidance of


Mr.Shrikhande S.B
In
Three Years Diploma Program in Computer Engineering
At
Sahakar Maharshi Shankarrao Mohite -Patil Institute of Technology&
Research, Shankarnagar-Akluj (Code: 1586)
Maharashtra State Board of Technical Education
CERTIFICATE

This is to certify that Ms/Mr. Roll No. of__Semester


of Diploma in of the Institute, Sahakar Maharshi Shankarrao
Mohite-Patil Institute of Technology & Research, Shankarnagar-Akluj (Code :1586) has
completed the Micro-Project satisfactorily in the Subject –PWP(22616) for the academic year
2023-2024 as prescribed in the curriculum by MSBTE. The project report has been approved as it
satisfies the academic requirements in respect of project work prescribed for the said Diploma.

Place: Enrollment No: _____________

Date: Exam Seat No: _

Project Guide Internal/ External Examiner


(Ms.Shrikhande S.B)

Subject Teacher Head of Department Principal


(Ms.Shrikhande S.B) ( Mr.Phade. G.M ) (Dr.Dhawale P.A)

Seal of
INDEX

Sr No Title Page.no

1 Introduction 4

2 Python Features 5

3 Code 7

4 Output 17

4 Conclusion 18

5 Evaluation Sheet 19

3
INTRODUCTION

Python is a high-level, interpreted, interactive and object-oriented cripting language.


Python is designed to be highly readable. It uses English keywords frequently where as
other languages use punctuation, and it has fewer syntactical constructions than other
languages.

Python is Interpreted −
Python is processed at runtime by the interpreter. You do not need to compile your
program before executing it. This is similar to PERL and PHP.

Python is Interactive −
You can actually sit at a Python prompt and interact with the interpreter directly to
write your programs.

Python is Object-Oriented −
Python supports Object-Oriented style or technique of programming that
encapsulates code within objects.

Python is a Beginner's Language −


Python is a great language for the beginner-level programmers and supports the
development of a wide range of applications from simple text processing to WWW
browsers to games.

History of Python
Python was developed by Guido van Rossum in the late eighties and early nineties at
the National Research Institute for Mathematics and Computer Science in the
Netherlands.
Python is derived from many other languages, including ABC, Modula-3,C, C++,
Algol-68, SmallTalk, and Unix shell and other scripting languages.
Python is copyrighted. Like Perl, Python source code is now available under the GNU
General Public License (GPL).
Python is now maintained by a core development team at the institute, although Guido
van Rossum still holds a vital role in directing its progress.

4
Python Features Python's features include −

Easy-to-learn
− Python has few keywords, simple structure, and a clearly defined
syntax. This allows the student to pick up the language quickly.

Easy-to-read
− Python code is more clearly defined and visible to the eyes.

Easy-to-maintain
− Python's source code is fairly easy-tomaintain.

A broad standard library


− Python's bulk of the library is very portable and cross-platform
compatible on UNIX, Windows, and Macintosh.

Interactive Mode
− Python has support for an interactive mode which allows
interactive testing and debugging of snippets of code.

Portable
− Python can run on a wide variety of hardware platforms and has
the same interface on all platforms.

Extendable
− You can add low-level modules to the Python interpreter. These
modules enable programmers to add to or customize their tools to be
more efficient.

Databases
− Python provides interfaces to all major commercial databases.

GUI Programming
− Python supports GUI applications that can be created and ported
to many system calls, libraries and windows systems, such as Windows
MFC, Macintosh, and the X Window system of Unix.

5
Scalable
− Python provides a better structure and support for large
programs than shell scripting. Apart from the above-mentioned features,

Python has a big list of good features, few are listed below −

 It supports functional and structured programming methods as well


as OOP.
 It can be used as a scripting language or can be compiled to
bytecode for buildinglarge applications. 
 It provides very high-level dynamic data types and supports
dynamic type checking. 
 It supports automatic garbage collection. It can be easily
integrated with C, C++, COM, ActiveX, CORBA, and Java.

6
Code:-

from tkinter import *


import tkinter.messagebox
import math

root = Tk()
root.geometry("650x400+300+300")
root.title("Scientific Calculator by Pramoth")

switch = None

# Button on press
def btn1_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '1')

def btn2_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '2')

def btn3_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '3')

def btn4_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '4')

def btn5_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '5') 7

def btn6_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '6')

def btn7_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '7')

def btn8_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '8')

def btn9_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '9')

def btn0_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, '0')

def key_event(*args):
if disp.get() == '0':
disp.delete(0, END)

def btnp_clicked():
pos = len(disp.get())
disp.insert(pos, '+')

def btnm_clicked():
pos = len(disp.get())
disp.insert(pos, '-')

def btnml_clicked():
pos = len(disp.get())
disp.insert(pos, '*')

def btnd_clicked(): 8
pos = len(disp.get())
disp.insert(pos, '/')
def btnc_clicked(*args):
disp.delete(0, END)
disp.insert(0, '0')

def sin_clicked():
try:
ans = float(disp.get())
if switch is True:
ans = math.sin(math.radians(ans))
else:
ans = math.sin(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def cos_clicked():
try:
ans = float(disp.get())
if switch is True:
ans = math.cos(math.radians(ans))
else:
ans = math.cos(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def tan_clicked():
try:
ans = float(disp.get())
if switch is True:
ans = math.tan(math.radians(ans))
else:
ans = math.tan(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def arcsin_clicked(): 9
try:
ans = float(disp.get())
if switch is True:
ans = math.degrees(math.asin(ans))
else:
ans = math.asin(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def arccos_clicked():
try:
ans = float(disp.get())
if switch is True:
ans = math.degrees(math.acos(ans))
else:
ans = math.acos(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def arctan_clicked():
try:
ans = float(disp.get())
if switch is True:
ans = math.degrees(math.atan(ans))
else:
ans = math.atan(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def pow_clicked():
pos = len(disp.get())
disp.insert(pos, '**')

def round_clicked():
try:
ans = float(disp.get())
ans = round(ans)
disp.delete(0, END) 10
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def logarithm_clicked():
try:
ans = float(disp.get())
ans = math.log10(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def fact_clicked():
try:
ans = float(disp.get())
ans = math.factorial(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def sqr_clicked():
try:
ans = float(disp.get())
ans = math.sqrt(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def dot_clicked():
pos = len(disp.get())
disp.insert(pos, '.')

def pi_clicked():
if disp.get() == '0':
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, str(math.pi))

def e_clicked():
if disp.get() == '0': 11
disp.delete(0, END)
pos = len(disp.get())
disp.insert(pos, str(math.e))
def bl_clicked():
pos = len(disp.get())
disp.insert(pos, '(')

def br_clicked():
pos = len(disp.get())
disp.insert(pos, ')')

def del_clicked():
pos = len(disp.get())
display = str(disp.get())
if display == '':
disp.insert(0, '0')
elif display == '0':
pass
else:
disp.delete(0, END)
disp.insert(0, display[0:pos-1])

def conv_clicked():
global switch
if switch is None:
switch = True
conv_btn['text'] = "Deg"
else:
switch = None
conv_btn['text'] = "Rad"

def ln_clicked():
try:
ans = float(disp.get())
ans = math.log(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

def mod_clicked():
pos = len(disp.get())
disp.insert(pos, '%')

def btneq_clicked(*args): 12
try:
ans = disp.get()
ans = eval(ans)
disp.delete(0, END)
disp.insert(0, ans)
except:
tkinter.messagebox.showerror("Value Error", "Check your values and
operators")

# Label
data = StringVar()
disp = Entry(root, font="Verdana 20", fg="black", bg="mistyrose", bd=0,
justify=RIGHT, insertbackground="#abbab1", cursor="arrow")
disp.bind("<Return>", btneq_clicked)
disp.bind("<Escape>", btnc_clicked)
disp.bind("<Key-1>", key_event)
disp.bind("<Key-2>", key_event)
disp.bind("<Key-3>", key_event)
disp.bind("<Key-4>", key_event)
disp.bind("<Key-5>", key_event)
disp.bind("<Key-6>", key_event)
disp.bind("<Key-7>", key_event)
disp.bind("<Key-8>", key_event)
disp.bind("<Key-9>", key_event)
disp.bind("<Key-0>", key_event)
disp.bind("<Key-.>", key_event)
disp.insert(0, '0')
disp.focus_set()
disp.pack(expand=TRUE, fill=BOTH)

# Row 1 Buttons
btnrow1 = Frame(root, bg="#000000")
btnrow1.pack(expand=TRUE, fill=BOTH)

pi_btn = Button(btnrow1, text="π", font="Segoe 18", relief=GROOVE, bd=0,


command=pi_clicked, fg="white", bg="#333333")
pi_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

fact_btn = Button(btnrow1, text=" x! ", font="Segoe 18", relief=GROOVE, bd=0,


command=fact_clicked, fg="white", bg="#333333")
fact_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

sin_btn = Button(btnrow1, text="sin", font="Segoe 18", relief=GROOVE, bd=0,


command=sin_clicked, fg="white", bg="#333333")
sin_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

cos_btn = Button(btnrow1, text="cos", font="Segoe 18", relief=GROOVE, bd=0,13


command=cos_clicked, fg="white", bg="#333333")
cos_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)
tan_btn = Button(btnrow1, text="tan", font="Segoe 18", relief=GROOVE, bd=0,
command=tan_clicked, fg="white", bg="#333333")
tan_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

btn1 = Button(btnrow1, text="1", font="Segoe 23", relief=GROOVE, bd=0,


command=btn1_clicked, fg="white", bg="#333333")
btn1.pack(side=LEFT, expand=TRUE, fill=BOTH)

btn2 = Button(btnrow1, text="2", font="Segoe 23", relief=GROOVE, bd=0,


command=btn2_clicked, fg="white", bg="#333333")
btn2.pack(side=LEFT, expand=TRUE, fill=BOTH)

btn3 = Button(btnrow1, text="3", font="Segoe 23", relief=GROOVE, bd=0,


command=btn3_clicked, fg="white", bg="#333333")
btn3.pack(side=LEFT, expand=TRUE, fill=BOTH)

btnp = Button(btnrow1, text="+", font="Segoe 23", relief=GROOVE, bd=0,


command=btnp_clicked, fg="white", bg="#333333")
btnp.pack(side=LEFT, expand=TRUE, fill=BOTH)

# Row 2 Buttons
btnrow2 = Frame(root)
btnrow2.pack(expand=TRUE, fill=BOTH)

e_btn = Button(btnrow2, text="e", font="Segoe 18", relief=GROOVE, bd=0,


command=e_clicked, fg="white", bg="#333333")
e_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

sqr_btn = Button(btnrow2, text=" √x ", font="Segoe 18", relief=GROOVE, bd=0,


command=sqr_clicked, fg="white", bg="#333333")
sqr_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

sinh_btn = Button(btnrow2, text="sin−1", font="Segoe 11 bold", relief=GROOVE,


bd=0, command=arcsin_clicked, fg="white", bg="#333333")
sinh_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

cosh_btn = Button(btnrow2, text="cos1", font="Segoe 11 bold", relief=GROOVE,


bd=0, command=arccos_clicked, fg="white", bg="#333333")
cosh_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

tanh_btn = Button(btnrow2, text="tan1", font="Segoe 11 bold", relief=GROOVE,


bd=0, command=arctan_clicked, fg="white", bg="#333333")
tanh_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)
14
btn4 = Button(btnrow2, text="4", font="Segoe 23", relief=GROOVE, bd=0,
command=btn4_clicked, fg="white", bg="#333333")
btn4.pack(side=LEFT, expand=TRUE, fill=BOTH)
btn5 = Button(btnrow2, text="5", font="Segoe 23", relief=GROOVE, bd=0,
command=btn5_clicked, fg="white", bg="#333333")
btn5.pack(side=LEFT, expand=TRUE, fill=BOTH)

btn6 = Button(btnrow2, text="6", font="Segoe 23", relief=GROOVE, bd=0,


command=btn6_clicked, fg="white", bg="#333333")
btn6.pack(side=LEFT, expand=TRUE, fill=BOTH)

btnm = Button(btnrow2, text=" - ", font="Segoe 23", relief=GROOVE, bd=0,


command=btnm_clicked, fg="white", bg="#333333")
btnm.pack(side=LEFT, expand=TRUE, fill=BOTH)

# Row 3 Buttons
btnrow3 = Frame(root)
btnrow3.pack(expand=TRUE, fill=BOTH)

conv_btn = Button(btnrow3, text="Rad", font="Segoe 12 bold", relief=GROOVE,


bd=0, command=conv_clicked, fg="white", bg="#333333")
conv_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

round_btn = Button(btnrow3, text="round", font="Segoe 10 bold", relief=GROOVE,


bd=0, command=round_clicked, fg="white", bg="#333333")
round_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

ln_btn = Button(btnrow3, text="ln", font="Segoe 18", relief=GROOVE, bd=0,


command=ln_clicked, fg="white", bg="#333333")
ln_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

logarithm_btn = Button(btnrow3, text="log", font="Segoe 17", relief=GROOVE,


bd=0, command=logarithm_clicked, fg="white", bg="#333333")
logarithm_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

pow_btn = Button(btnrow3, text="x^y", font="Segoe 17", relief=GROOVE, bd=0,


command=pow_clicked, fg="white", bg="#333333")
pow_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

btn7 = Button(btnrow3, text="7", font="Segoe 23", relief=GROOVE, bd=0,


command=btn7_clicked, fg="white", bg="#333333")
btn7.pack(side=LEFT, expand=TRUE, fill=BOTH)

btn8 = Button(btnrow3, text="8", font="Segoe 23", relief=GROOVE, bd=0,


command=btn8_clicked, fg="white", bg="#333333")
btn8.pack(side=LEFT, expand=TRUE, fill=BOTH) 15

btn9 = Button(btnrow3, text="9", font="Segoe 23", relief=GROOVE, bd=0,


command=btn9_clicked, fg="white", bg="#333333")
btn9.pack(side=LEFT, expand=TRUE, fill=BOTH)

btnml = Button(btnrow3, text="*", font="Segoe 23", relief=GROOVE, bd=0,


command=btnml_clicked, fg="white", bg="#333333")
btnml.pack(side=LEFT, expand=TRUE, fill=BOTH)

# Row 4 Buttons
btnrow4 = Frame(root)
btnrow4.pack(expand=TRUE, fill=BOTH)

mod_btn = Button(btnrow4, text="%", font="Segoe 21", relief=GROOVE, bd=0,


command=mod_clicked, fg="white", bg="#333333")
mod_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

bl_btn = Button(btnrow4, text=" ( ", font="Segoe 21", relief=GROOVE, bd=0,


command=bl_clicked, fg="white", bg="#333333")
bl_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

br_btn = Button(btnrow4, text=" ) ", font="Segoe 21", relief=GROOVE, bd=0,


command=br_clicked, fg="white", bg="#333333")
br_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

dot_btn = Button(btnrow4, text=" • ", font="Segoe 21", relief=GROOVE, bd=0,


command=dot_clicked, fg="white", bg="#333333")
dot_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

btnc = Button(btnrow4, text="C", font="Segoe 23", relief=GROOVE, bd=0,


command=btnc_clicked, fg="white", bg="#333333")
btnc.pack(side=LEFT, expand=TRUE, fill=BOTH)

del_btn = Button(btnrow4, text="⌫", font="Segoe 20", relief=GROOVE, bd=0,


command=del_clicked, fg="white", bg="#333333")
del_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

btn0 = Button(btnrow4, text="0", font="Segoe 23", relief=GROOVE, bd=0,


command=btn0_clicked, fg="white", bg="#333333")
btn0.pack(side=LEFT, expand=TRUE, fill=BOTH)

btneq = Button(btnrow4, text="=", font="Segoe 23", relief=GROOVE, bd=0,


command=btneq_clicked, fg="white", bg="#333333")
btneq.pack(side=LEFT, expand=TRUE, fill=BOTH)

btnd = Button(btnrow4, text="/", font="Segoe 23", relief=GROOVE, bd=0,


command=btnd_clicked, fg="white", bg="#333333") 16
btnd.pack(side=LEFT, expand=TRUE, fill=BOTH)

root.mainloop()
17
CONCLUSION

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.

18
Teacher Evaluation Sheet

Name of Student: ……………………………………………………….

Enrollment No……………..…………………

Name of Program:
………………………………………………………….Semester:……………………………………...

Course Title-
…………………………………………………………………………………………………………………
…..

Code: ……………………………………….

Title of the Micro-Project:


……………………………………………………………………………………………………..

Course outcomes Achieved:

…………………………………………………………………………………………………………………
……………………………

Evaluation as per Suggested Rubric for Assessment of Micro-Project:-

. Characteristics to Poor Average Good Excellent


No. beassessed
(Marks 1- (Marks 4- (Marks 6- (Marks 9-
3) 5) 8) 10)
1 Relevance to the course

2 Literature Survey/
Information Collection

3 Project Proposal

4 Completion of the Targetas


per project proposal

5 Analysis of data and


representation

6 Quality of Prototype/
Model

7 Report Preparation

8 Presentation

9 Defence

19
Micro-Project Evaluation Sheet

Process Assessment Product Assessment

Part A-Project Project Part B-Project Individual


Proposal Report/ Working Presentation/Viva Total Marks 10
Methodology Model(2Marks)
(2Marks) (4Marks)
(2Marks)

Note:

Every course teacher is expected to assign marks for group evolution in first
3 columns & individual evaluation in 4th column for each group of students
as perrubrics.

Comment/Suggestions about team work/ leadership/inter-personal communication (ifany)

………………………………………………………………………………………………………………
……………………………

………………………………………………………………………………………………………………
……………………………

………………………………………………………………………………………………………………
………………………

…….. Any Other Comment:

………………………………………………………………………………………………………………
……………………………

Name and Designation of the Faculty


Member………………………………………………………………………

Signature……………………………………………………………………………………………………
………

20

You might also like