From 09080b5396aabf21a6bf208e6852038874f1ba47 Mon Sep 17 00:00:00 2001 From: Lim Yen Yuen Date: Mon, 1 Aug 2022 13:15:02 +0800 Subject: [PATCH 1/2] added inverse cosine function --- .classpath | 6 ++++++ .gitignore | 1 + .project | 17 +++++++++++++++++ src/simplejavacalculator/Calculator.java | 5 ++++- src/simplejavacalculator/UI.java | 11 +++++++++-- 5 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 .classpath create mode 100644 .project diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..0cbf9cd --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.gitignore b/.gitignore index b0cbf6e..85e6efb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ # Mac OS System .DS_Store* ._* +/bin/ diff --git a/.project b/.project new file mode 100644 index 0000000..02992da --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + Simple-Java-Calculator + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/simplejavacalculator/Calculator.java b/src/simplejavacalculator/Calculator.java index 18ad91c..9348f06 100644 --- a/src/simplejavacalculator/Calculator.java +++ b/src/simplejavacalculator/Calculator.java @@ -23,7 +23,7 @@ public enum BiOperatorModes { } public enum MonoOperatorModes { - square, squareRoot, oneDividedBy, cos, sin, tan ,log , rate, abs + square, squareRoot, oneDividedBy, cos, sin, tan, inverseCos ,log , rate, abs } private Double num1, num2; @@ -109,6 +109,9 @@ public Double calculateMono(MonoOperatorModes newMode, Double num) { return Math.tan(Math.toRadians(num)); } + if(newMode == MonoOperatorModes.inverseCos) { + return Math.toDegrees(Math.acos(num)); + } if (newMode == MonoOperatorModes.log) { return log10(num); } diff --git a/src/simplejavacalculator/UI.java b/src/simplejavacalculator/UI.java index 8e9cc4a..79e0f7f 100644 --- a/src/simplejavacalculator/UI.java +++ b/src/simplejavacalculator/UI.java @@ -51,7 +51,7 @@ public class UI implements ActionListener { private final JTextArea text; private final JButton but[], butAdd, butMinus, butMultiply, butDivide, butEqual, butCancel, butSquareRoot, butSquare, butOneDividedBy, - butCos, butSin, butTan, butxpowerofy, butlog, butrate, butabs, butBinary; + butCos, butSin, butTan, butInverseCos, butxpowerofy, butlog, butrate, butabs, butBinary; private final Calculator calc; private final String[] buttonValue = {"0", "1", "2", "3", "4", "5", "6", @@ -99,7 +99,8 @@ public UI() throws IOException { butOneDividedBy = new JButton("1/x"); butCos = new JButton("Cos"); butSin = new JButton("Sin"); - butTan = new JButton("Tan"); + butTan = new JButton("Tan"); + butInverseCos = new JButton("Cos^-1"); butxpowerofy = new JButton("x^y"); butlog = new JButton("log10(x)"); butrate = new JButton("x%"); @@ -135,6 +136,7 @@ public void init() { butCos.setFont(font); butSin.setFont(font); butTan.setFont(font); + butInverseCos.setFont(font); butxpowerofy.setFont(font); butlog.setFont(font); butrate.setFont(font); @@ -184,6 +186,7 @@ public void init() { panelSub7.add(butCos); panelSub7.add(butSin); panelSub7.add(butTan); + panelSub7.add(butInverseCos); panel.add(panelSub7); panelSub8.add(butlog); @@ -205,6 +208,7 @@ public void init() { butCos.addActionListener(this); butSin.addActionListener(this); butTan.addActionListener(this); + butInverseCos.addActionListener(this); butxpowerofy.addActionListener(this); butlog.addActionListener(this); butrate.addActionListener(this); @@ -279,6 +283,9 @@ public void actionPerformed(ActionEvent e) { if (source == butTan) writer(calc.calculateMono(Calculator.MonoOperatorModes.tan, reader())); + + if (source == butInverseCos) + writer(calc.calculateMono(Calculator.MonoOperatorModes.inverseCos, reader())); if (source == butlog) writer(calc.calculateMono(Calculator.MonoOperatorModes.log, reader())); From a129cc4f59378670d8df7424ccf36b12ddfe1db8 Mon Sep 17 00:00:00 2001 From: Lim Yen Yuen Date: Mon, 1 Aug 2022 13:40:06 +0800 Subject: [PATCH 2/2] added inverseCos test the test for sin, cos and tan are rerturning errors --- .classpath | 7 ++++++- src/simplejavacalculatorTest/CalculatorTest.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.classpath b/.classpath index 0cbf9cd..287dc14 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,11 @@ - + + + + + + diff --git a/src/simplejavacalculatorTest/CalculatorTest.java b/src/simplejavacalculatorTest/CalculatorTest.java index 1ea20f7..67cafcd 100755 --- a/src/simplejavacalculatorTest/CalculatorTest.java +++ b/src/simplejavacalculatorTest/CalculatorTest.java @@ -97,6 +97,12 @@ void CalculateMonoTanTest() { Assertions.assertEquals(1.0, calculator.calculateMono(Calculator.MonoOperatorModes.tan, java.lang.Math.PI / 4), 0.0000000001); } + @Test + void CalculateMonoInverseCosTest() { + Calculator calculator = new Calculator(); + Assertions.assertEquals(90.0, calculator.calculateMono(Calculator.MonoOperatorModes.inverseCos, 0.0), 0.0000000001); + } + @Test void CalculateMonoLogTest() { Calculator calculator = new Calculator();