Language to use: Any language that you are learning.
Interface: Web or Desktop
Function: Simple calculator (9 digits + symbol) with 1 Memory storage with possible function of + - * /
Error Handling requirement: All invalid entries & calculations to be gracefully handled
Client: The client is an experienced computer user. We therefore assume that users will have basic knowledge of using the mouse and keyboard
Data Input: We assume that data input will occur only via the keyboard and the mouse.
Output: All output will appear in a text display area similar to a calculator’s LCD screen.
Output Event: Clicking a button representing an operation causes the display area to be updated. Results will be presented to at most 7 decimal places accuracy.
Operation: The application will present a visual keypad where one digit at a time can be added to the display by using the mouse to select one of the digit buttons. An optional negative sign can be entered before any digits have been entered; thereafter, the negative button will be ignored. As long as an operation has not been requested, digits will be added to the righthand side of the current number. This number will be displayed in the display area as it is composed. Number entry restarts after any arithmetic operation, result display, value storage, or clear operation is requested.
Operations are represented by buttons on the calculator which specify the arithmetic operation to perform or the storage of a value for future recall. In general, the entry of a number is terminated by clicking on one of the operation buttons.
Display: The display result operation is requested by clicking on the “=” key. If a value has been “remembered” by requesting one of the arithmetic operations, then the remembered value is combined according to the requested operation with the value currently in the display. The display is updated with the new value, and the calculator is made ready for the entry of the next number.
Clear: Clicking on the “Clear” button erases any value that appears in the display area and resets number entry. Clear does not affect the “remembered” value or the operation that has been requested.
Appereance: The interface of the calculator should be as close to the appearance and operation of a physical calculator as possible. The appearance of the application on the two platforms should be a close to identical as possible.
Testing: Include all the possible test cases along with the documentation (steps & results) as a part of output.
In short, it should be fool-proof, should not crash in any way possible, should provide all valid error messages, and result as per the rounded figures possible for a 9 digit calculator.