|
@@ -37,6 +37,33 @@ All calculators should have the following features:
|
37
|
37
|
Each operation should automatically update the display
|
38
|
38
|
|
39
|
39
|
|
|
40
|
+### Scientific Features
|
|
41
|
+
|
|
42
|
+- Switch display mode (binary, octal, decimal, hexadecimal)
|
|
43
|
+ - `switchDisplayMode()` should rotate through the options
|
|
44
|
+ - `switchDisplayMode(String mode)` should set the display to the mode given
|
|
45
|
+- Memory - Store up to one numeric value in memory for recall later (default to 0) *
|
|
46
|
+ - (`M+` key) Add the currently displayed value to the value in memory (store in memory and update display) *
|
|
47
|
+ - (`MC` key) Reset memory *
|
|
48
|
+ - (`MRC` key) Recall the current value from memory to the display *
|
|
49
|
+- Trig functions
|
|
50
|
+ - Sine - Calculate the sine of the displayed value and display it
|
|
51
|
+ - Cosine - Calculate the cosine of the displayed value and display it
|
|
52
|
+ - Tangent - Calculate the tangent of the displayed value and display it
|
|
53
|
+ - Inverse Sine
|
|
54
|
+ - Inverse Cosine
|
|
55
|
+ - Inverse Tangent
|
|
56
|
+- Switch trig units mode (Degrees, Radians)
|
|
57
|
+ - `switchUnitsMode()` should rotate through the options
|
|
58
|
+ - `switchUnitsMode(String mode)` should set the trig units to the type given
|
|
59
|
+- Logarithmic functions
|
|
60
|
+ - Log
|
|
61
|
+ - 10<sup>x</sup> (inverse logarithm)
|
|
62
|
+ - Ln (natural logarithm)
|
|
63
|
+ - e<sup>x</sup> (inverse natural logarithm)
|
|
64
|
+- Factorial function
|
|
65
|
+
|
|
66
|
+
|
40
|
67
|
### Custom Features
|
41
|
68
|
|
42
|
69
|
In addition to the Core and Scientific features, you are required to create at least two of your own features for the calculator. They can be any two features that are not already covered and that you can implement as you see fit. These features must be properly tested.
|
|
@@ -49,6 +76,13 @@ The following functions should take the displayed value (x) and updated it accor
|
49
|
76
|
- `squareRoot()`: √x
|
50
|
77
|
- `inverse()`: <sup>1</sup>/<sub>x</sub>
|
51
|
78
|
- `switchSign()`: -x
|
|
79
|
+- `sine()`: sin(x)
|
|
80
|
+- `cosine()`: cos(x)
|
|
81
|
+- `tangent()`: tan(x)
|
|
82
|
+- `inverseSine()`: sin<sup>-1</sup>(x)
|
|
83
|
+- `inverseCosine()`: sin<sup>-1</sup>(x)
|
|
84
|
+- `inverseTangent()`: tan<sup>-1</sup>(x)
|
|
85
|
+- `factorial()`: x! (x factorial)
|
52
|
86
|
|
53
|
87
|
## Submission
|
54
|
88
|
|