Hi, I am having trouble with my C# homework. We are supposed to create a graphic
ID: 3688558 • Letter: H
Question
Hi, I am having trouble with my C# homework. We are supposed to create a graphical calculator application, comparable to a basic calculator that is included with many operating systems.
The requirements are as follows:
Create a calculator application that has a GUI.
The calculator shall have buttons for the ten digits.
The calculator shall have a button for the decimal point.
The calculator shall have buttons for the four arithmetic operators (+, -, *, /).
The calculator shall have a button for equals.
The calculator shall have a button for clear.
The calculator shall have a display for user input and output.
The calculator shall support "chained" operations (for example, something like 4 + 3 + 2 + 5).
The calculator shall follow the behavior of a push button calculator (simply evaluated left to right), rather than the typical rules of algebra (i.e., the "chained" operations are done in order rather than following the algebraic rules. For example, 4 + 2 * 3 in algebra would be 4 + 6 = 10, but with a push button calculator it would be 4 + 2 * 3 = 6 * 3 = 18).
The calculator shall display the operations being "chained" together.
Thanks for the help! remember it's in C#! :]
Explanation / Answer
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace calculator
{
public partial class Form1 : Form
{
public string no1,constfun;
// public int no2;
public bool inputstatus;
public Form1()
{
InitializeComponent();
no1 = "";
textBox1.ReadOnly = true; //read only mode of textbox
textBox1.RightToLeft = RightToLeft.Yes;
radioButton1.Checked = true;
}
//putting value of button text into text box and a variable inputstatus to textbox
#region putting value
private void button1_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button1.Text;
}
else
{
textBox1.Text = button1.Text;
inputstatus = true;
}
}
private void button6_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button6.Text;
}
else
{
textBox1.Text = button6.Text;
inputstatus = true;
}
}
private void button7_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button7.Text;
}
else
{
textBox1.Text = button7.Text;
inputstatus = true;
}
}
private void button8_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button8.Text;
}
else
{
textBox1.Text = button8.Text;
inputstatus = true;
}
}
private void button11_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button11.Text;
}
else
{
textBox1.Text = button11.Text;
inputstatus = true;
}
}
private void button12_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button12.Text;
}
else
{
textBox1.Text = button12.Text;
inputstatus = true;
}
}
private void button13_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button13.Text;
}
else
{
textBox1.Text = button13.Text;
inputstatus = true;
}
}
private void button16_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button16.Text;
}
else
{
textBox1.Text = button16.Text;
inputstatus = true;
}
}
private void button17_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button17.Text;
}
else
{
textBox1.Text = button17.Text;
inputstatus = true;
}
}
//when 9 is pressed
private void button18_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button18.Text;
}
else
{
textBox1.Text = button18.Text;
inputstatus = true;
}
}
//. button
private void button2_Click(object sender, EventArgs e)
{
if (inputstatus == true)
{
textBox1.Text += button2.Text;
}
else
{
textBox1.Text = button2.Text;
inputstatus = true;
}
}
#endregion putting vaules
//Add Operator
private void button3_Click(object sender, EventArgs e)
{
no1 = textBox1.Text;
textBox1.Text = "";
constfun = "+"; //used in switch case to check what want to do add
}
//subtract
private void button9_Click(object sender, EventArgs e)
{
no1 = textBox1.Text;
textBox1.Text = "";
constfun = "-"; //want to subtract
}
//multiply
private void button10_Click(object sender, EventArgs e)
{
no1 = textBox1.Text;
textBox1.Text = "";
constfun = "*"; //want to multiply
}
//divide
private void button15_Click(object sender, EventArgs e)
{
no1 = textBox1.Text;
textBox1.Text = "";
constfun = "/";
}
//a user defined fun
private void funcal()
{
switch (constfun)
{
case "+":
textBox1.Text=Convert.ToString( Convert.ToInt32(no1) + Convert.ToInt32(textBox1.Text)); //ading values of textbox
break;
case "-":
textBox1.Text = Convert.ToString(Convert.ToInt32(no1) - Convert.ToInt32(textBox1.Text));
break;
case "*":
textBox1.Text = Convert.ToString(Convert.ToInt32(no1) * Convert.ToInt32(textBox1.Text));
break;
case "/":
if (textBox1.Text == "0")
{
textBox1.Text = "infinity";
}
else
{
textBox1.Text = Convert.ToString(Convert.ToInt32(no1) / Convert.ToInt32(textBox1.Text));
}
break;
case "x^y":
textBox1.Text = Convert.ToString(System.Math.Pow(Convert.ToDouble(no1), Convert.ToDouble(textBox1.Text)));
break;
case "mod": textBox1.Text = Convert.ToString(Convert.ToDouble(no1) % Convert.ToDouble(textBox1.Text));
break;
case "nPr": int varn, var2,var3; //variable declaration
varn = factorial(Convert.ToInt32(no1)); //calling factorial function
var2=factorial(Convert.ToInt32(no1)-Convert.ToInt32(textBox1.Text));
textBox1.Text=Convert.ToString(varn/var2); //storing or showing result of factorial variables
break;
case "nCr":
varn = factorial(Convert.ToInt32(no1));
var2=factorial(Convert.ToInt32(no1)-Convert.ToInt32(textBox1.Text));
var3 = factorial(Convert.ToInt32(textBox1.Text));
textBox1.Text=Convert.ToString(varn/(var3*var2));
break;
}
}
//a user defined function to calculate factorial
private int factorial(int x)
{
int i = 1; //initialization values of i to 1
for (int s = 1; s <= x; s++)
{
i = i * s;
}
return i;
}
//when = button is pressed
private void button5_Click(object sender, EventArgs e)
{
funcal(); //calling of function
inputstatus = false;
}
//when AC is pressed to power on
private void button14_Click(object sender, EventArgs e)
{
textBox1.Enabled = true;
textBox1.Text = "0";
}
//calculating x raise to power 2
private void button19_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) * Convert.ToInt32(textBox1.Text));
inputstatus = false;
}
//calculating x raise to power 3
private void button20_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) * Convert.ToInt32(textBox1.Text) * Convert.ToInt32(textBox1.Text));
inputstatus = false;
}
//calculating squareroot
private void button21_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(System.Math.Sqrt(Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
//x raise to power y
private void button22_Click(object sender, EventArgs e)
{
no1 = textBox1.Text;
textBox1.Text = "";
constfun = "x^y";
}
//when CE button is pressed
private void button23_Click(object sender, EventArgs e)
{
textBox1.Text = String.Empty;
inputstatus = true;
}
//To set Pi value
private void button4_Click(object sender, EventArgs e)
{
textBox1.Text = "3.141592654";
}
//sin function
private void button24_Click(object sender, EventArgs e)
{
//if radian is selected
if (radioButton3.Checked==true)
{
textBox1.Text = Convert.ToString(System.Math.Sin(Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
//if degree is selected
else
{
textBox1.Text = Convert.ToString(System.Math.Sin((Convert.ToDouble(System.Math.PI)/180)*(Convert.ToDouble(textBox1.Text))));
inputstatus = false;
}
}
//cos function
private void button25_Click(object sender, EventArgs e)
{
//radian selected
if (radioButton3.Checked==true)
{
textBox1.Text = Convert.ToString(System.Math.Cos(Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
//degree selected
else
{
textBox1.Text = Convert.ToString(System.Math.Cos((Convert.ToDouble(System.Math.PI)/180)*(Convert.ToDouble(textBox1.Text))));
inputstatus = false;
}
}
//tan function
private void button26_Click(object sender, EventArgs e)
{
//radian selected
if (radioButton3.Checked==true)
{
textBox1.Text = Convert.ToString(System.Math.Tan(Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
//degree selected
else
{
textBox1.Text = Convert.ToString(System.Math.Tan((Convert.ToDouble(System.Math.PI)/180)*(Convert.ToDouble(textBox1.Text))));
inputstatus = false;
}
}
//calculationg 1/x
private void button27_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(Convert.ToDouble(1.0 / Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
//calculting x!
private void button28_Click(object sender, EventArgs e)
{
int var1=1;
for (int i = 1; i <= Convert.ToInt16(textBox1.Text); i++)
{
var1 = var1 * i;
}
textBox1.Text = Convert.ToString(var1);
inputstatus = false;
}
//calculationg log10
private void button29_Click(object sender, EventArgs e)
{
textBox1.Text=Convert.ToString(System.Math.Log10(Convert.ToDouble(textBox1.Text)));
inputstatus=false;
}
//calculation natural log
private void button30_Click(object sender, EventArgs e)
{
textBox1.Text=Convert.ToString(System.Math.Log(Convert.ToDouble(textBox1.Text)));
inputstatus=false;
}
//backspace key is presseed
private void button31_Click(object sender, EventArgs e)
{
no1= textBox1.Text;
int n=no1.Length;
textBox1.Text=(no1.Substring(0,n-1)); //removing values one by one onclick of backspace button
}
//when mod operator(%) is presseed
private void button32_Click(object sender, EventArgs e)
{
no1 = textBox1.Text;
textBox1.Text = "";
constfun = "mod"; //explaned earlier to calculate mod in fncalc()
}
//coding for +/- key
private void button33_Click(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(-Convert.ToInt32(textBox1.Text));
inputstatus = false;
}
//Sin inverese fun
private void button35_Click(object sender, EventArgs e)
{
if (radioButton3.Checked==true)
{
textBox1.Text = Convert.ToString(System.Math.Asin(Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
else
{
textBox1.Text = Convert.ToString(System.Math.Asin((Convert.ToDouble(System.Math.PI)/180)*(Convert.ToDouble(textBox1.Text))));
inputstatus = false;
}
}
//cos inverese fun
private void button34_Click(object sender, EventArgs e)
{
if (radioButton3.Checked==true)
{
textBox1.Text = Convert.ToString(System.Math.Acos(Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
else
{
textBox1.Text = Convert.ToString(System.Math.Acos((Convert.ToDouble(System.Math.PI)/180)*(Convert.ToDouble(textBox1.Text))));
inputstatus = false;
}
}
//tan inverese fun
private void button36_Click(object sender, EventArgs e)
{
if (radioButton3.Checked == true)
{
textBox1.Text = Convert.ToString(System.Math.Atan(Convert.ToDouble(textBox1.Text)));
inputstatus = false;
}
else
{
textBox1.Text = Convert.ToString(System.Math.Atan((Convert.ToDouble(System.Math.PI)/180) * (Convert.ToDouble(textBox1.Text))));
inputstatus = false;
}
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
}
}
//coding for off button
private void button39_Click(object sender, EventArgs e)
{
textBox1.Enabled = false;
textBox1.Text = "";
inputstatus = false;
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
}
private void userControl11_Load(object sender, EventArgs e)
{
Application.Exit();
}
private void userControl11_Load_1(object sender, EventArgs e)
{
}
private void userControl11_Load_2(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace control1
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Application.Exit();//applcation exit on click of close button
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.