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/src/simplejavacalculator/Calculator.java b/src/simplejavacalculator/Calculator.java index 18ad91c..b2c1f89 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 ,inverseTan, log , rate, abs } private Double num1, num2; @@ -109,6 +109,10 @@ public Double calculateMono(MonoOperatorModes newMode, Double num) { return Math.tan(Math.toRadians(num)); } + + if (newMode == MonoOperatorModes.inverseTan) { + return Math.toDegrees(Math.atan(num)); + } if (newMode == MonoOperatorModes.log) { return log10(num); } diff --git a/src/simplejavacalculator/UI.java b/src/simplejavacalculator/UI.java index 8e9cc4a..b3b501d 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, butInverseTan, 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"); + butInverseTan = new JButton("Tan^-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); + butInverseTan.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(butInverseTan); panel.add(panelSub7); panelSub8.add(butlog); @@ -192,6 +195,7 @@ public void init() { panelSub8.add(butBinary); panel.add(panelSub8); + for (int i = 0; i < 10; i++) { but[i].addActionListener(this); } @@ -205,6 +209,7 @@ public void init() { butCos.addActionListener(this); butSin.addActionListener(this); butTan.addActionListener(this); + butInverseTan.addActionListener(this); butxpowerofy.addActionListener(this); butlog.addActionListener(this); butrate.addActionListener(this); @@ -279,6 +284,9 @@ public void actionPerformed(ActionEvent e) { if (source == butTan) writer(calc.calculateMono(Calculator.MonoOperatorModes.tan, reader())); + + if (source == butInverseTan) + writer(calc.calculateMono(Calculator.MonoOperatorModes.inverseTan, reader())); if (source == butlog) writer(calc.calculateMono(Calculator.MonoOperatorModes.log, reader())); diff --git a/src/simplejavacalculatorTest/CalculatorTest.java b/src/simplejavacalculatorTest/CalculatorTest.java index 1ea20f7..391bf65 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 CalculateMonoInverseTanTest() { + Calculator calculator = new Calculator(); + Assertions.assertEquals(45.0, calculator.calculateMono(Calculator.MonoOperatorModes.inverseTan, 1.0), 0.0000000001); + } + @Test void CalculateMonoLogTest() { Calculator calculator = new Calculator();