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


本文标签: 控件 点击 运算 代码 小数点