您的位置:首页 > 其它

简单计算器

2016-04-27 00:13 302 查看
简单计算器,暂时label控件的显示功能还不完善,不想了,就这样

界面设计:



显示计算公式:lblShow

显示按下的数字和结果:txtShow

0-9按钮:btnZero~btnNine

按钮点:btnPoint

加:btnAdd

减:btnMinus

乘:btnMultiply

除:btnDivided

回退:btnFallback

CE按钮:btnCE

C按钮:btnC

等于按钮:btnEqual

为防止误操作,把文本框的属性设置成不可手动修改:



原文本框高度太小,属性修改:



详细代码:

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 计算器
{
public partial class Counter : Form
{
public Counter()
{
InitializeComponent();
}
//设置全局变量
//加减乘除运算符
string Operator;
//前数值
decimal FrontValue;
//后数值
decimal BehindValue;
//判断已有小数点
bool AlreadyPoint=false;
//判断已等于
bool AlreadyEqual = false;

private void Counter_Load(object sender, EventArgs e)
{
lblShow.Text = "";
}

private void btnZero_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 0;
lblShow.Text += 0;
}

private void btnOne_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 1;
lblShow.Text += 1;
}

private void btnTwo_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 2;
lblShow.Text += 2;
}

private void btnThree_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 3;
lblShow.Text += 3;
}

private void btnFour_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 4;
lblShow.Text += 4;
}

private void btnFive_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 5;
lblShow.Text += 5;
}

private void btnSix_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 6;
lblShow.Text += 6;
}

private void btnSeven_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 7;
lblShow.Text += 7;
}

private void btnEight_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 8;
lblShow.Text += 8;
}

private void btnNine_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
lblShow.Text = "";
AlreadyEqual = false;
}
txtShow.Text += 9;
lblShow.Text += 9;
}

private void btnPoint_Click(object sender, EventArgs e)
{
if (AlreadyEqual == true)
{
txtShow.Text = "";
}
if (txtShow.Text != "" && AlreadyPoint==false)
{
AlreadyPoint = true;
txtShow.Text += ".";
}
}
//加
private void btnAdd_Click(object sender, EventArgs e)
{
if (txtShow.Text != "")
{
FrontValue += decimal.Parse(txtShow.Text);
txtShow.Text = "";
lblShow.Text += " + ";
Operator = "add";
AlreadyPoint = false;
}
}
//减
private void btnMinus_Click(object sender, EventArgs e)
{
if (txtShow.Text != "")
{
FrontValue += decimal.Parse(txtShow.Text);
txtShow.Text = "";
lblShow.Text += " - ";
Operator = "Minus";
AlreadyPoint = false;
}
}
//乘
private void btnMultiply_Click(object sender, EventArgs e)
{
if (txtShow.Text != "")
{
FrontValue += decimal.Parse(txtShow.Text);
txtShow.Text = "";
lblShow.Text += " * ";
Operator = "Multiply";
AlreadyPoint = false;
}
}
//除
private void btnDivided_Click(object sender, EventArgs e)
{
if (txtShow.Text != "")
{
FrontValue += decimal.Parse(txtShow.Text);
txtShow.Text = "";
lblShow.Text += " / ";
Operator = "Divided";
AlreadyPoint = false;
}
}
//等于
private void btnEqual_Click(object sender, EventArgs e)
{
switch(Operator)
{
case "add":
BehindValue = FrontValue + decimal.Parse(txtShow.Text);
break;
case "Minus":
BehindValue = FrontValue - decimal.Parse(txtShow.Text);
break;
case "Multiply":
BehindValue = FrontValue * decimal.Parse(txtShow.Text);
break;
case "Divided":
BehindValue = FrontValue / decimal.Parse(txtShow.Text);
break;
}
txtShow.Text = BehindValue.ToString();
FrontValue = 0;
AlreadyEqual = true;
AlreadyPoint = false;
lblShow.Text = txtShow.Text;
}
//CE清除当前数
private void btnCE_Click(object sender, EventArgs e)
{
txtShow.Text = "";
//清除功能对lblShow缺失,没想到好方法
lblShow.Text = "";
}
//C全清
private void btnC_Click(object sender, EventArgs e)
{
txtShow.Text = "";
lblShow.Text = "";
//加减乘除运算符
Operator="";
//前数值
FrontValue=0;
//后数值
BehindValue=0;
//判断已有小数点
AlreadyPoint = false;
//判断已等于
AlreadyEqual = false;
}
//回退功能
private void btnFallback_Click(object sender, EventArgs e)
{
if (txtShow.Text != "")
{
txtShow.Text = txtShow.Text.Substring(0, txtShow.Text.Length-1);
lblShow.Text = lblShow.Text.Substring(0, lblShow.Text.Length - 1);
}
}
}
}


运行效果:



附源码下载:

简单计算器.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: