Question: Programming 1815 One way a simple calculator can work is: you enter the x (or 1st operand) value, select an operator (i.e. +, -, *,

Programming 1815

One way a simple calculator can work is: you enter the x (or 1st operand) value, select an operator (i.e. +, -, *, or /), enter the y (or 2nd operand) value, and click =. It computes and displays the result in the textbox. This means it needs to remember the x value and the pending operator somewhere. Use the following steps to implement a basic calculator app

  1. Disable the textbox so that the number keys are the only way to enter operands.
  2. You need 3 private Form variables:
    1. x, which is the first operand
    2. pendingOperation, the operator to be applied between x and the next number
    3. isNewNumber, which is true when = has put a result into the textbox, and false as soon as a digit is clicked.
  3. When a digit or decimal point is clicked (note: these can all use the same event handler):
    1. If isNewNumber is true, clear the textbox & equation label, set isNewNumber to false
    2. Cast sender to a Button so you can append its Text to the textbox: i.e. ((Button)sender).Text
    3. Ignore a second decimal place if the textbox already has one.
  4. The operator buttons move the textboxs value to x, clears the textbox, and sets pendingOperation to the operator displayed on the button. Again, these can all use the same event handler.
  5. The = buttons event handler has a switch (or a compound if-elseif), applying the pendingOperation between x (in memory) and y (in the textbox).
    1. The result is placed in the textbox & appended to the label, x is set to zero, pendingOperation is cleared, and isNewNumber is set to true.
  6. The 12 / 5 = 2.4 label above the textbox is obvious, right? The main question is not how its when when are operands and operators appended to it, and when is it cleared?
  7. C and CE (which is short for clear entry) both clear the textbox, while C also clears the label above the textbox, then sets x to zero, pendingOperation to , and isNewNumber to true.

Advanced considerations:

  • What will this do to a compound equation: x, operator, y, result operator, y, result operator, y, result?
  • What about buttons for modulus (%), inversion (1/x), square root, change sign (+/-) or xy?

Programming 1815 One way a simple calculator can work is: you enter

Calculator X 12/5=2.4 2.4 CE + 1 7 8 9 4 5 6 5 1 2 3 * / 0 =

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!