# GUI Simple Calculator Visual C++ Source : Windows Form Application

Today let’s work around a new interesting visual C++ (cpp) calculator with Graphical User Interface (Windows Form Application). I made this source as easier as possible. You can compile the source by downloading the project source from below.

Why is it simple calculator? It has only the basic functions of a calculator such as addition, subtraction, multiplication,division and 2 others. First Entered number is taken to the first variable a. Then select and operator, enter the second number. Do the necessary operations and When you press “=” equals button, you can see the answer right where you expect it.

More than these basic operations, you can also find the square and square root of a number. I have added buttons for this. This program make use of “math.h” which contains “sqrt()” and “power()” functions for accomplishing these tasks.

 Visual Cpp Calculator

Use visual c++ 2010 compiler for execution.

Source……………………………Form1.h[design]

`````` #pragma once
#include<conio.h> //For_getch()_function
#include<math.h>
double ans, a, b;
int flag=0;
using namespace std;
namespace Calculator {
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 Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TextBox^ txtb;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Button^ button3;
private: System::Windows::Forms::Button^ button4;
private: System::Windows::Forms::Button^ button5;
private: System::Windows::Forms::Button^ button6;
private: System::Windows::Forms::Button^ button7;
private: System::Windows::Forms::Label^ label1;
protected:
protected:
protected:
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)
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
this->txtb = (gcnew System::Windows::Forms::TextBox());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->button3 = (gcnew System::Windows::Forms::Button());
this->button4 = (gcnew System::Windows::Forms::Button());
this->button5 = (gcnew System::Windows::Forms::Button());
this->button6 = (gcnew System::Windows::Forms::Button());
this->button7 = (gcnew System::Windows::Forms::Button());
this->label1 = (gcnew System::Windows::Forms::Label());
this->SuspendLayout();
//
// txtb
//
this->txtb->BackColor = System::Drawing::Color::White;
this->txtb->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle;
this->txtb->Font = (gcnew System::Drawing::Font(L"Arial Rounded MT Bold", 26.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->txtb->ForeColor = System::Drawing::Color::Black;
this->txtb->Location = System::Drawing::Point(32, 44);
this->txtb->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->txtb->Name = L"txtb";
this->txtb->Size = System::Drawing::Size(300, 48);
this->txtb->TabIndex = 0;
this->txtb->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
this->txtb->WordWrap = false;
this->txtb->TextChanged += gcnew System::EventHandler(this, &Form1::txtb_TextChanged);
//
// button1
//
this->button1->Font = (gcnew System::Drawing::Font(L"Arial Rounded MT Bold", 27.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button1->Location = System::Drawing::Point(32, 108);
this->button1->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(98, 49);
this->button1->TabIndex = 1;
this->button1->Text = L"+";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// button2
//
this->button2->Font = (gcnew System::Drawing::Font(L"Letterman-Solid", 15.75F, System::Drawing::FontStyle::Italic, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button2->Location = System::Drawing::Point(234, 108);
this->button2->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(98, 49);
this->button2->TabIndex = 2;
this->button2->Text = L"=";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
//
// button3
//
this->button3->Font = (gcnew System::Drawing::Font(L"Arial Rounded MT Bold", 27.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button3->Location = System::Drawing::Point(32, 160);
this->button3->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->button3->Name = L"button3";
this->button3->Size = System::Drawing::Size(98, 49);
this->button3->TabIndex = 3;
this->button3->Text = L"-";
this->button3->UseVisualStyleBackColor = true;
this->button3->Click += gcnew System::EventHandler(this, &Form1::button3_Click);
//
// button4
//
this->button4->Font = (gcnew System::Drawing::Font(L"Arial Rounded MT Bold", 27.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button4->Location = System::Drawing::Point(32, 212);
this->button4->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->button4->Name = L"button4";
this->button4->Size = System::Drawing::Size(98, 49);
this->button4->TabIndex = 4;
this->button4->Text = L"x";
this->button4->UseVisualStyleBackColor = true;
this->button4->Click += gcnew System::EventHandler(this, &Form1::button4_Click);
//
// button5
//
this->button5->Font = (gcnew System::Drawing::Font(L"Arial Rounded MT Bold", 27.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button5->Location = System::Drawing::Point(32, 264);
this->button5->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->button5->Name = L"button5";
this->button5->Size = System::Drawing::Size(98, 49);
this->button5->TabIndex = 5;
this->button5->Text = L"/";
this->button5->UseVisualStyleBackColor = true;
this->button5->Click += gcnew System::EventHandler(this, &Form1::button5_Click);
//
// button6
//
this->button6->Font = (gcnew System::Drawing::Font(L"Arial Rounded MT Bold", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button6->Location = System::Drawing::Point(234, 161);
this->button6->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->button6->Name = L"button6";
this->button6->Size = System::Drawing::Size(98, 49);
this->button6->TabIndex = 6;
this->button6->Text = L"ROOT";
this->button6->UseVisualStyleBackColor = true;
this->button6->Click += gcnew System::EventHandler(this, &Form1::button6_Click);
//
// button7
//
this->button7->Font = (gcnew System::Drawing::Font(L"Arial Rounded MT Bold", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->button7->Location = System::Drawing::Point(234, 212);
this->button7->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->button7->Name = L"button7";
this->button7->Size = System::Drawing::Size(98, 49);
this->button7->TabIndex = 7;
this->button7->Text = L"SQUARE";
this->button7->UseVisualStyleBackColor = true;
this->button7->Click += gcnew System::EventHandler(this, &Form1::button7_Click);
//
// label1
//
this->label1->AutoSize = true;
this->label1->BackColor = System::Drawing::SystemColors::HighlightText;
this->label1->Font = (gcnew System::Drawing::Font(L"KabobExtrabold", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label1->Location = System::Drawing::Point(123, 3);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(135, 18);
this->label1->TabIndex = 8;
this->label1->Text = L"Simple Calculator";
this->label1->Click += gcnew System::EventHandler(this, &Form1::label1_Click);
//
//
//
//
//
//
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->BackgroundImage = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"\$this.BackgroundImage")));
this->BackgroundImageLayout = System::Windows::Forms::ImageLayout::Stretch;
this->ClientSize = System::Drawing::Size(360, 324);
this->DoubleBuffered = true;
this->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->ForeColor = System::Drawing::Color::Black;
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::Fixed3D;
this->Margin = System::Windows::Forms::Padding(2, 3, 2, 3);
this->Name = L"Form1";
this->Text = L"Form1";
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void txtb_TextChanged(System::Object^ sender, System::EventArgs^ e) {
int temp;
if(Int32::TryParse(txtb->Text, temp))
a = float::Parse(txtb->Text);
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
flag=1;
b = double::Parse(txtb->Text);
ans=a+b;
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
flag=2;
b = float::Parse(txtb->Text);
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
if(a==0 && b==0)
{
txtb->Text = "Enter Numbers";
}
if(flag==1)
{
ans=a+b;
txtb->Text = Convert::ToString(ans);
}
else if(flag==2)
{
ans=b-a;
txtb->Text = Convert::ToString(ans);
}
else if(flag==3)
{
ans=b*a;
txtb->Text = Convert::ToString(ans);
}
else if(flag==4)
{
if(a==0)
{
MessageBox::Show("Divided By Zero Error");
}
ans=b/a;
txtb->Text = Convert::ToString(ans);
}
}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
flag=3;
b = double::Parse(txtb->Text);
}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
flag=4;
b = double::Parse(txtb->Text);
}
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
ans=sqrt(a);
txtb->Text = Convert::ToString(ans);
}
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
ans=a*a;
txtb->Text = Convert::ToString(ans);
}
private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) {
MessageBox::Show("Created By :nn Muhammed Afsal.vn e-mail : [email protected]");
}
private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) {
a=b=0;
}
private: System::Void exitToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Application::Exit();
}
private: System::Void menuStrip1_ItemClicked(System::Object^ sender, System::Windows::Forms::ToolStripItemClickedEventArgs^ e) {
}
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
};
}  ``````
———————————-Calculator.cpp
``````// Calculator.cpp : main project file.
#include "stdafx.h"
#include "Form1.h"
using namespace Calculator;