---
title: "Calculator in C++"  
description: "In this blog, I’m create a Calculator  using Visual studio c++  DescriptionThis is  simple calculator that contains four basic mathimatical functions"  
author: "priyanka kushwaha"  
published: 2015-02-03  
updated: 2015-02-03  
canonical: https://www.mindstick.com/blog/753/calculator-in-c-plus-plus  
category: ".net"  
tags: ["visual c++"]  
reading_time: 6 minutes  

---

# Calculator in C++

In this [blog](https://www.mindstick.com/articles/12705/myths-and-misconception-about-blog), I’m create a [Calculator](https://www.mindstick.com/articles/38/calculator-in-asp-dot-net-using-javascript) using [Visual studio](https://www.mindstick.com/articles/12378/visual-studio-for-mac-is-out-of-beta-preview-now-officially-available) [c++](https://www.mindstick.com/blog/745/array-in-c-plus-plus)\

##### Description

This is [simple](https://yourviews.mindstick.com/story/1469/5-simple-ways-to-stay-fit-amp-healthy) calculator that contains four [basic](https://www.mindstick.com/forum/161830/what-are-the-security-risks-of-using-basic-authentication) mathimatical [functions](https://www.mindstick.com/forum/160140/explain-the-role-of-functions-as-a-service-faas-in-serverless-computing) for [common](https://www.mindstick.com/articles/23170/10-most-common-accounting-mistakes-of-small-business) calculation.

##### C++ code for the design

##### Calculator.h

```
#pragma once#include <string.h>#include <exception>namespace CalculatorSam {             using
namespace System;            using
namespace System::ComponentModel;            using
namespace System::Collections;            using
namespace System::Windows::Forms;            using
namespace System::Data;            using
namespace System::Drawing;             /// <summary>            /// Summary for Calculator            /// </summary>            public
ref
class
Calculator : public System::Windows::Forms::Form            {public:                        private:
System::String^ value;            private:
System::Windows::Forms::Button^  btnClear;            private:
System::String^ OperatorSelected;            public:                        Calculator(void)                        {                                    InitializeComponent();                                    //                                    //TODO: Add the constructor code here                                    //                        }             protected:                        /// <summary>                        /// Clean up any resources being used.                        /// </summary>                        ~Calculator()                        {                                    if (components)                                    {                                                delete
components;                                    }                        }            private:
System::Windows::Forms::TextBox^  txtResult;            protected:
            private:
System::Windows::Forms::Button^  btn1;            private:
System::Windows::Forms::Button^  btn2;            private:
System::Windows::Forms::Button^  btn3;            private:
System::Windows::Forms::Button^  btn4;            private:
System::Windows::Forms::Button^  btn5;            private:
System::Windows::Forms::Button^  btn6;            private:
System::Windows::Forms::Button^  btn7;            private:
System::Windows::Forms::Button^  btn8;            private:
System::Windows::Forms::Button^  btn9;            private:
System::Windows::Forms::Button^  btn0;            private:
System::Windows::Forms::Button^  btnEqual;            private:
System::Windows::Forms::Button^  btnDecimal;            private:
System::Windows::Forms::Button^  btnAdd;            private:
System::Windows::Forms::Button^  btnSub;            private:
System::Windows::Forms::Button^  btnMul;            private:
System::Windows::Forms::Button^  btnDiv;             private:                        /// <summary>                        /// Required designer variable.                        /// </summary>                        System::ComponentModel::Container
^components; #pragma region
Windows Form Designer generated code                        /// <summary>                        /// Required method for Designer support - do not
modify                        /// the contents of this method with the code
editor.                        /// </summary>                        void InitializeComponent(void)                        {                                    this->txtResult = (gcnew
System::Windows::Forms::TextBox());                                    this->btn1 = (gcnew
System::Windows::Forms::Button());                                    this->btn2 = (gcnew
System::Windows::Forms::Button());                                    this->btn3 = (gcnew
System::Windows::Forms::Button());                                    this->btn4 = (gcnew
System::Windows::Forms::Button());                                    this->btn5 = (gcnew
System::Windows::Forms::Button());                                    this->btn6 = (gcnew
System::Windows::Forms::Button());                                    this->btn7 = (gcnew
System::Windows::Forms::Button());                                    this->btn8 = (gcnew
System::Windows::Forms::Button());                                    this->btn9 = (gcnew
System::Windows::Forms::Button());                                    this->btn0 = (gcnew
System::Windows::Forms::Button());                                    this->btnEqual = (gcnew
System::Windows::Forms::Button());                                    this->btnDecimal = (gcnew
System::Windows::Forms::Button());                                    this->btnAdd = (gcnew
System::Windows::Forms::Button());                                    this->btnSub = (gcnew
System::Windows::Forms::Button());                                    this->btnMul = (gcnew
System::Windows::Forms::Button());                                    this->btnDiv = (gcnew
System::Windows::Forms::Button());                                    this->btnClear = (gcnew
System::Windows::Forms::Button());                                    this->SuspendLayout();                                    //                                     // txtResult                                    // this is textbox to show input numbers                                    this->txtResult->Location
= System::Drawing::Point(12, 24);                                    this->txtResult->Name
= L"txtResult";                                    this->txtResult->Size
= System::Drawing::Size(231, 20);                                    this->txtResult->TabIndex
= 0;                                    //                                     // btn1                                    // this is button 
for 1                                    this->btn1->Location
= System::Drawing::Point(13, 71);                                    this->btn1->Name =
L"btn1";                                    this->btn1->Size =
System::Drawing::Size(45, 38);                                    this->btn1->TabIndex
= 1;                                    this->btn1->Text =
L"1";                                    this->btn1->UseVisualStyleBackColor
= true;                                    this->btn1->Click
+= gcnew System::EventHandler(this, &Calculator::button_Click);                                    //                                     // btn2                                    // this is button 
for 2                                    this->btn2->Location
= System::Drawing::Point(74, 71);                                    this->btn2->Name =
L"btn2";                                    this->btn2->Size =
System::Drawing::Size(45, 38);                                    this->btn2->TabIndex
= 2;                                    this->btn2->Text =
L"2";                                    this->btn2->UseVisualStyleBackColor
= true;                                    this->btn2->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btn3                                    // this is button 
for 3                                    this->btn3->Location
= System::Drawing::Point(135, 71);                                    this->btn3->Name =
L"btn3";                                    this->btn3->Size =
System::Drawing::Size(45, 38);                                    this->btn3->TabIndex
= 3;                                    this->btn3->Text =
L"3";                                    this->btn3->UseVisualStyleBackColor
= true;                                    this->btn3->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btn4                                    // this is button 
for 4                                    this->btn4->Location
= System::Drawing::Point(196, 71);                                    this->btn4->Name =
L"btn4";                                    this->btn4->Size =
System::Drawing::Size(45, 38);                                    this->btn4->TabIndex
= 4;                                    this->btn4->Text =
L"4";                                    this->btn4->UseVisualStyleBackColor
= true;                                    this->btn4->Click
+= gcnew System::EventHandler(this, &Calculator::
button _Click);                                    //                                     // btn5                                    // this is button 
for 5                                     this->btn5->Location
= System::Drawing::Point(13, 123);                                    this->btn5->Name =
L"btn5";                                    this->btn5->Size =
System::Drawing::Size(45, 38);                                    this->btn5->TabIndex
= 5;                                    this->btn5->Text =
L"5";                                    this->btn5->UseVisualStyleBackColor = true;                                    this->btn5->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btn6                                    //this is button 
for 6                                    this->btn6->Location
= System::Drawing::Point(74, 123);                                    this->btn6->Name =
L"btn6";                                    this->btn6->Size =
System::Drawing::Size(45, 38);                                    this->btn6->TabIndex
= 6;                                    this->btn6->Text =
L"6";                                    this->btn6->UseVisualStyleBackColor
= true;                                    this->btn6->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btn7                                    // this is button 
for 7                                     this->btn7->Location
= System::Drawing::Point(135, 123);                                    this->btn7->Name =
L"btn7";                                    this->btn7->Size =
System::Drawing::Size(45, 38);                                    this->btn7->TabIndex
= 7;                                    this->btn7->Text =
L"7";                                    this->btn7->UseVisualStyleBackColor
= true;                                    this->btn7->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btn8                                    // this is button 
for 8                                    this->btn8->Location
= System::Drawing::Point(196, 123);                                    this->btn8->Name =
L"btn8";                                    this->btn8->Size =
System::Drawing::Size(45, 38);                                    this->btn8->TabIndex
= 8;                                    this->btn8->Text =
L"8";                                    this->btn8->UseVisualStyleBackColor
= true;                                    this->btn8->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btn9                                    // this is button 
for 9                                     this->btn9->Location
= System::Drawing::Point(13, 175);                                    this->btn9->Name =
L"btn9";                                    this->btn9->Size =
System::Drawing::Size(45, 38);                                    this->btn9->TabIndex
= 9;                                    this->btn9->Text =
L"9";                                    this->btn9->UseVisualStyleBackColor
= true;                                    this->btn9->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btn0                                    // this is button 
for 0                                    this->btn0->Location
= System::Drawing::Point(74, 175);                                    this->btn0->Name =
L"btn0";                                    this->btn0->Size =
System::Drawing::Size(45, 38);                                    this->btn0->TabIndex
= 10;                                    this->btn0->Text =
L"0";                                    this->btn0->UseVisualStyleBackColor
= true;                                    this->btn0->Click
+= gcnew System::EventHandler(this, &Calculator::
button_Click);                                    //                                     // btnEqual                                    // this is button 
for =                                    this->btnEqual->Location
= System::Drawing::Point(196, 175);                                    this->btnEqual->Name
= L"btnEqual";                                    this->btnEqual->Size
= System::Drawing::Size(45, 38);                                    this->btnEqual->TabIndex
= 11;                                    this->btnEqual->Text
= L"=";                                    this->btnEqual->UseVisualStyleBackColor
= true;                                    this->btnEqual->Click
+= gcnew System::EventHandler(this, &Calculator::btnOperation);                                    //                                     // btnDecimal                                    // this is button 
for .                                    this->btnDecimal->Location
= System::Drawing::Point(135, 175);                                    this->btnDecimal->Name
= L"btnDecimal";                                    this->btnDecimal->Size
= System::Drawing::Size(45, 38);                                    this->btnDecimal->TabIndex
= 12;                                    this->btnDecimal->Text
= L".";                                    this->btnDecimal->UseVisualStyleBackColor
= true;                                    this->btnDecimal->Click
+= gcnew System::EventHandler(this, &Calculator::btnDecimal_Click);                                    //                                     // btnAdd                                    // this is button 
for +                                    this->btnAdd->Location
= System::Drawing::Point(13, 227);                                    this->btnAdd->Name
= L"btnAdd";                                    this->btnAdd->Size
= System::Drawing::Size(45, 38);                                    this->btnAdd->TabIndex
= 13;                                    this->btnAdd->Text
= L"+";                                    this->btnAdd->UseVisualStyleBackColor
= true;                                    this->btnAdd->Click
+= gcnew System::EventHandler(this, &Calculator::btnOperation);                                    //                                     // btnSub                                    // this is button 
for -                                    this->btnSub->Location
= System::Drawing::Point(74, 227);                                    this->btnSub->Name
= L"btnSub";                                    this->btnSub->Size
= System::Drawing::Size(45, 38);                                    this->btnSub->TabIndex
= 14;                                    this->btnSub->Text
= L"-";                                    this->btnSub->UseVisualStyleBackColor
= true;                                    this->btnSub->Click
+= gcnew System::EventHandler(this, &Calculator::btnOperation);                                    //                                     // btnMul                                    // this is button 
for *                                    this->btnMul->Location
= System::Drawing::Point(135, 227);                                    this->btnMul->Name
= L"btnMul";                                    this->btnMul->Size
= System::Drawing::Size(45, 38);                                    this->btnMul->TabIndex
= 15;                                    this->btnMul->Text
= L"*";                                    this->btnMul->UseVisualStyleBackColor
= true;                                    this->btnMul->Click
+= gcnew System::EventHandler(this, &Calculator::btnOperation);                                    //                                     // btnDiv                                    // this is button 
for /                                     this->btnDiv->Location
= System::Drawing::Point(196, 227);                                    this->btnDiv->Name
= L"btnDiv";                                    this->btnDiv->Size
= System::Drawing::Size(45, 38);                                    this->btnDiv->TabIndex
= 16;                                    this->btnDiv->Text
= L"/";                                    this->btnDiv->UseVisualStyleBackColor
= true;                                    this->btnDiv->Click
+= gcnew System::EventHandler(this, &Calculator::btnOperation);                                    //                                     // btnClear                                    // this is button 
for clear                                    this->btnClear->Location
= System::Drawing::Point(12, 279);                                    this->btnClear->Name
= L"btnClear";                                    this->btnClear->Size
= System::Drawing::Size(45, 38);                                    this->btnClear->TabIndex
= 17;                                    this->btnClear->Text
= L"Clear";                                    this->btnClear->UseVisualStyleBackColor
= true;                                    this->btnClear->Click
+= gcnew System::EventHandler(this, &Calculator::btnClear_Click);                                    //                                     // Calculator                                    //                                     this->AutoScaleDimensions
= System::Drawing::SizeF(6, 13);                                    this->AutoScaleMode =
System::Windows::Forms::AutoScaleMode::Font;                                    this->ClientSize =
System::Drawing::Size(258, 322);                                    this->Controls->Add(this->btnClear);                                    this->Controls->Add(this->btnDiv);                                    this->Controls->Add(this->btnMul);                                    this->Controls->Add(this->btnSub);                                    this->Controls->Add(this->btnAdd);                                    this->Controls->Add(this->btnDecimal);                                    this->Controls->Add(this->btnEqual);                                    this->Controls->Add(this->btn0);                                    this->Controls->Add(this->btn9);                                    this->Controls->Add(this->btn8);                                    this->Controls->Add(this->btn7);                                    this->Controls->Add(this->btn6);                                    this->Controls->Add(this->btn5);                                    this->Controls->Add(this->btn4);                                    this->Controls->Add(this->btn3);                                    this->Controls->Add(this->btn2);                                    this->Controls->Add(this->btn1);                                    this->Controls->Add(this->txtResult);                                    this->Name = L"Calculator";                                    this->Text = L"Calculator";                                    this->Click += gcnew
System::EventHandler(this, &Calculator::btnOperation);                                    this->ResumeLayout(false);                                    this->PerformLayout();                         }#pragma endregion                        private:
bool
IsNum;//calling display function and passing the text of button clicked as string            private:
System::Void button_Click (System::Object^  sender, System::EventArgs^  e) {                                                  if(OperatorSelected!=String::Empty && !IsNum)                                                               txtResult->Text="";                                                   Button^ button = (Button^)sender
;                                                   txtResult->Text+=button->Text;                                                   IsNum=true;                                     }//checking whether ‘.’ Is present in text box or not if present then no             //action will be taken as there can be only one
decimal point in a number            //and if not then decimal will be added.private: System::Void
btnDecimal_Click(System::Object^  sender,
System::EventArgs^  e) {                                      System::String^ textBoxValue =
txtResult->Text;                                                 if(textBoxValue->IndexOf(".")<0)                                                 {                                                             if(textBoxValue->Length<=0)                                                                         txtResult->Text+="0.";                                                             else                                                                         txtResult->Text+=".";                                                 }                         }//this function perform all mathematical operationprivate: System::Void
btnOperation(System::Object^  sender,
System::EventArgs^  e) {                                      Button^ button = (Button^)sender
;                                                try                                                 {                                                             if(!String::IsNullOrEmpty(OperatorSelected) && !String::IsNullOrEmpty(value))                                                 {//this condition perform addition operation                                                             if(OperatorSelected=="+")                                                             {                                                                         txtResult->Text=Convert::ToString(Convert::ToDouble(value)
+ Convert::ToDouble(txtResult->Text));                                                              }//this condition perform  subtraction operation                                                              else if(OperatorSelected=="-")                                                             {                                                                         txtResult->Text=Convert::ToString(Convert::ToDouble(value)
- Convert::ToDouble(txtResult->Text));                                                             }//this condition perform division operation                                                             else if(OperatorSelected=="/")                                                             {                                                                         txtResult->Text=Convert::ToString(Convert::ToDouble(value)
/ Convert::ToDouble(txtResult->Text));                                                             }//this condition perform division operation                                                              else if(OperatorSelected=="*")                                                             {                                                                         txtResult->Text=Convert::ToString(Convert::ToDouble(value)
* Convert::ToDouble(txtResult->Text));                                                             }                                                             else if(button->Text=="=")                                                             {txtResult->Text=value;                                                             }                                                             value=txtResult->Text;                                                    }                                                    value=txtResult->Text;                                                            OperatorSelected=button->Text;                                                   IsNum=false;                                                 }                                                 catch(std::exception & ex)                 {                                                             txtResult->Text="";                                                  }                                                 }private: System::Void
btnClear_Click(System::Object^  sender,
System::EventArgs^  e) {                                      txtResult->Text="";                                                 value=String::Empty;                         }};}
```

Calculator.cpp

```
#include "Calculator.h"using namespace
CalculatorSam;//Entry Point for Window formvoid WinMain(){            Application::EnableVisualStyles();            Application::SetCompatibleTextRenderingDefault(false);            CalculatorSam::Calculator
Form;            Application::Run(%Form);            Application::Exit();            Environment::Exit(0);}
```

---

Original Source: https://www.mindstick.com/blog/753/calculator-in-c-plus-plus

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
