diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..539dba0 --- /dev/null +++ b/.classpath @@ -0,0 +1,11 @@ + + + + + + + + + + + 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..5856b54 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, inverseSin, log, rate, abs } private Double num1, num2; @@ -118,6 +118,9 @@ public Double calculateMono(MonoOperatorModes newMode, Double num) { if (newMode == MonoOperatorModes.abs){ return Math.abs(num); } + if (newMode == MonoOperatorModes.inverseSin){ + return Math.toDegrees(Math.asin(num)); + } // never reach throw new Error(); diff --git a/src/simplejavacalculator/UI.java b/src/simplejavacalculator/UI.java index 8e9cc4a..71a7ab6 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, butxpowerofy, butlog, butrate, butabs, butBinary, butInverseSin; private final Calculator calc; private final String[] buttonValue = {"0", "1", "2", "3", "4", "5", "6", @@ -99,13 +99,14 @@ 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"); + butInverseSin = new JButton("Sin^-1"); butxpowerofy = new JButton("x^y"); butlog = new JButton("log10(x)"); butrate = new JButton("x%"); butabs = new JButton("abs(x)"); butCancel = new JButton("C"); - butBinary = new JButton("Bin"); + butBinary = new JButton("Bin"); calc = new Calculator(); @@ -135,6 +136,7 @@ public void init() { butCos.setFont(font); butSin.setFont(font); butTan.setFont(font); + butInverseSin.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(butInverseSin); panel.add(panelSub7); panelSub8.add(butlog); @@ -205,6 +208,7 @@ public void init() { butCos.addActionListener(this); butSin.addActionListener(this); butTan.addActionListener(this); + butInverseSin.addActionListener(this); butxpowerofy.addActionListener(this); butlog.addActionListener(this); butrate.addActionListener(this); @@ -280,6 +284,9 @@ public void actionPerformed(ActionEvent e) { if (source == butTan) writer(calc.calculateMono(Calculator.MonoOperatorModes.tan, reader())); + if (source == butInverseSin) + writer(calc.calculateMono(Calculator.MonoOperatorModes.inverseSin, 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..8187ca2 100755 --- a/src/simplejavacalculatorTest/CalculatorTest.java +++ b/src/simplejavacalculatorTest/CalculatorTest.java @@ -82,19 +82,25 @@ void CalculateMonoOneDividedByTest() { @Test void CalculateMonoSinTest() { Calculator calculator = new Calculator(); - Assertions.assertEquals(0.5, calculator.calculateMono(Calculator.MonoOperatorModes.sin, java.lang.Math.PI / 6), 0.0000000001); + Assertions.assertEquals(0.5, calculator.calculateMono(Calculator.MonoOperatorModes.sin, Math.toDegrees(java.lang.Math.PI) / 6), 0.0000000001); } @Test void CalculateMonoCosTest() { Calculator calculator = new Calculator(); - Assertions.assertEquals(0.5, calculator.calculateMono(Calculator.MonoOperatorModes.cos, java.lang.Math.PI / 3), 0.0000000001); + Assertions.assertEquals(0.5, calculator.calculateMono(Calculator.MonoOperatorModes.cos, Math.toDegrees(java.lang.Math.PI) / 3), 0.0000000001); } @Test void CalculateMonoTanTest() { Calculator calculator = new Calculator(); - Assertions.assertEquals(1.0, calculator.calculateMono(Calculator.MonoOperatorModes.tan, java.lang.Math.PI / 4), 0.0000000001); + Assertions.assertEquals(1.0, calculator.calculateMono(Calculator.MonoOperatorModes.tan, Math.toDegrees(java.lang.Math.PI) / 4), 0.0000000001); + } + + @Test + void CalculateMonoInverseSinTest() { + Calculator calculator = new Calculator(); + Assertions.assertEquals(90.0, calculator.calculateMono(Calculator.MonoOperatorModes.inverseSin, 1.0), 0.0000000001); } @Test