0% found this document useful (0 votes)
50 views21 pages

RKL Final

This document outlines the code for a mini calculator application. It includes the algorithm, flowchart and program code for building a calculator that can perform basic arithmetic operations like addition, subtraction, multiplication and division.

Uploaded by

Rushikesh Kanse
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views21 pages

RKL Final

This document outlines the code for a mini calculator application. It includes the algorithm, flowchart and program code for building a calculator that can perform basic arithmetic operations like addition, subtraction, multiplication and division.

Uploaded by

Rushikesh Kanse
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

MAHARASHTRA STATE BOARD OF

TECHNICAL EDUCATION (MUMBAI)


A
Micro Project Report
On
“Prepare a Report on Mini Calculator”

Submitted By Enrollment Number Roll-Number


1. Payal Kiran Kanse 2211690048 21
2. Shrusti Balasaheb Mande 2211690034 08
3. Sakshi Santosh Lagad 23611800148 36
4. Megha Somnath Nalawade 23611800146 34

Guided By Prof:- Kharade.S.N

Department of Computer Engineering


HSBPVT’S Parikrama Polytechnic Kashti

1
HSBPVT’S Parikrama Polytechnic Kashti

CERTIFICATE

This is to Certify That

Miss. Payal Kiran Kanse.

Miss. Shrusti Balasaheb Mande.

Miss. Sakshi Santosh Lagad.

Miss. Megha Somnath Nalawade.

Of Second Year (Fourth Semester) Have Successfully Completed The Micro-


Project Work Entitled “Prepare A Report On Mini Calculator” in the
Microprocessor (22415) of Program Diploma In Computer Engineering of
Maharashtra State Board of Technical Education Mumbai.

Prof:-…………………… Prof:-………………. Prof:-………………….

Guide Hod Principal

Date:-

Place:-
2
INDEX

Sr.N Content Page.No


o

1 Aim 4

2 Course Outcome 4

3 Introduction 5

4 Algorithm 6

5 Flowchart 7

6 Program Code 8

7 Output 18

8 Resource Used 19

9 Conclusion 20

10 Reference 21

3
Aim:-
Mini Calculator

Course Outcome:-
 Analyze the functional block of 8086 microprocessor.
 Write assembly language program for the given problem.
 Use instructions for different addressing modes.

4
Introduction:- A microprocessor is an important part of a computer
architecture without which you will not able to perform anything on your
computer. It is a programmable device that takes in input performs some
arithmetic and logical operations over it and produces the desired output. In
simple words, a microprocessor is a digital device on a chip that can fetch
instructions from memory, decode and excute them and give results.Mini
calculators are compact, handheld devices designed for basic arithmetic
calculations. These devices offer convenience and simplicity for everyday
mathematical tasks, making them popular among students, professionals, and
individuals needing quick calculations on the go. Mini calculators are simple
devices designed to perform basic arithmetic calculations quickly and
efficiently. Behind their seemingly straightforward functionality lies a robust
algorithm that enables them to carry out operations such as addition,
subtraction, multiplication, and division. This report delves into the algorithmic
aspects of mini calculators, providing insights into how these devices process
mathematical operations.

5
Algorithm:-
1. Input: The algorithm begins by receiving input from the user, which
includes numerical values and the desired operation (addition,
subtraction, multiplication, or division).

2. Parsing Input: The input is parsed to extract the numerical values and
identify the operation to be performed.

3.Performing the Operation:

 For addition: The algorithm adds the two input values.


 For subtraction: It subtracts the second value from the first.
 For multiplication: It multiplies the two values.
 For division: It divides the first value by the second (taking care to
handle division by zero).

4.Displaying Result: The calculated result is then displayed to the user on

the calculator's screen.

5. Memory Functions: Mini calculators may include memory functions to

store and recall previous results, allowing users to perform multiple

calculations without re-entering values.

6. Error Handling: Robust error handling mechanisms are implemented to

detect and handle input errors, such as invalid characters or division by

zero.

7. Floating-point Arithmetic: To support decimal calculations, mini

calculators utilize algorithms for floating-point arithmetic, ensuring

accurate results for both integers and decimals.

8. Scientific Functions: Advanced mini calculators may offer scientific

functions such as square root, exponentiation, trigonometric functions,

6
and logarithms, requiring more complex algorithms for computation.

FlowChart:-

7
Program 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')

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

8
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():
pos = len(disp.get())
disp.insert(pos, '/')

