C#编程基础(下)—项目实践:使用C#开发简单版winform计算器程序(输入两个数字,点击加减乘除按钮后,输出计算结果)

版权声明:王迪 https://blog.csdn.net/dnruanjian/article/details/88639739

知识点:基本控件的使用、添加事件、获取TextBox控件里用户输入的数据。

1、计算器的工作原理理解

第一步:新建一个项目,起名为MyCounter,并设置Form1的Textt属性为“简易计算器”

第二步:从工具箱拖动三个Label控件到窗体上,并分别设置Text属性为:“数字一:”、“数字二:”、“结果:”

第三步:从工具箱分别拖动三个TextBox控件到窗体上,它们的Name属性默认为textBox1、textBox2和textBox3,这里不做修改。

第四步:从工具箱分别土洞4个Button控件到窗体上,并分别设置Text属性和Name属性。相加btnJia、相减btnJian、相乘btnCheng、相除btnChu。(这里设置Name属性是为了后面调用时方便识别控件)

第五步:给四个按钮分别添加Click事件。

举例:双击【相加】按钮,进入代码编写模式

        private void btnJia_Click(object sender, EventArgs e)
        {
            //将第一个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num1
            float num1 = Convert.ToSingle(textBox1.Text);
            //将第二个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num2
            float num2 = Convert.ToSingle(textBox2.Text);
            //计算两个数字相加,并赋值给变量jieguo
            float jieguo = num1 + num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }

可以依次给另外3个按钮添加Click事件。

结果演示:

完整代码演示:

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 MyCounter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnJia_Click(object sender, EventArgs e)
        {
            //将第一个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num1
            float num1 = Convert.ToSingle(textBox1.Text);
            //将第二个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num2
            float num2 = Convert.ToSingle(textBox2.Text);
            //计算两个数字相加,并赋值给变量jieguo
            float jieguo = num1 + num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }

        private void btnJian_Click(object sender, EventArgs e)
        {
            //将第一个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num1
            float num1 = Convert.ToSingle(textBox1.Text);
            //将第二个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num2
            float num2 = Convert.ToSingle(textBox2.Text);
            //计算两个数字相减,并赋值给变量jieguo
            float jieguo = num1 - num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }

        private void btnCheng_Click(object sender, EventArgs e)
        {
            //将第一个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num1
            float num1 = Convert.ToSingle(textBox1.Text);
            //将第二个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num2
            float num2 = Convert.ToSingle(textBox2.Text);
            //计算两个数字相乘,并赋值给变量jieguo
            float jieguo = num1 * num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }

        private void btnChu_Click(object sender, EventArgs e)
        {
            //将第一个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num1
            float num1 = Convert.ToSingle(textBox1.Text);
            //将第二个TextBox控件里用户输入的数据(string类型),转换成浮点类型,并赋值给变量num2
            float num2 = Convert.ToSingle(textBox2.Text);
            //计算两个数字相除,并赋值给变量jieguo
            float jieguo = num1 / num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }
    }
}

思考:这样完成的代码,有很多重复代码,如何简化代码?

解决办法:在同一个窗体类中,可以共用变量

第五步:窗体设计好之后,先不进行按钮事件添加。在解决方案资源管理器里,找到窗体文件Form1.cs,单击鼠标右键,点击【查看代码】,进入代码编写模式。声明三个float类型的变量,用来存放用户将要输入的数据信息。

第六步:给两个输入框,分别设置TextChanged事件。方法:在窗体设计界面,选中第一个输入框,在属性面板的事件里找到TextChanged事件,双击其后面的输入框,即进入该控件的TextChanged事件代码,

添加一行代码:num1 = Convert.ToSingle(textBox1.Text);

然后给第二个输入框也添加TextChanged事件,

添加一行代码:num2 = Convert.ToSingle(textBox2.Text);

第七步:给四个按钮分别添加Click事件。

举例:双击【相加】按钮,进入代码编写模式,添加两行代码:

jieguo = num1 + num2;

textBox3.Text = Convert.ToString(jieguo);

按照此步骤,依次给另外3个按钮添加Click事件。

完整版代码:

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 MyCounter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //声明3个变量,num1用来存放第一个数字,num2用来存放第二个数字,
        //jieguo用来存放运算结果数据
        float num1, num2, jieguo;

        //第一个输入框的TextChanged事件,即TextBox输入框里的Text发生改变时,执行的操作
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            //获取输入框里的Text属性,并将其强制转换成float类型,然后赋值给变量num1
            num1 = Convert.ToSingle(textBox1.Text);
        }
        //第二个输入框的TextChanged事件,即TextBox输入框里的Text发生改变时,执行的操作
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            num2 = Convert.ToSingle(textBox2.Text);
        }

        //【相加】按钮的Click事件,即点击该按钮时,执行的操作
        private void btnJia_Click(object sender, EventArgs e)
        {
            //计算两个数字相加,并赋值给变量jieguo
             jieguo = num1 + num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }

        private void btnJian_Click(object sender, EventArgs e)
        {
            //计算两个数字相减,并赋值给变量jieguo
            jieguo = num1 - num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }

        private void btnCheng_Click(object sender, EventArgs e)
        {
            //计算两个数字相乘,并赋值给变量jieguo
           jieguo = num1 * num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }

        private void btnChu_Click(object sender, EventArgs e)
        {
            //计算两个数字相除,并赋值给变量jieguo
            jieguo = num1 / num2;
            //将结果的值,赋值给第三个TextBox控件(需要将float类型的数据先转换成string类型再赋值)
            textBox3.Text = Convert.ToString(jieguo);
        }


    }
}

结果演示:

思考:还有没有其他更好地方法来实现代码简化?

思考:如何制作一个完整版的计算机程序

========================这里是结束分割线=====================

猜你喜欢

转载自blog.csdn.net/dnruanjian/article/details/88639739