第一个简单的 计算器
设计步骤:
(1)设计应用程序界面
新建windows应用程序项目,在windows窗体上添加一个文本框控件TextBox1,其余的控件均可在程序运行时自动建立。
(2)编写程序代码
Form.cs中程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace windows_application
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//申明私有成员变量
private Button[] BT_NUM;
private Button[] Operator;
private string sOper; bool bDot, bEqu;
private double dblAcc, dblDes, dblResult;
//添加窗体的Load事件
private void Form1_Load_1(object sender, EventArgs e)
{
BT_NUM = new Button[10]; //10个数字按钮
Operator = new Button[6]; //6个符号按钮
int i;
for (i = 0; i <= 9; i++) //设置数字按钮的位置与属性、事件
{
BT_NUM[i] = new Button();
this.Controls.Add(BT_NUM[i]);
BT_NUM[i].Left = 10 + 50 * (i % 3);
BT_NUM[i].Top = 50 * (int)(i / 3) + 70;
BT_NUM[i].Width = 40;
BT_NUM[i].Height = 40;
BT_NUM[i].Name = "BT_NUM" + i.ToString();
BT_NUM[i].Text = i.ToString();
BT_NUM[i].Click += new System.EventHandler(bt_Click);
}
for (i = 0; i <=5; i++) //设置符号按钮的位置与属性、事件
{
Operator[i] = new Button();
this.Controls.Add(Operator[i]);
Operator[i].Left = 10 + 50 * 3;
Operator[i].Top = 50 * i + 70;
Operator[i].Width = 40;
Operator[i].Height = 40;
Operator[i].Click += new System.EventHandler(bt_Click);
}
//设置符号按钮的Text属性
Operator[0].Text = "+";
Operator[1].Text = "-";
Operator[2].Text = "*";
Operator[3].Text = "/";
Operator[4].Text = "=";
Operator[5].Text = "CE";
Operator[4].Left = 10 + 50 * 2;
Operator[4].Top = 50 * 3 + 70;
Operator[5].Left = 10 + 50 * 1;
Operator[5].Top = 50 * 3 + 70;
}
//添加按钮控件的Click事件与处理方法
private void bt_Click(object sender,System.EventArgs e)//这里是事件处理的方法
{
String sText;
Button bClick = (Button)sender; //将被单击的按钮赋给定义的bClick变量
sText = bClick.Text; //获取按钮的文字
switch(sText) //通过按钮文字属性判断哪个是Button被单击,并执行相应的操作
{
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
case "0": //输入为数字
//如果执行过一次计算,那么再次输入数字的时候,应该清空textBox1
if (bEqu) textBox1.Text = "";
bEqu = false;
textBox1.Text = textBox1.Text +sText; //将输入的数字累加
break;
case "+":
case "-":
case "*":
case "/":
dblAcc = Convert.ToDouble(textBox1.Text);
textBox1.Text = "";
sOper = sText; //记下***作的数及操作符
break;
case "=":
if (!bEqu) dblDes = Convert.ToDouble(textBox1.Text);
//如果本次对“=”的单击是连续的第二次单击,那么操作数不变
bEqu = true;
switch(sOper) //根据操作的不同执行相应的计算
{
case "+":dblResult = dblAcc + dblDes;break;
case "-": dblResult = dblAcc - dblDes; break;
case "*": dblResult = dblAcc * dblDes; break;
case "/": dblResult = dblAcc / dblDes; break;
}
textBox1.Text = dblResult.ToString();
dblAcc = dblResult; //将计算结果赋给***作数,以便执行连续的第二次操作
break;
case "CE":
textBox1.Text = ""; //清除文本框的内容
break;
}
}
}
}
结果