Skip to content

Commit

Permalink
Merge branch 'dev' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
bangrezz committed Apr 15, 2021
2 parents 5708260 + 1b730bb commit 13e9964
Show file tree
Hide file tree
Showing 35 changed files with 1,551 additions and 251 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,4 @@ dmypy.json
.pytype/

# Cython debug symbols
cython_debug/
cython_debug/
695 changes: 674 additions & 21 deletions LICENSE

Large diffs are not rendered by default.

17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,16 @@ python3 geometry_calc.py

## Note
1. The units displayed don't affect the calculation results. it's just a view.
2. Available shapes :
2. Available geometry shapes :
- Plane geometry
- rectangle
- square
- triangle (included pythagorean)
- Rectangle
- Square
- Triangle (included pythagorean)
- Circle [NEW]
- Parallelogram [NEW]
- Solid geometry
- cube
- rectangle prism
- sphere
- Cube
- Rectangular prism
- Sphere
- Cylinder [NEW]
3. Other geometry shapes are under development
38 changes: 17 additions & 21 deletions geometry_calc.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,16 @@
from os import system, name
from modules.clearscreen import clear
from modules.banners import PlaneGeo_banner, SolidGeo_banner, main_banner
from modules.PlaneGeometry.Triangle.menu import __triangle__
from modules.PlaneGeometry.Square.execute import Execute_Square
from modules.PlaneGeometry.Rectangle.execute import Execute_Rectangle
from modules.PlaneGeometry.Circle.execute import Execute_Circle
from modules.PlaneGeometry.Parallelogram.execute import Execute_Parallelogram

from modules.SolidGeometry.Cube.execute import Execute_Cube
from modules.SolidGeometry.RectangularPrism.execute import Execute_RectangularPrism
from modules.SolidGeometry.Sphere.execute import Execute_Sphere
from modules.SolidGeometry.Cylinder.execute import Execute_Cylinder
from rich import print
import colorama
colorama.init()


def clear():

# for windows
if name == 'nt':
_ = system('cls')

# for mac and linux(here, os.name is 'posix')
else:
_ = system('clear')

def MainMenu():
clear()
Expand Down Expand Up @@ -62,20 +53,25 @@ def select_planegeo_menu():
select_planegeo = int(input("\n\t Select from the menu : "))

if select_planegeo == 1: #square
clear()
Execute_Square() # calculate square
PlaneGeo_Menu()

elif select_planegeo == 2: #rectangle
clear()
Execute_Rectangle() # calculate rectangle
PlaneGeo_Menu()

elif select_planegeo == 3: #triangle
clear()
__triangle__() # go to triangle calc submenu
PlaneGeo_Menu()

elif select_planegeo == 4: #circle
Execute_Circle() # calculate circle
PlaneGeo_Menu()

elif select_planegeo == 5: #parallelogram
Execute_Parallelogram()
PlaneGeo_Menu()

elif select_planegeo == 99:
clear()
MainMenu()
Expand All @@ -101,21 +97,21 @@ def select_solidgeo_menu():
select_solidgeo = int(input("\n\t Select from the menu : "))

if select_solidgeo == 1: #cube
clear()
Execute_Cube() #calculate cube
SolidGeo_Menu()

elif select_solidgeo == 2: #Rectangular Prism
clear()
Execute_RectangularPrism() #calculate rectangular prism
SolidGeo_Menu()

elif select_solidgeo == 3: # sphere
clear()
#input("Sphere calc in development. Press <enter> to continue\n")
Execute_Sphere() #calculate sphere
SolidGeo_Menu()

elif select_solidgeo == 4: # cylinder
Execute_Cylinder()
SolidGeo_Menu()

elif select_solidgeo == 99:
clear()
MainMenu()
Expand Down
2 changes: 2 additions & 0 deletions modules/PlaneGeometry/Circle/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"""Circle modules
"""
40 changes: 40 additions & 0 deletions modules/PlaneGeometry/Circle/calculate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#module for calculate area & circumference circle

class Circle:
def __init__(self, radius, PI):
self.r = radius
self.PI = PI

def Calculating_Area(self):
global area
area = self.PI * self.r ** 2
return area

def Calculating_Circumference(self):
global perimeter
perimeter = 2 * self.PI * self.r
return perimeter

def Result(self):
res = f"""\n
----------------------------------------------
CALCULATE
----------------------------------------------
Radius (r) = {self.r} cm
Pi value (π) = {self.PI}
Formula the circle circumference = 2 * π * r
= 2 * {self.PI} * {self.r} cm
Formula the circle area = π * r^2
= {self.PI} * ({self.r})^2 cm
--------------------RESULT--------------------
Circle circumference = {perimeter} cm
Circle area = {area} cm^2
"""
return res
43 changes: 43 additions & 0 deletions modules/PlaneGeometry/Circle/execute.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# module for execute area & circumference circle
from modules.clearscreen import clear
from modules.PlaneGeometry.Circle.calculate import Circle
from modules.banners import circle_banner
from modules.PlaneGeometry.Circle.wannaquit import MainQuestion
from rich import print

