编写简易计算器?
用C#编写简易计算器
1.在窗体上拖23个button
,间距设置上下和左右等宽,修改text为相应的数字或者字母,以及一个textbox和groupBox1,修改他们的text。窗体、groupBox什么的背景图片直接插。
2. 初始化窗体
当窗体加载时,使textbox里的光标位于最右边,即从最右边开始输入。
这里TextAlign为设置文本框文字位置,HorizontalAlignment为枚举,选择right,当然选择哪个都行。
以下为代码:
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "";//初始化内容,设置为空
textBox1.TextAlign = HorizontalAlignment.Right;//用来设置文本框的文字的位置,
}
下面这些代码有的程序已经给了出来,多的是声明了两个全局变量,num1和temp。num1用来存储第一个用户输入的数字,temp为存储计算的方式,执行加法运算还是减法运算等等。
public partial class Form1 : Form
{
public double num1;
public int temp = 0;//记录存储计算方式
public Form1()
{
InitializeComponent();
}
3.创建小数点键和数字键的方法
两个方法
小数点键方法(这里有几种情况,当直接点击“.”键时,则需要文本显示为0. ,若文本前边已经有数字,点击“.”时,则需要数字加上小数点,若重复重复点击“.”则直接提示无须重新输入小数点)
这里button14为小数点按钮,当然大家可以自己设置下button的name方便代码编辑
private void button14_Click(object sender, EventArgs e)
{
//小数点按键,初始为空,直接按 . 键则显示为0.多少
if (textBox1.Text == "")
{
textBox1.Text = "0.";
}
//如果再次输入.则返回都输入的字符后边并提示信息
else if (textBox1.Text.IndexOf(".") >= 0)
{
MessageBox.Show("已经输入小数点,无须再次输入", "提示");
}
else
//前边有数字时,则直接在后边加上.
textBox1.Text = textBox1.Text + ".";
}
数字键方法(这个方法简单,就不说了)
public void inputNum(int myNum)
{
//当输入的数字不是0时,为1到9
if (myNum !=0)
{
textBox1.Text = textBox1.Text + myNum;
}
//输入数字为0
else
textBox1.Text = "0";
}
4.数字键调用那个方法 注:这里的n就是0到9的数字,这九个button代码都差不多,都调用inputNum方法就可以,把数字作为参数传进去。
private void button1_Click(object sender, EventArgs e)
{
inputNum(n);
}
5.编写复位键和退格键的方法
//复位键
private void button16_Click(object sender, EventArgs e) { textBox1.Text = " "; num1 = 0; temp = 0; }
//退格键,文本框里字符的长度大于1时,点击此键,则删除一个字符,即长度减一
private void button22_Click(object sender, EventArgs e) { if (textBox1.Text.Length > 0) { textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1); } }
6.编写加减乘除、开方、平方、三次方、log/In的方法。
当点击这几个键时,相当于用num1把用户输入的第一个数字存到这个变量里。下面举例加法和减法,其他的都类似,只不过temp取值不一样。
//加法计算 private void button10_Click(object sender, EventArgs e) { temp = 1; num1 = Convert.ToDouble(textBox1.Text);//当点击+号时,存储第一个数字 textBox1.Text = "";//随后让文本框归空 } //减法计算 private void button11_Click(object sender, EventArgs e) { temp = 2; num1 = Convert.ToDouble(textBox1.Text);//当点击-号时,存储第一个数字 textBox1.Text = "";//随后让文本框归空 }...........................................其他方法类似
7.编写=号键的方法
这里没有定义第二个变量存储用户输入的数字,因为num1已经有了,若用户执行加减乘除这样两个数的运算,第二数直接由textbox里转成double类型直接用,若用户执行开方、平方、log/In这种单个数运算,则不要第二数的输入,所以这里减少了存储第二个数的麻烦,当然也可以定义两个变量。
当用户点击“=“时执行此方法
private void button21_Click(object sender, EventArgs e) { switch (temp) {
//加法运算 case 1: textBox1.Text = (num1 + Convert.ToDouble(textBox1.Text)).ToString(); break;
//减法运算 case 2: textBox1.Text = (num1 - Convert.ToDouble(textBox1.Text)).ToString(); break;
//乘法运算 case 3: textBox1.Text = (num1 * Convert.ToDouble(textBox1.Text)).ToString(); break;
//除法运算,讨论分母为零的情况 case 4: if (Convert.ToDouble(textBox1.Text) == 0) { MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBox1.Clear(); } else textBox1.Text = (num1 / Convert.ToDouble(textBox1.Text)).ToString(); break; //log运算 case 5: textBox1.Text = Math.Log(num1).ToString(); break; //In运算 case 6: textBox1.Text = Math.Log10(num1).ToString(); break; //开方运算 case 7: textBox1.Text = Math.Sqrt(num1).ToString(); break; //平方运算 case 8: textBox1.Text =(num1 * num1).ToString(); break;
//三次方运算 case 9: textBox1.Text = Math.Pow(num1, 3).ToString(); break; } }
扩展资料:C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有