eternity is a scientific calculator designed to compute various transcendental functions, integrating principles of design thinking, agile methodologies, and devops.
- minimalistic ui: a clean and intuitive interface that reduces distractions, allowing users to focus on their calculations effortlessly.
- transcendental buttons: access advanced functions like
arccos(x)
,sinh(x)
,standard deviation
, and more for complex mathematical operations beyond basic arithmetic. - digit buttons: easy-to-use buttons for numbers
0 - 9
, along with+/-
for sign changes,.
for decimal input, and a,
(comma) for calculating complex mathematical operations that require multiple inputs. - operator buttons: essential buttons for arithmetic operations
(+, -, x, /, %)
and functions likesqrt
(square root),1/x
, and a=
to display calculated values. - special buttons: features like
c
(clear),ce
(clear entry), andback
(delete last input) to help manage calculations efficiently. - radio buttons: options to switch between degree and radian modes for trigonometric calculations, ensuring flexibility in usage.
the development of the calculator began with a tutorial from javapoint, providing a solid foundation in java-swing. after watching several tutorials, adam started developing the calculator’s ui and integrated java-swing to enhance the user experience, making it more stylish and user-friendly.
during development, he encountered bugs, including the inability to handle negative numbers and multiple inputs for transcendental functions. he and matthew then implemented solutions to allow negative values and created a system for processing lists of numbers.
with these issues resolved, adam focused on a dedicated class for transcendental functions, expanding the calculator’s capabilities. this iterative process has made the calculator more robust, accommodating both basic arithmetic and complex mathematical operations.
overall, it has been a rewarding journey that enhanced all our programming skills. the project aimed to create transcendental functions from scratch, which are mathematical concepts widely used in the math world. from the start until now, all group members have contributed in one way or another.
deviation functions
-
to calculate a standard deviation:
- enter a list of numbers, each separated by a comma
,
, using the digit buttons0 - 9
, - click
st.dev
to obtain the result.
- enter a list of numbers, each separated by a comma
-
to calculate a mean absolute deviation:
- enter a list of numbers, each separated by a comma
,
, using the digit buttons0 - 9
, - click
mad
to obtain the result.
- enter a list of numbers, each separated by a comma
power functions
-
to calculate (x^y):
- enter the base (x) using the digit buttons
0 - 9
, - use a
,
(comma) to separate the arguments, - follow with the exponent (y) using the digit buttons
0 - 9
, - the display should show
x,y
, where (x) is the base raised to the power of (y), - click
(x^y)
to obtain the result.
- enter the base (x) using the digit buttons
-
to calculate a(b^x):
- enter a multiplier (a) using the digit buttons
0 - 9
, - use a
,
(comma) to separate the numbers, - enter a base (b) using the digit buttons
0 - 9
, - use a
,
(comma) to separate the numbers, - enter the exponent (x) using the digit buttons
0 - 9
, - the display should show
a,b,x
, where (a) is a multiplier, and (b) is the base raised to the power of (x), - click
a(b^x)
to obtain the result.
- enter a multiplier (a) using the digit buttons
trigonometric functions
-
to calculate arccos(x):
- toggle between radian or degree mode first using the radio buttons,
- enter the number you want to calculate using the digit buttons
0 - 9
(the number must be between -1 and 1), - click
arccos(x)
for the result. -
example: 0.5 -> arccos(x) result: 60° (if in degree mode) or 1.0472 (if in radian mode).
-
to calculate sinh(x):
- enter the number you want to calculate using the digit buttons
0 - 9
, - click
sinh(x)
for the result.
- enter the number you want to calculate using the digit buttons
logarithm functions
-
to calculate the logarithm with base 10:
- enter the desired number using the digit buttons
0 - 9
, - click
log_b(x)
to obtain the result.
- enter the desired number using the digit buttons
-
to use euler’s number (e) as the base:
- input the number using the digit buttons
0 - 9
, - click
ln(x)
for the result.
- input the number using the digit buttons
-
for logarithms with a base other than 10 or e:
- enter a number (x) using the digit buttons
0 - 9
, - use a
,
(comma) to separate the arguments, - follow with the base (b) using the digit buttons
0 - 9
, - the display should show
x,b
, wherex
is the argument andb
is the base, - click
log_b(x)
to obtain the result.
- enter a number (x) using the digit buttons
to get the project up and running on your local machine, follow these steps:
- ensure jdk is installed: must have the latest jdk installed.
- clone the repository:
git clone https://github.com/barbaraeguche/eternity.git
- navigate to the project directory: navigate to the latest eternity build folder (currently 1.0)
cd build/1.0
- run the project: run the latest eternity jar file (currently 1.0.1)
java -jar eternity1.0.1.jar