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