C# 一步一步完成一个简单的计算器 第二步---实现单目运算

这系列的上一章,实现了计算器的界面

链接: http://blog.csdn.net/yangdan3611925/article/details/49451303


现在这篇文章是实现计算器的基本操作,按下数字按钮(Button)使数字添加到编辑框(TextBox),实现单目运算 (取反 开平方根 取倒数 退位键 CE键)


正文开始:

首先让我们 对程序进行初始化操作:

双击程序窗口(注意不要点击 Button TextBox 等) ,VS 应该会跳转到写代码的界面 如下图


在里面写上 ,可 copy 上去

            Rtext.Enabled = false;      //作用: 禁止人为手动修改
            Ctext.Enabled = false;      //如上
            Rtext.Text = "";            //初始化 显示
            Ctext.Text = "0";           //如上
这样写上去




现在是让 数字按钮 按下后,能使数字添加到 编辑框(TextBox)中.

选中一个 一个数字按钮,然后在属性 那里找到事件 ,然后再寻找到 Click ,并在它对应的编辑框中写下 NumBtn_Click 按下回车键  ,如下图


回车键按下后,应该会跳转到写代码的界面 ,下图就是 实现数字按钮 按下 的事件的地方


在中写上 下面代码. (作用基本写在注释里面)

            string numStr= (sender as Button).Text;     //sender 是触发这个事件的成员 ,
                                                        //我们是一个按钮按下这个事件触发,所以要 将其转换为 Button 类型,
                                                        //再看按钮的Test值 是我们要添加并显示的数字,我们就直接取出来

            if (Ctext.Text == "0")
                // 如果为零的话,说明这是初始值 overload
                Ctext.Text = numStr;
            else
                Ctext.Text += numStr;


接下了 是让其他的数字按钮可以触发 这个事件( NumBtn_Click )

选中其他的数字按钮->属性框->事件->Click ,在下拉框中选择 NumBtn_Click .所以的 数字按钮都重复这个操作 具体如下图


现在可以按下 F5 ,看看效果


我们现在可以使用数字键了,

接下来要实现 小数点的按钮 (Spot_Btn)

同样,双击 Spot_Btn这按钮,会跳转到代码界面 ("  private void Spot_Btn_Click(object sender, EventArgs e)  " ) 这个方法

在里面写上

            string str = (sender as Button).Text;   // 这个str 其实就是 "." 一个英文字符'点'

            if (Ctext.Text.IndexOf(str) == -1)      // IndexOf 是 在字符串中寻找某个字符 , 如何不存在返回 -1
            {                                       // 程序不可能有多个小数点(只能有一个),
                                                    // 所以 只有 Ctext.Text.IndexOf(str) == -1 时,才向Ctext添加 '.'
                Ctext.Text += str;
            }

现在我们可以输入小数点了


//----------

现在我们实现单目运算 (取反 开平方根 取倒数 退位键 CE键)


先来 取反 ( ± )

双击 Opp_Btn 按钮

在代码中写上

            string str = Ctext.Text;                //取出显示的文本(输入的数字)
            double val = double.Parse(str);         //通过 double.Parse() 将 string类型 转换为 double leix
            val = -val;                             //取反
            Ctext.Text = val.ToString();            //将取反后的值 重新显示出去( 赋值给Ctext.Text )


开平方根

双击 Sqrt_Btn ,在代码中写

            string str = Ctext.Text;                //取出显示的文本(输入的数字)
            double val = double.Parse(str);         //通过 double.Parse() 将 string类型 转换为 double leix
            if (val<0)                              //负数开不了平方根
                MessageBox.Show("负数不可开平方根!", "错误!");
            val = Math.Sqrt(val);                   //调用库函数 计算 平方根
            Ctext.Text = val.ToString();            //重新显示出去( 赋值给Ctext.Text )


取倒数

和上面两个相似,双击对应的按钮.写上代码

            string str = Ctext.Text;                //取出显示的文本(输入的数字)
            double val = double.Parse(str);         //通过 double.Parse() 将 string类型 转换为 double leix
            if (val == 0.0)
                MessageBox.Show("零不可做分母!", "错误!");
            else
                val = 1 / val;                      //取倒数

            Ctext.Text = val.ToString();            //重新显示出去( 赋值给Ctext.Text )


退位键

不多说,如上,在对应的区域写上

            string str = Ctext.Text;                //取出显示的文本(输入的数字)
            if (str.Length==1)                      //如果显示的一个数字,将他变成0
                str = "0";
            else                                    //其他的 取前面的 n-1 个字符
                str = str.Substring(0, str.Length - 1);
            Ctext.Text = str;   


CE键

同上,写上代码

Ctext.Text = "0";




OK这一部分就写完了,可以测试下

到当前进度的代码下载在下面链接中

链接:http://pan.baidu.com/s/1dDEyp25 密码:1n4b

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值