admin 管理员组文章数量: 1086019
2024年4月26日发(作者:weblogic控制台查看版本)
百度ID:温柔一刀dgj
超详细
一、 因为计算器设计的控件太多,不便使用控制台应用程序完成,所以这里使用
Windows窗体应用程序,并命名为Calc,如下图所示:
二、 向窗体中拖入需要的控件,如下图所示:
(完成效果图)
结果显示区(作者博客左边的文本框)是TextBox控件,并修改其name为txtShow ,按键
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
0~9为Button控件,并将其name分别修改为btn_0、btn_1、btn_2、btn_3、btn_4、btn_5、
btn_6、btn_7、btn_8、btn_9;按键【负数】的name值修改为btn_sign,按键【.】的name
修改为btn_dot,按键【+ - * /】的name值分别修改为btn_add、btn_sub、btn_mul、btn_div,
按键【=】的name值修改为btn_equ,按键【倒数】的name值修改为btn_rev,按键【平方】
的name值修改为btn_sqr,按键【开方】的name值修改为btn_sqrt。右边的计算器图片空
间是
PictureBox,作者博客控件是LinkLabel,可以不添加,以上所有控件均可按照需求添加,只保留自
己需要的按钮控件和textbox控件即可。
三、 代码部分(含解释),采用
switch多分支语句编写
using System;
using g;
using tions;
using entModel;
using ;
using ;
namespace Calc
{
///
/// QQ:479340056 温柔一刀C#简易计算器的实现
///
public class CalcForm :
{
private btn_0;
private btn_1;
private btn_2;
private btn_3;
private btn_4;
private btn_5;
private btn_6;
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
private btn_7;
private btn_8;
private btn_9;
private btn_add;
private btn_sub;
private btn_mul;
private btn_div;
private btn_sqrt;
private btn_sign;
private btn_equ;
private btn_dot;
private btn_rev;
private x txtShow;
private btn_sqr;
private PictureBox pictureBox1;
private LinkLabel linkLabel1;
///
/// 清理所有正在使用的资源。
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
}
e();
}
//
// TODO: 在InitializeComponent 调用后添加任何构造函数代码
//
public CalcForm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
///
/// 必需的设计器变量。
///
private ner components = null;
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
#region Windows Form Designer generated code
///
/// 设计器支持所需的方法- 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
}
}
e( disposing );
entResourceManager resources = new
entResourceManager(typeof(CalcForm));
_9 = new ();
w = new x();
_8 = new ();
_7 = new ();
_div = new ();
_sqrt = new ();
_4 = new ();
_5 = new ();
_6 = new ();
_1 = new ();
_2 = new ();
_3 = new ();
_0 = new ();
_mul = new ();
_sub = new ();
_sign = new ();
_equ = new ();
_add = new ();
_dot = new ();
_sqr = new ();
_rev = new ();
eBox1 = new eBox();
bel1 = new bel();
((rtInitialize)(eBox1)).BeginInit();
dLayout();
//
// btn_9
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (126, 37);
_ = "btn_9";
_ = new (59, 31);
_ex = 0;
_ = "9";
_ = "9";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// txtShow
//
on = new (4, 6);
= "txtShow";
ly = true;
= new (242, 21);
ex = 1;
ign = ;
//
// btn_8
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (66, 37);
_ = "btn_8";
_ = new (59, 31);
_ex = 2;
_ = "8";
_ = "8";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_7
//
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (4, 37);
_ = "btn_7";
_ = new (59, 31);
_ex = 3;
_ = "7";
_ = "7";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_div
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (187, 37);
_ = "btn_div";
_ = new (59, 31);
_ex = 4;
_ = "/";
_ualStyleBackColor = false;
_ += new andler(_div_Click);
//
// btn_sqrt
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor =
moke;
_ = new ("黑体", 10.5F,
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
, , ((byte)(134)));
_lor = ;
_on = new (253, 37);
_ = "btn_sqrt";
_ = new (59, 31);
_ex = 5;
_ = "开方";
_ualStyleBackColor = false;
_ += new andler(_sqrt_Click);
//
// btn_4
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (4, 72);
_ = "btn_4";
_ = new (59, 31);
_ex = 6;
_ = "4";
_ = "4";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_5
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (66, 72);
_ = "btn_5";
_ = new (59, 31);
_ex = 7;
_ = "5";
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
_ = "5";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_6
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (126, 72);
_ = "btn_6";
_ = new (59, 31);
_ex = 8;
_ = "6";
_ = "6";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_1
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (4, 108);
_ = "btn_1";
_ = new (59, 31);
_ex = 9;
_ = "1";
_ = "1";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_2
//
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (66, 108);
_ = "btn_2";
_ = new (59, 31);
_ex = 10;
_ = "2";
_ = "2";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_3
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (126, 108);
_ = "btn_3";
_ = new (59, 31);
_ex = 11;
_ = "3";
_ = "3";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_0
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
, , ((byte)(134)));
_lor = ;
_on = new (4, 143);
_ = "btn_0";
_ = new (59, 31);
_ex = 12;
_ = "0";
_ = "0";
_ualStyleBackColor = false;
_ += new andler(_0_Click);
//
// btn_mul
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (187, 72);
_ = "btn_mul";
_ = new (59, 31);
_ex = 13;
_ = "*";
_ualStyleBackColor = false;
_ += new andler(_mul_Click);
//
// btn_sub
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (187, 108);
_ = "btn_sub";
_ = new (59, 31);
_ex = 14;
_ = "-";
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
_ualStyleBackColor = false;
_ += new andler(_sub_Click);
//
// btn_sign
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor =
moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (66, 143);
_ = "btn_sign";
_ = new (59, 31);
_ex = 15;
_ = "负数";
_ualStyleBackColor = false;
_ += new andler(_sign_Click);
//
// btn_equ
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (253, 143);
_ = "btn_equ";
_ = new (59, 31);
_ex = 16;
_ = "=";
_ualStyleBackColor = false;
_ += new andler(_equ_Click);
//
// btn_add
//
_lor = Border;
_oundImageLayout = ;
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (187, 143);
_ = "btn_add";
_ = new (59, 31);
_ex = 17;
_ = "+";
_ualStyleBackColor = false;
_ += new andler(_add_Click);
//
// btn_dot
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (126, 143);
_ = "btn_dot";
_ = new (59, 31);
_ex = 18;
_ = ".";
_ualStyleBackColor = false;
_ += new andler(_dot_Click);
//
// btn_sqr
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (253, 72);
_ = "btn_sqr";
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
_ = new (59, 31);
_ex = 19;
_ = "平方";
_ualStyleBackColor = false;
_ += new andler(_sqr_Click);
//
// btn_rev
//
_lor = Border;
_oundImageLayout = ;
_ownBackColor =
Face;
_verBackColor = moke;
_ = new ("黑体", 10.5F,
, , ((byte)(134)));
_lor = ;
_on = new (253, 108);
_ = "btn_rev";
_ = new (59, 31);
_ex = 20;
_ = "倒数";
_ualStyleBackColor = false;
_ += new andler(_rev_Click);
//
// pictureBox1
//
=
(()(ect("")));
on = new (319, 6);
= "pictureBox1";
= new (100, 168);
ex = 21;
p = false;
//
// linkLabel1
//
ze = true;
on = new (253, 13);
= "linkLabel1";
= new (53, 12);
ex = 22;
p = true;
= "作者博客";
icked += new
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
belLinkClickedEventHandler(bel1_LinkClicked);
//
// CalcForm
//
aleBaseSize = new (6, 14);
Size = new (427, 181);
(bel1);
(eBox1);
(_rev);
(_sqr);
(_dot);
(_add);
(_equ);
(_sign);
(_sub);
(_mul);
(_0);
(_3);
(_2);
(_1);
(_6);
(_5);
(_4);
(_sqrt);
(_div);
(_7);
(_8);
(w);
(_9);
rderStyle = ialog;
zeBox = false;
= "CalcForm";
osition = Screen;
= "C#编写计算器by QQ:479340056 ";
+= new andler(rm_Load);
((rtInitialize)(eBox1)).EndInit();
Layout(false);
mLayout();
public const int NULL = 0; // 定义操作码
public const int ADD = 1;
}
#endregion
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
btnTmp = sender as ;
if (btnTmp != null)
{
if (dot == NODOT)
{
// 没有点击小数点
i = (ng());
tmp = tmp * 10 + i;
= ng();
///
/// 当点击一个数字按钮的时候,需要进行判断,如果没有点击
/// 小数点,那么就把原来的数值扩大倍后再加上当前的数值,
/// 如果点击了小数点,那么就将当前的数值除以一个权数,再
/// 加上原来的数值,得到新的数值。
///
///
///
private void btn_0_Click(object sender, rgs e)
{
btnTmp;
double i;
public const int SUB = 2;
public const int MUL = 3;
public const int DIV = 4;
public const int SQR = 5;
public const int SQRT = 6;
public const int NODOT = 0;
public const int HASDOT = 1;
private double res = 0;
private double tmp = 0;
private int opt = NULL;
private int dot = NODOT;
private int num = 0;
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
}
(new CalcForm());
private int dotnum = 0;
// 记录结果数
// 当前输入的操作数
// 记录操作码
// 记录是否点击了小数点
// 记录输入操作数的个数
// 记录小数点部分的个数
// 定义是否点击了小数点
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
private void btn_equ_Click(object sender, rgs e)
{
// 生成结果
if (num == 0)
{
}
switch (opt)
{
// 加法
res = res + tmp;
break;
// 减法
res = res - tmp;
break;
// 乘法
res = res * tmp;
break;
// 除法
res = res / tmp;
break;
// 平方
res = tmp * tmp;
case ADD:
res = 0;
tmp = 0;
= ng();
return;
}
}
}
else
{
}
// 点击了小数点
dotnum++;
// 生成小数部分的新的数值
i = (ng()) / (10,dotnum);
tmp = tmp + i;
= ng();
case SUB:
case MUL:
case DIV:
case SQR:
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
private void btn_sub_Click(object sender, rgs e)
private void btn_mul_Click(object sender, rgs e)
{
}
// 乘法运算
opt = MUL;
if (num != 0)
res = res * tmp;
res = tmp;
else
num++;
tmp = 0;
= ng();
private void btn_div_Click(object sender, rgs e)
{
}
// 除法运算
opt = DIV;
if (num != 0)
{
}
else
res = tmp;
num++;
tmp = 0;
= ng();
if (tmp != 0)
res = res / tmp;
}
}
= ng();
opt = NULL;
res = 0;
num = 0;
break;
// 平方根
res = (tmp);
break;
return;
case SQRT:
default:
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
private void btn_rev_Click(object sender, rgs e)
{
private void btn_sqr_Click(object sender, rgs e)
{
}
// 平方运算
tmp = tmp * tmp;
= ng();
private void btn_sqrt_Click(object sender, rgs e)
{
}
// 开方运算
if (tmp > 0)
{
}
tmp = (tmp);
= ng();
private void btn_add_Click(object sender, rgs e)
{
}
// 加法运算
opt = ADD;
if (num != 0)
res = res + tmp;
res = tmp;
else
num++;
tmp = 0;
= ng();
{
}
// 减法运算
opt = SUB;
if (num != 0)
res = res - tmp;
res = tmp;
else
num++;
tmp = 0;
= ng();
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
private void CalcForm_Load(object sender, EventArgs e)
{
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
("");
}
}
}
private void btn_sign_Click(object sender, rgs e)
{
}
// 点击了符号运算
tmp = -tmp;
= ng();
private void btn_dot_Click(object sender, rgs e)
{
}
// 点击了小数点
dot = HASDOT;
dotnum = 0;
}
// 求倒数运算
tmp = 1 / tmp;
= ng();
四、 说明
这里只提供了一种方法,另外以上代码中有很多是用于字体颜色设置,可以精简掉,很
容易分辨 。
linkLabel1单击打开网页的事件
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
("");
}
是一般用不到的。
尽量不要直接粘贴代码到,自己动手,丰衣足食···
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
百度ID:温柔一刀dgj
版权声明:本文标题:C#编写简易计算器(附源代码)超详细 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1714103901a665836.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论