def Execute_Circle():
clear()
circle_banner()
print("Calculate area and circumference of the circle")
#initiating
def Input_radius(): #input side length
try:
global radius
radius = float(input("\nEnter radius length (r) = "))
if radius <= 0:print("[red][ERROR][/red] Invalid value. The value must greater than 0 !");Input_radius()
except ValueError:
print("[red][ERROR][/red] Value error. Enter again !")
Input_radius()
except KeyboardInterrupt:
print("\n\nThank you for using Geometry Calc :)")
exit()
Input_radius()
def Input_pi():
try:
global PI
# select pi value
select_pi = input("\nUsing pi (π) default value : 3.14 ? [y/n] = ")
if select_pi == 'y':PI = 3.14 # set default pi value to 3.14
elif select_pi == 'n':
print("""\n\n[green][NOTE][/green] pi value must 3.14. But, you can custom decimal value of pi.
Example : 3.14159""")
PI = float(input("\nEnter custom pi value (π) = "))
else:print("\n[red][ERROR][/red] Please enter correctly");Input_pi()
except KeyboardInterrupt:
print("\n\nThank you for using Geometry Calc :)")
exit()
Input_pi()
ExecCircle = Circle(radius,PI)
ExecCircle.Calculating_Area();ExecCircle.Calculating_Circumference()
result = ExecCircle.Result();print(result)
MainQuestion()
34 changes: 34 additions & 0 deletions modules/PlaneGeometry/Circle/wannaquit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from modules.clearscreen import clear
from rich import print

def MainQuestion():
print("""
________________________________________________
What you want to do ?
1. Count again
2. Go to the previous menu
99. Exit
""")
def question():
try:
select = int(input("Select : "))
if select == 1:
from modules.PlaneGeometry.Circle.execute import Execute_Circle
Execute_Circle()
elif select == 2:
print("Press [blue]<enter>[/blue] to continue")
input()
elif select == 99:
print("\n\nThank you for using Geometry Calc :)")
exit()
else:
print("[red][ERROR][/red] Invalid input. Enter again !")
question()
except ValueError:
print("[red][ERROR][/red] Value error. Enter again !")
question()
except KeyboardInterrupt:
print("\n\nThank you for using Geometry Calc :)")
exit()
question()
1 change: 1 addition & 0 deletions modules/PlaneGeometry/Parallelogram/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
""
41 changes: 41 additions & 0 deletions modules/PlaneGeometry/Parallelogram/calculate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#parallelogram

class Parallelogram:
def __init__(self, base, height):
self.b = base
self.h = height

def Calculating_Area(self):
global area
area = self.b * self.h
return area

def Calculating_Perimeter(self):
global perimeter
perimeter = 2 * (self.b + self.h)
return perimeter

def Result(self):
res = f"""\n
----------------------------------------------
CALCULATE
----------------------------------------------
Base (b) = {self.b} cm
Height (h) = {self.h} cm
Formula the parallelogram
perimeter = 2 (b + h)
= 2 ({self.b} cm + {self.h} cm)
Formula the parallelogram area = b * h
= {self.b} cm * {self.h} cm
--------------------RESULT--------------------
Parallelogram perimeter = {perimeter} cm
Parallelogram area = {area} cm^2
"""
return res
40 changes: 40 additions & 0 deletions modules/PlaneGeometry/Parallelogram/execute.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# execute parralelogram
from modules.clearscreen import clear
from modules.PlaneGeometry.Parallelogram.calculate import Parallelogram
from modules.banners import parallelogram_banner
from modules.PlaneGeometry.Parallelogram.wannaquit import MainQuestion
from rich import print

def Execute_Parallelogram():
clear()
parallelogram_banner()
print("Calculate area and perimeter of the parallelogram")
#initiating
def Input_Base(): #input base length
try:
global Base
Base = float(input("\nEnter base length (b) = "))
if Base <= 0:print("[red][ERROR][/red] Invalid value. The value must greater than 0 !");Input_Base()
except ValueError:
print("[red][ERROR][/red] Value error. Enter again !")
Input_Base()
except KeyboardInterrupt:
print("\n\nThank you for using Geometry Calc :)")
exit()
Input_Base() #return to Input_Base()
def Input_Height(): #input height length
try:
global Height
Height = float(input("\nEnter height length (h) = "))
if Height <= 0:print("[red][ERROR][/red] Invalid value. The value must greater than 0 !");Input_Height()
except ValueError:
print("[red][ERROR][/red] Value error. Enter again !")
Input_Height()
except KeyboardInterrupt:
print("\n\nThank you for using Geometry Calc :)")
exit()
Input_Height() #return to Input_Height()
ExecParallelogram = Parallelogram(Base, Height)
ExecParallelogram.Calculating_Area();ExecParallelogram.Calculating_Perimeter()
result = ExecParallelogram.Result();print(result)
MainQuestion()
34 changes: 34 additions & 0 deletions modules/PlaneGeometry/Parallelogram/wannaquit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from modules.clearscreen import clear
from rich import print

def MainQuestion():
print("""
________________________________________________
What you want to do ?
1. Count again
2. Go to the previous menu
99. Exit
""")
def question():
try:
select = int(input("Select : "))
if select == 1:
from modules.PlaneGeometry.Parallelogram.execute import Execute_Parallelogram
Execute_Parallelogram()
elif select == 2:
print("Press [magenta]<enter>[/magenta] to continue")
input()
elif select == 99:
print("\n\nThank you for using Geometry Calc :)")
exit()
else:
print("[red][ERROR][/red] Invalid input. Enter again !")
question()
except ValueError:
print("[red][ERROR][/red] Value error. Enter again !")
question()
except KeyboardInterrupt:
print("\n\nThank you for using Geometry Calc :)")
exit()
question()
Loading

0 comments on commit 13e9964

Please sign in to comment.