Sunteți pe pagina 1din 17

Basic Calculator In C# - C# Tutorials | Dream.In.

Code

1 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

Dream.In.Code> Programming Tutorials> C# Tutorials


(4 Pages)
1
2
3

Last
Basic Calculator in C#

Follow & Share

PsychoCoder

General Discussion
Caffeine Lounge

Posted 09 September 2007 - 08:36 PM

Corner Cubicle
Student Campus
POPULAR
In this tutoral, Basic Calculator in C#, we will look at
creating a basic calculator. The calculator will have the
following functionality:
Addition
Subtraction
Division
Multiplication
Square Root
Exponents (Power Of)
Clear Entry
Clear All
There will be a 2nd tutorial that will cover some more
advanced features such as
Adding a number to memory
Removing a number from memory
Calculating with a number in memory
Entering numbers by typing
The first thing you need to do is create a new project in
Visual Studio (or Visual Basic Express Edition if thats what
you use). Once you have created your new project you need
to create your user interface, your user interface should
look like this:

Software Development
Industry News
Introduce Yourself

Give It A Try!

Nightmare.In.Code

Programming Help
C and C++
VB6
Java
VB.NET
C#
ASP.NET

Your user interface will consist of


Buttons 0 through 9
Buttons for
Addition

.NET Framework
PHP
Ruby

Subtraction
Division
Multiplication
Exponents (x^)
Inverse (1/x)
Square Root (sqrt)
Decimal
Equals
Backspace
CE (Clear Entry)
C (Clear All)
ReadOnly TextBox for input (Make sure TabStop is also set to
False)
How you setup your user interface is up to you, but
remember people are used to a calculator looking a certain
way so you may wish to follow my example. In this tutorial I
will show you how to code two of the number buttons (since
all 10 are the same except the zero button), how to code
the calculations buttons, the clear buttons and the
backspace buttons. For two of the buttons we will need to
use built-in math functions in the .Net Framework:
System.Math.Sqrt Method (http://msdn2.microsoft.com
/en-us/library/system.math.sqrt.aspx) Used to calculate
Square Roots

Python

C# Tutorials
C# Learning Series Properties
C# Learning Series Classes & Objects
Detect Partially

ColdFusion
Databases
Other Languages
Game Development
Mobile Development
52 Weeks Of Code

Corrupted Image
Breadcrumb Navigation
in .NET
Parameterizing your
SQL Queries: The

Web Development
Web Development
HTML & CSS

RIGHT way to query a

JavaScript

database.

Graphic Design

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

2 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

System.Math.Pow Method (http://msdn2.microsoft.com


/en-us/library/system.math.pow.aspx) Used to calculate
Exponents
For the record there are many more members of the
System.Math
Class (http://msdn2.microsoft.com/en-us/library
FAQ
| Team
Blog | Feedback/Support |
/system.math(VS.80).aspx) located at the online MSDN.

Signature Maker

Flash & ActionScript

Tutorial (Build an

Blogging

Advertising
| Terms of Use |SEO
Privacy
Policy |
Application)
& Advertising
About Us

NotePad (RexPad)
Web Servers & Hosting
Now, in our calculator we need some Global variables to
hold different items and states in our calculator, such as
Tutorial: Step by Step
Site Check
which calculation are we performing, does the input area
already have a decimal, whether we can enter values into
Slide
Show
Desktop Reserved
the input area and
to hold values2001-2012
while we perform
Copyright
MediaGroup1
LLC,
All& Rights
calculations. Add the following code to the top of your code,
Background
Tutorial
LLC Production
- Version
6.0.2.1.36
A MediaGroup1
this is the global variables
we need in our calculator:

Server: secure3
What does this error
01
02
03
04
05
06
07
08
09
10

//variables to hold operands


private double valHolder1;
private double valHolder2;
//Varible to hold temporary values
private double tmpValue;
//True if "." is use else false
private bool hasDecimal = false;
private bool inputStatus = true;
//variable to hold Operater
private string calcFunc;