def btnc_clicked(*args):
disp.delete(0, END)
disp.insert(0, '0')

9
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 ope
rators")

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 ope
rators")

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 ope
rators")

def arcsin_clicked():
try:
ans = float(disp.get())
if switch is True:
ans = math.degrees(math.asin(ans))
else:
ans = math.asin(ans)
disp.delete(0, END)

10
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and ope
rators")

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 ope
rators")

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 ope
rators")

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)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and ope
rators")

def logarithm_clicked():
try:
ans = float(disp.get())

11
ans = math.log10(ans)
disp.delete(0, END)
disp.insert(0, str(ans))
except Exception:
tkinter.messagebox.showerror("Value Error", "Check your values and ope
rators")

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 ope
rators")
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 ope
rators")

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':
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())

12
disp.insert(pos, ')')

def del_clicked():
pos = len(disp.get())
display = str(disp.get())
if display == '':
disp.insert(0, '0')
elif display == ' ':
disp.insert(0, '0')
elif display == '0':
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 ope
rators")

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

def btneq_clicked(*args):
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 ope
rators")

# Label

13
data = StringVar()

disp = Entry(root, font="Verdana 20", fg="black", bg="mistyrose", bd=0, justif


y=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, comma


nd=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, co


mmand=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, co


mmand=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, co


mmand=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

14
=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, comman


d=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, comman


d=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, c


ommand=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="cos


1", font="Segoe 11 bold", relief=GROOVE, bd=0, command=arccos_clicked, fg="whi
te", bg="#333333")
cosh_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

tanh_btn = Button(btnrow2, text="tan


1", font="Segoe 11 bold", relief=GROOVE, bd=0, command=arctan_clicked, fg="whi
te", bg="#333333")
tanh_btn.pack(side=LEFT, expand=TRUE, fill=BOTH)

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")

15
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, comm


and=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, co


mmand=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)

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, comman

16
d=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, comm


and=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, com


mand=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, com


mand=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, co


mmand=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, comm


and=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, comman


d=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")
btnd.pack(side=LEFT, expand=TRUE, fill=BOTH)

root.mainloop()

17
OutPut:-

18
Resource Used:-
Sr.no Names Of Component Qty

1. System Window 11
Ram 8GB
SSD 512GB
2. Software 8086
Emulator

Conclusion:-
19
In conclusion, the mini calculator serves as a compact and efficient tool for
performing basic arithmetic calculations. Through this report, we have explored
various aspects of the mini calculator, including its features, uses, algorithms,
and flowchart representation.

Mini calculators offer several advantages, including portability, ease of use,


affordability, and durability. Their compact size allows users to carry them
anywhere, making them ideal for students, professionals, and individuals
needing quick calculations on the go. Despite advancements in technology, mini
calculators remain relevant due to their simplicity and practicality.

The algorithms implemented in mini calculators enable them to perform


arithmetic operations accurately and efficiently. Whether it's addition,
subtraction, multiplication, or division, mini calculators follow a systematic
process to produce reliable results. Flowchart diagrams provide a visual
representation of this process, aiding in understanding the logical flow of
operations involved in calculation.

Moreover, mini calculators continue to evolve, incorporating enhancements


such as memory functions, scientific calculations, and error handling
mechanisms. These features further enhance the usability and functionality of
mini calculators, catering to the diverse needs of users across various domains.

Reference:-

20
[1] AI Sweigart - Automate the Boring Stuff with Python, 2nd Edition: Practical
Programming for Total Beginners – 2015.

[2] Python GUI Programming with Tkinter: Develop Responsive and Powerful
GUI Applications with Tkinter – 2018.

[3] Python Crash Course by Eric Matthes: This book is an excellent resource for
beginners to Python programming. It covers fundamental concepts and includes
practical projects, such as building a basic calculator, which you can use as a
reference for your report.

[4] Tutorialspoint ( https://www.tutorialspoint.com ):Tutorialspoint offers


tutorials and documentation on various programming languages and
technologies, including Python, JavaScript, Java, and HTML/CSS. You can find
step-by-step guides and examples for building basic calculator applications in
different programming languages.

[5] MDN Web Docs ( https://developer.mozilla.org ):MDN Web Docs is a


comprehensive resource for web development, covering HTML, CSS, and
JavaScript. You can find detailed documentation, tutorials, and examples for
building interactive web applications, including calculators.

21

You might also like