Add calculator app specification Resolves: N/a See also: N/apull/38/head
parent
85e17095d4
commit
4b9d3b66fe
@ -0,0 +1,57 @@
|
|||||||
|
# Calculator
|
||||||
|
|
||||||
|
**Tier:** 1-Beginner
|
||||||
|
|
||||||
|
Calculators are not only one of the most useful tools available, but they are
|
||||||
|
also a great way to understand UI and event processing in an application. In
|
||||||
|
this problem you will create a calculator that supports basic arithmetic
|
||||||
|
calculations on integers.
|
||||||
|
|
||||||
|
The styling is up to you so use your imagination and get creative! You might
|
||||||
|
also find it worth your time to experiment with the calculator app on your
|
||||||
|
mobile device to better understand basic functionality and edge cases.
|
||||||
|
|
||||||
|
### Constraints
|
||||||
|
|
||||||
|
- You may not use the `eval()` function to execute calculations
|
||||||
|
|
||||||
|
## User Stories
|
||||||
|
|
||||||
|
- [ ] User can see a display showing the current number entered or the
|
||||||
|
result of the last operation.
|
||||||
|
- [ ] User can see an entry pad containing buttons for the digits 0-9,
|
||||||
|
operations - '+', '-', '/', and '=', a 'C' button (for clear), and an 'AC'
|
||||||
|
button (for clear all).
|
||||||
|
- [ ] User can enter numbers as sequences up to 8 digits long by clicking on
|
||||||
|
digits in the entry pad. Entry of any digits more than 8 will be ignored.
|
||||||
|
- [ ] User can click on an operation button to display the result of that
|
||||||
|
operation on:
|
||||||
|
* the result of the preceeding operation and the last number entered OR
|
||||||
|
* the last two numbers entered OR
|
||||||
|
* the last number entered
|
||||||
|
- [ ] User can click the 'C' button to clear the last number or the last
|
||||||
|
operation. If the users last entry was an operation the display will be
|
||||||
|
updated to the value that preceded it.
|
||||||
|
- [ ] User can click the 'AC' button to clear all internal work areas and
|
||||||
|
to set the display to 0.
|
||||||
|
- [ ] User can see 'ERR' displayed if any operation would exceed the
|
||||||
|
8 digit maximum.
|
||||||
|
|
||||||
|
## Bonus features
|
||||||
|
|
||||||
|
- [ ] User can click a '+/-' button to change the sign of the number that is
|
||||||
|
currently displayed.
|
||||||
|
- [ ] User can see a decimal point ('.') button on the entry pad to that
|
||||||
|
allows floating point numbers up to 3 places to be entered and operations to
|
||||||
|
be carried out to the maximum number of decimal places entered for any one
|
||||||
|
number.
|
||||||
|
|
||||||
|
## Useful links and resources
|
||||||
|
|
||||||
|
- [Calculator (Wikipedia)](https://en.wikipedia.org/wiki/Calculator)
|
||||||
|
- [MDN](https://developer.mozilla.org/en-US/)
|
||||||
|
|
||||||
|
## Example projects
|
||||||
|
|
||||||
|
- [Javascript Calculator](https://codepen.io/giana/pen/GJMBEv)
|
||||||
|
- [React Calculator](https://codepen.io/mjijackson/pen/xOzyGX)
|
Loading…
Reference in new issue