mean? Understanding
the common errors.
Tic Tac Toe Step by Step
219 More C# Tutorials...

Reference Sheets

These variables will be used through out our program thats


why they're globals. Now, before any calculations can be
done, the user needs to be able to enter numbers into the
input box, so lets take a look at how to do that. Since all the
number keys in the calculator are the same (except the 0
(zero) key, we'll conver that in a minute) I will code one of
the buttons, then you can do the rest. Lets take a look at
the number one key:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19

private void cmd1_Click(object sender,


System.EventArgs e)
{
//Check the inputStatus
if (inputStatus)
{
//Its True
//Append values to the value
//in the input box
txtInput.Text += cmd1.Text;
}
else
{
//Value is False
//Set the value to the value of the
button
txtInput.Text = cmd1.Text;
//Toggle inputStatus to True
inputStatus = true;
}
}

C# Snippets
Read value from
Resource file in C#
Get connection string
from the web.config
Kill a process if its
running
Kill a process if it's
running
Check if a process is
running
Search Text file for
String
Validate IP address with
Regular Expression
Retrieve populated

When a user clicks a number button (in this case the


number one button) we check the status of the inputStatus
flag. If its true then we know we can just append the next
value to the end of whats currently in the input box,
otherwise we just enter the number into the input box. All
the remaining numbers, as stated before, follow this
procedure. The zero button slightly different as we don't
want the user to be able to enter zero as the first number
(this is covered more in the decimal button functionality).
So lets take a look at how we code the zero button:

DataTable from SQL


Server
Resize an image in C#
Find all classes within a
Namespace
570 More C# Snippets...

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

3 of 17

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

DIC Chatroom

private void cmd0_Click(object sender,


System.EventArgs e)
{
//Check the input status
if (inputStatus)
{
//If true
//Now check to make sure our
//input box has a value
if (txtInput.Text.Length >= 1)
{
//Add our zero
txtInput.Text += cmd0.Text;
}
}
}

Join our IRC Chat

Bye Bye Ads

Monthly Drawing

Find us on Facebook

Dream.In.Code

First we check the status of the inputStatus flag, if its true


we know we can enter a number in the box. Here we do a
second check, we make sure the length of the text in the
input box is at least 1 (it has a value), if so we enter the
zero into the input box.
For adding a decimal to our input box we need to first make
sure our input box doesn't already contain one, for this we
use the hasDecimal global (boolean) variable, then we need
to make sure our input box has a value (don't want the user
to be able to enter a decimal as the first value). Then we
make sure the value in the input area isn't 0 (zero), this we
will handle later.
If all those are true then we enter the decimal then toggle
the hasDecimal to True, so the user cant enter a 2nd one.
Now, if the input area doesn't have a value, we enter 0., as
we assume the user is wanting to work with a decimal value
such as 0.5. Lets take a look at the procedure for doing
this:

Like
25,258 people like Dream.In.Code.

Sumon

Hakan

Andrea

Much

Jj

jean

Hesham

Ouadie

Abdo

Facebook social plugin

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21

private void cmdDecimal_Click(object sender,


System.EventArgs e)
{
//Check for input status (we want true)
if (inputStatus)
{
//Check if it already has a decimal (if
it does then do nothing)
if (!hasDecimal)
{
//Check to make sure the length is >
than 1
//Dont want user to add decimal as
first character
if (txtInput.Text.Length != 0)
{
//Make sure 0 isnt the first
number
if (txtInput.Text != "0")
{
//It met all our
requirements so add the zero
txtInput.Text +=
cmdDecimal.Text;
//Toggle the flag to true
(only 1 decimal per calculation)
hasDecimal = true;
}
}

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

4 of 17

22
23
24
25
26
27
28
29
30

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

else
{
//Since the length isnt > 1
//make the text 0.
txtInput.Text = "0.";
}
}
}
}

