Question: Using Visual Studio 2022, Windows Forms App. This is Visual Studio 2022 C#. One way a simple calculator can work is: you enter the x

Using Visual Studio 2022, Windows Forms App.

This is Visual Studio 2022 C#.

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.

Code is below

Using Visual Studio 2022, Windows Forms App. This is Visual Studio 2022

namespace Inclass1_2022 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

private void DigitClickHandler(object sender, EventArgs e) { //Downcasting the sender (i.e. the button control that fired this click event) Button btnClicked = (Button)sender;

//We can get its Text property:

string digit = btnClicked.Text;

MessageBox.Show($"digit clicked was: {digit}"); }

private string _PendingOperation = "";

private Boolean _IsNewNumber = false; } }

Calculator 12/5=2.4 CE + 7 - 8 9 4 5 6 4 5 1 3 * N / 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!