As you can see, we check all the items mentioned above, if


they're True we add the decimal, otherwise we add 0. to the
input area.
The first calculation we will look at is addition. The first
thing we do here is to make sure the input box has a value
(Length > 1). If it does then we check the calcFunc value.
The calcFunction variable will be used to tell our CalculateTotals
procedure which calculation to perform. Here, if the value is
empty (String.Empty) we assign the value of our input box
to a variable, valHolder1, which will hold the first part of all
calculations, then clear out the input box so the user can
enter a 2nd number.
If the calcFunc variable isnt empty then we call our
CalculateTotals procedure to display a total to the user. We
then assign the value of Add to our variable for the next
turn through, then we toggle the hasDecimal flag to False.
Now lets take a look at how we accomplished this:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

private void cmdAdd_Click(object sender,


System.EventArgs e)
{
//Make sure out input box has a value
if (txtInput.Text.Length != 0)
{
//Check the value of our function flag
if (calcFunc == string.Empty)
{
//Flag is empty
//Assign the value in our input
//box to our holder
valHolder1 =
System.Double.Parse(txtInput.Text);
//Empty the input box
txtInput.Text = string.Empty;
}
else
{
//Flag isnt empty
//Call our calculate totals method
CalculateTotals();
}
//Assign a value to our calc function
flag
calcFunc = "Add";
//Toggle the decimal flag
hasDecimal = false;
}
}

Believe it or not, all the other basic calculation buttons are


the same as the Add button, with the exception of what we
set calcFunc to. In the other buttons we set this variable to
the calculation we want to perform, Subtract,
Divide, Multiply, and so on, so there really isn't a reason to
show how that is done since we did the Add button and the

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

5 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

others are the same.


Even though they are the same I'll show the functionality of
one more calculation button. This time we will look at the
code for the subtraction button. The first thing we do here is
to make sure the input box has a value (Length > 1). If it
does then we check the calcFunc value. The calcFunction
variable will be used to tell our CalculateTotals procedure which
calculation to perform. Here, if the value is empty
(String.Empty) we assign the value of our input box to a
variable, valHolder1, which will hold the first part of all
calculations, then clear out the input box so the user can
enter a 2nd number.
If our calcFunction isnt empty then we call our
CalculateTotals method to perform the calculations. We
then assign the value of Subtract to our calcFunc variable
so the calculations method will know which calculation to
perform. The code for the subtraction button looks like this:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

private void cmdSubtract_Click(object sender,


System.EventArgs e)
{
//Make sure the input box has a value
if (txtInput.Text.Length != 0)
{
//Check the valueof our calculate
function flag
if (calcFunc == string.Empty)
{
//Flag is empty
//Assign the value of our input
//box to our holder
valHolder1 =
System.Double.Parse(txtInput.Text);
//Empty the input box
txtInput.Text = string.Empty;
}
else
{
//Flag isnt empty
//Call our calculate totals method
CalculateTotals();
}
//assign a value to our
//calculate function flag
calcFunc = "Subtract";
//Toggle the decimal flag
hasDecimal = false;
}
}

Thats how the normal calculation buttons are coded. Now


lets say you want to give the user the option to calculate
Exponents, 4^2 for example. To code this button you need
a couple of checks before doing anything. First we need to
check and make sure the input area has a value, if it does
then we check to see the value of the calcFunc variable.
If this is empty, we then convert the value of the input area
to a Double and assign it to the valHolder1 variable to hold
on to, this will be used for the calculations in the
CalculateTotals procedure and empth the value from the
input area.. If its not empty we directly call the
CalculateTotals function as this means the user has already
entered 2 numbers.
We then assign the value of PowerOf to our calcFunc
variable, this will tell CalculateTotals what calculation to
perform, and toggle the hasDecimal flag to False. Lets take
a look at how we accomplished all of this:

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

6 of 17

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

private void cmdPowerOf_Click(object sender,


System.EventArgs e)
{
//Make sure the input box has a value
if (txtInput.Text.Length != 0)
{
//Check if the calcFunc flag is empty
if (calcFunc == string.Empty)
{
//Assign the value of the input box
to our variable
valHolder1 =
System.Double.Parse(txtInput.Text);
//Empty the input box
//So the user can enter the power of
value
txtInput.Text = string.Empty;
}
else
{
//Call the calculate totals method
CalculateTotals();
}
//Assign our flag the value of "PowerOf"
calcFunc = "PowerOf";
//Reset the decimal flag
hasDecimal = false;
}
}

Doing a Square Root is somewhat different as it doesn't


take 2 values, just the number you want the square root of,
so some of the checking required in the other calculations
isn't required here. For a Square Root we first check to
ensure the input area has a value. If it does have a value
we assign the value of the input area, converted to a
Double, to our tmpValue variable.
Once we have the value, we call the System.Math.Sqrt Method
(http://msdn2.microsoft.com/en-us/library/system.math.sqrt.aspx)
to perform the calculations on the tmpValue variable. Once
this is complete we assign the resulting value to our input
area, then toggle the hasDecimal flag to False. Lets take a
look at how this is done:
The Equals button is quite simple. Here, we first check to
make sure our input area has a value and that our
valHolder1 variable isn't a zero (Divide by 0 is a bad thing).
If both of these are true we call the CalculateTotals
procedure to perform our calculations based on the value of
the calcFunc flag. We then clear the value of calcFunc and
toggle the hasDecimal flag to False. This is done like this:
01
02
03
04
05
06
07
08
09
10
11

private void cmdSqrRoot_Click(object sender,


System.EventArgs e)
{
//Make sure the input box has a value
if (txtInput.Text.Length != 0)
{
//Assign our variable the value in the
input box
tmpValue =
System.Double.Parse(txtInput.Text);
//Perform the square root
tmpValue = System.Math.Sqrt(tmpValue);
//Display the results in the input box
txtInput.Text = tmpValue.ToString();

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

7 of 17

12
13
14
15

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

//Clear the decimal flag


hasDecimal = false;
}
}

In the last 2 buttons we have looked at how you use the


two System.Math Members I mentioned earlier, pretty
simple isnt it.
We have 3 more buttons to look at before we look at the
CalculateTotals procedure. First we'll look at the backspace
button.For the backspace, first we need to make sure the
input are has a value. If it does then we retrieve the next to
last character and see if its a decimal, if it is we toggle the
hasDecimal flag to False. Next we create an Integer
variable (loc) to hold the length of the contents in the input
area. From there we use Remove, along with loc to remove
the last character of the string for each time the user clicks
the backspace button.
01
02
03
04
05
06
07
08
09
10

11
12
13
14
15
16
17
18
19
20
21
22

private void cmdBackspace_Click(object sender,


System.EventArgs e)
{
//Declare locals needed
string str;
int loc;
//Make sure the text length is > 1
if (txtInput.Text.Length > 0)
{
//Get the next to last character
str =
txtInput.Text.Substring(txtInput.Text.Length 1);
//Check if its a decimal
if (str == ".")
{
//If it is toggle the hasDecimal
flag
hasDecimal = false;
}
//Get the length of the string
loc = txtInput.Text.Length;
//Remove the last character,
incrementing by 1
txtInput.Text = txtInput.Text.Remove(loc
- 1, 1);
}
}

The last 2 buttons I'm going to demonstrate are the CE


(Clear entry) and C (Clear all) buttons. These are very
simple. First the clear entry button. What we do here is set
the value in the input area to empty (String.Empty), and
the hasDecimal flag to false.
1
2
3
4
5
6
7

private void cmdClearEntry_Click(object sender,


System.EventArgs e)
{
//Empty the input box
txtInput.Text = string.Empty;
//Toggle the decimal flag
hasDecimal = false;
}

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

8 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

The clear all button required a bit more code as we do more


with this button. Here we set our 2 holder variables,
valHolder1 and valHolder2 to 0 (zero), we then set the
calcFunc flag to String.Empty and the hasDecimal flag to
False, like this:
01
02
03
04
05
06
07
08
09
10
11
12

private void cmdClearAll_Click(object sender,


System.EventArgs e)
{
//Empty the text in the input box
txtInput.Text = string.Empty;
//Clear out both temp values
valHolder1 = 0;
valHolder2 = 0;
//Set the calc switch to empty
calcFunc = string.Empty;
//Toggle the hasDecimal flag
hasDecimal = false;
}

Those are the buttons you need for a Basic calculator. The
final thing we're going to look at is the procedure that
actually does the calculations, CalculateTotals. Here the
first thing we do is set our variable valHolder2 to the
current value of the input area.
We then do a switch(calcFunc) on the value of calcFunc so
we know which calculations to perform. We perform our
calculations (add, subtract, divide, multiply, exponent, etc)
and set the results to the input area so the user can see
their results. Finally we set the inputEntry flag to False.
This is what this procedure looks like:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

private void CalculateTotals()


{
valHolder2 =
System.Double.Parse(txtInput.Text);
//determine which calculation we're going to
execute
//by checking the value of calcFunc
switch (calcFunc)
{
//addition
case "Add":
valHolder1 = valHolder1 +
valHolder2;
break;
//subtraction
case "Subtract":
valHolder1 = valHolder1 valHolder2;
break;
//division
case "Divide":
valHolder1 = valHolder1 /
valHolder2;
break;
//multiplication
case "Multiply":
valHolder1 = valHolder1 *
valHolder2;
break;
//exponents (power of)
case "PowerOf":
valHolder1 =

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

9 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

System.Math.Pow(valHolder1, valHolder2);
break;
}
//set our input area to the value of the
calculation
30
txtInput.Text = valHolder1.ToString();
31
inputStatus = false;
32 }
27
28
29

NOTE: For the Exponents (Power Of) we use the


System.Math.Pow Method (http://msdn2.microsoft.com/en-us
/library/system.math.pow.aspx) for calculating the value.
There are two more buttons in this calculator that we didn't
cover, basically due to the length of the tutorial. Those
buttons are included in the sample project I'm attaching to
this tutorial.
Thats it, thats how you create a basic calculator in C#. I
hope you find this tutorial helpful. I am including the project
file with this tutorial, but remember this solution is under
the GNU GENERAL PUBLIC LICENSE so you may not
remove the header from the files or turn this project in as
your homework assignment.
I know I am forced to go with the honor system in this, but if
you do just turn this in as your assignment not only will you
be cheating, but you will learn nothing, and subsequently
wont know enough to become a programmer once you get
out of school.
I will be doing a 2nd part to this tutorial where I look at
adding more advanced functionality to this calculator, such
as adding a number to memory, removing a number from
memory, calculations with a number in memory and more.
Thank you for reading!
(http://www.dreamincode.net/forums/index.php?app=core&
module=attach&section=attach&attach_id=5007&
s=b5b806476f9905021b9ff362535b7966)
PC_Calculator_CSharp.zip (http://www.dreamincode.net/forums
/index.php?app=core&module=attach&section=attach&
attach_id=5007&s=b5b806476f9905021b9ff362535b7966)
(120.99K)
Number of downloads: 14375

(http://optimized-by.rubiconproject.com/t/9358/16370
/39994-15.3315924.3370992?url=http%3A%2F
%2Fadoptuskids.org)
Replies To: Basic Calculator in C#

Allen.Brumley

Posted 25 January 2008 - 08:50 AM

(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=254209) PsychoCoder, on 9
Sep, 2007 - 08:36 PM, said:
In this tutoral, Basic Calculator in C#, we will look at

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

10 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

creating a basic calculator. The calculator will have the


following functionality:
The Equals button is quite simple. Here, we first check to
make sure our input area has a value and that our
valHolder1 variable isn't a zero (Divide by 0 is a bad thing).
If both of these are true we call the CalculateTotals
procedure to perform our calculations based on the value of
the calcFunc flag. We then clear the value of calcFunc and
toggle the hasDecimal flag to False. This is done like this:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15

private void cmdSqrRoot_Click(object sender,


System.EventArgs e)
{
//Make sure the input box has a value
if (txtInput.Text.Length != 0)
{
//Assign our variable the value in the
input box
tmpValue =
System.Double.Parse(txtInput.Text);
//Perform the square root
tmpValue = System.Math.Sqrt(tmpValue);
//Display the results in the input box
txtInput.Text = tmpValue.ToString();
//Clear the decimal flag
hasDecimal = false;
}
}

FYI This was supposed to be the equals example but it is


Square Root.
I worked through it with the instructions anyways but
thought you might like to know.
Thanks
Allen

PsychoCoder

Posted 25 January 2008 - 08:53 AM


@Allen.Brumley: Thanks, Ill get to fixing that

MeghaRazdan

Posted 31 January 2008 - 05:46 AM

(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=300870) Allen.Brumley, on
25 Jan, 2008 - 08:50 AM, said:
(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=254209) PsychoCoder, on 9
Sep, 2007 - 08:36 PM, said:
In this tutoral, Basic Calculator in C#, we will look at
creating a basic calculator. The calculator will have the
following functionality:
The Equals button is quite simple. Here, we first check to
make sure our input area has a value and that our
valHolder1 variable isn't a zero (Divide by 0 is a bad thing).
If both of these are true we call the CalculateTotals
procedure to perform our calculations based on the value of
the calcFunc flag. We then clear the value of calcFunc and
toggle the hasDecimal flag to False. This is done like this:
01
02
03
04
05
06

private void cmdSqrRoot_Click(object sender,


System.EventArgs e)
{
//Make sure the input box has a value
if (txtInput.Text.Length != 0)
{
//Assign our variable the value in the

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

11 of 17

07
08
09
10
11
12
13
14
15

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

input box
tmpValue =
System.Double.Parse(txtInput.Text);
//Perform the square root
tmpValue = System.Math.Sqrt(tmpValue);
//Display the results in the input box
txtInput.Text = tmpValue.ToString();
//Clear the decimal flag
hasDecimal = false;
}
}

FYI This was supposed to be the equals example but it is


Square Root.
I worked through it with the instructions anyways but
thought you might like to know.
Thanks
Allen
hi Allen.Can you please give me the code for the equals
button.

PsychoCoder

Posted 31 January 2008 - 08:49 AM


This is the code for the equals button, which is listed at the
end of the tutorial:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

private void CalculateTotals()


{
valHolder2 =
System.Double.Parse(txtInput.Text);
//determine which calculation we're going to
execute
//by checking the value of calcFunc
switch (calcFunc)
{
//addition
case "Add":
valHolder1 = valHolder1 +
valHolder2;
break;
//subtraction
case "Subtract":
valHolder1 = valHolder1 valHolder2;
break;
//division
case "Divide":
valHolder1 = valHolder1 /
valHolder2;
break;
//multiplication
case "Multiply":
valHolder1 = valHolder1 *
valHolder2;
break;
//exponents (power of)
case "PowerOf":
valHolder1 =
System.Math.Pow(valHolder1, valHolder2);
break;

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

12 of 17

28
29
30
31
32

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

}
//set our input area to the value of the
calculation
txtInput.Text = valHolder1.ToString();
inputStatus = false;
}

mandy2010

Posted 17 May 2008 - 02:30 AM


you can also have some buttons for sin theta and cos theta

thaaanx!!

WorkingC#

Posted 21 October 2008 - 08:20 PM

(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=302879) PsychoCoder, on
31 Jan, 2008 - 08:49 AM, said:
This is the code for the equals button, which is listed at the
end of the tutorial:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

private void CalculateTotals()


{
valHolder2 =
System.Double.Parse(txtInput.Text);
//determine which calculation we're going to
execute
//by checking the value of calcFunc
switch (calcFunc)
{
//addition
case "Add":
valHolder1 = valHolder1 +
valHolder2;
break;
//subtraction
case "Subtract":
valHolder1 = valHolder1 valHolder2;
break;
//division
case "Divide":
valHolder1 = valHolder1 /
valHolder2;
break;
//multiplication
case "Multiply":
valHolder1 = valHolder1 *
valHolder2;
break;
//exponents (power of)
case "PowerOf":
valHolder1 =
System.Math.Pow(valHolder1, valHolder2);

So what if we had to place CalculateTotals() in a separate


class? I have tried but it gives me errors since I cannot
access the variables and textbox created in my forms class.
Any help would be great! :^:

Nomantheone

Posted 15 April 2009 - 10:57 AM


Thanks.

Elliander

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

13 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

Posted 15 May 2009 - 06:51 PM

The Tutorial was overall very helpful, but there were a few
problems with the code.
As it is, it actually allowed the user to enter two decimal
points. This was fixed easily by adding another:
hasDecimal = true;
at the very end of the decimal code.
It also had a Fatal Error. If the user enters a number, then
doesn't enter a second number, it crashes on pressing "="
because there is no value stored valHolder2. It would run
better if by default it had a value of 0 like windows
calculator uses so if the user doesn't enter a second number
it can't crash anything.
I ran the program beside windows calculator to see the
difference. One major difference was quickly seen.
For example, in adding 1 + 3 = 4, in windows Calculator, if
you press "=" again, it would then say "7" then "10" then
"13" etc. But in this program it would say "8" then "16" then
"32" then "64" etc.
In other words, Windows Calculator would take the value of
the second number entered and use that each time "=" is
pressed but your code acts as a doubler. I wouldn't mind
seeing how it would work to make it run like Windows
Calculator.
Edit:
Another serious problem with this code is that powerof
doesn't really work at all. If the answer would be less than
0, it displays nothing, and if the answer would be greater
than 0, it displays 0.
It seems to be impossible to do 999 times .001 times .001
because of the way the decimal points are written. when I
try, I get 999 times .001 times 1. If I try to press "=" after
it and try again, same thing. So certain forms of long math
are pretty much impossible as it is written.
The code is also unable to display more than 15 characters.
Which can be a real problem. Sometimes it cuts off the end
of so many digits, other time it does this:
9999999991 times 9999999991 = 99999999820000000081
, in windows calculator, but = 9.999999982E+19 in your
code. (exactly 15 characters) even though the display area
and textbox settings should allow for more. The average
user won't know how to read that.
This post has been edited by Elliander: 15 May 2009 - 07:23 PM

source144

Posted 06 June 2009 - 11:00 PM


this isn't a console application??
can you make a tutorial for a console application??

Irish18

Posted 15 June 2009 - 03:00 PM


Quote

01
02
03
04
05
06
07
08
09
10
11
12
13
14

private void cmd1_Click(object sender,


System.EventArgs e)
{
//Check the inputStatus
if (inputStatus)
{
//Its True
//Append values to the value
//in the input box
txtInput.Text += cmd1.Text;
}
else
{
//Value is False
//Set the value to the value of the
button

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

14 of 17

15
16
17
18
19

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

txtInput.Text = cmd1.Text;
//Toggle inputStatus to True
inputStatus = true;
}
}

When I write this part of the code the 'txtInput.Text' and


'cmd1.Text' say ; ''The name 'txtInput.Text' does no exsist
in the current context''
I can't figure out were i've gone wrong cause ive followed all
the code before that to the letter

papuccino1

Posted 15 June 2009 - 04:15 PM


Irish18, you probably DO NOT have a TextBox called
"txtInput" on your form. Triple-check for that. I'm 999%
percent sure that's the problem.

Irish18

Posted 16 June 2009 - 07:26 AM

(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=674951) papuccino1, on 15
Jun, 2009 - 03:15 PM, said:
Irish18, you probably DO NOT have a TextBox called
"txtInput" on your form. Triple-check for that. I'm 999%
percent sure that's the problem.
Gutted, i knew id made some stupid rookie mistake. :(
Thanks!

Irish18

Posted 16 June 2009 - 07:40 AM

(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=674951) papuccino1, on 15
Jun, 2009 - 03:15 PM, said:
Irish18, you probably DO NOT have a TextBox called
"txtInput" on your form. Triple-check for that. I'm 999%
percent sure that's the problem.
Gyargh, I found the name of my TextBox, it was called
'textBox1'; so i put that infront of '.Text' and its giving the
same error message
This is what i have so far;
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

public class Program


{
// variables to hold operands
private double valHolder1;
private double valHolder2;
// variable to hold temporary values
private double tmpValue;
// True if '.' is use else false
private bool hasDecimal = false;
private bool inputStatus = true;
// variable to hold Operator
private string calcFunc;
[STAThread]
public void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(
Application.Run(new Form1());
}

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

15 of 17

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

private void button1_Click(object


sender, System.EventArgs e)
{
//Check the inputStatus
if (inputStatus)
{
//Its True
//Append values to the value
//in the input box
textBox1.Text += button1.Text;
}
else
{
//Value is False
//Set the value to the value of
the button
textBox1.Text = button1.Text;
//Toggle inputStatus to True
inputStatus = true;
}
}

lesPaul456

Posted 17 June 2009 - 09:52 AM

(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=675685) Irish18, on 16 Jun,
2009 - 08:40 AM, said:
(http://www.dreamincode.net/forums/index.php?app=forums&
module=forums&section=findpost&pid=674951) papuccino1, on 15
Jun, 2009 - 03:15 PM, said:
Irish18, you probably DO NOT have a TextBox called
"txtInput" on your form. Triple-check for that. I'm 999%
percent sure that's the problem.
Gyargh, I found the name of my TextBox, it was called
'textBox1'; so i put that infront of '.Text' and its giving the
same error message
This is what i have so far;
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

public class Program


{
// variables to hold operands
private double valHolder1;
private double valHolder2;
// variable to hold temporary values
private double tmpValue;
// True if '.' is use else false
private bool hasDecimal = false;
private bool inputStatus = true;
// variable to hold Operator
private string calcFunc;
[STAThread]
public void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(
Application.Run(new Form1());
}

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

16 of 17

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

private void button1_Click(object


sender, System.EventArgs e)
{
//Check the inputStatus
if (inputStatus)
{
//Its True
//Append values to the value
//in the input box
textBox1.Text += button1.Text;
}
else
{
//Value is False
//Set the value to the value of
the button
textBox1.Text = button1.Text;
//Toggle inputStatus to True
inputStatus = true;
}
}

In the code you pasted, the button1 click event looks like
it's in the "Program" class. If that's right, then there's your
problem. This method should be in the "Form1" class.
(4 Pages)
1
2
3

Last

Related
C#
beta

Topics
Error

Message Help
On Basic
Calculator
Code - Last
Snippet Of
Code Is
Giving Me An
Error And I
Don't
Understand
Creating
Calculator
With C#
How Can
Calculator In
The C#

12/3/2012 11:00 PM

Basic Calculator In C# - C# Tutorials | Dream.In.Code

17 of 17

http://www.dreamincode.net/forums/topic/32968-basic-calculator-in-c#/

C# Class Help
How To Make
An Simple
Calculator In
C#
Calculator Store Value
Mortgage
Calculator In
C#
Basic
Calculator Implementing
Keyboard
Input
Basic
Calculator
Textbox
Calculator

12/3/2012 11:00 PM

S-ar putea să vă placă și