数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)

利用Visual Stdio编写一个简易计算器 (C#)

在本篇中,我们将学习如何构造一个简易的计算器,并且简单利用C#简单编程,先放张高端的图。

数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第1张图片

一、环境安装
打开Visual Studio Installer,这里我们需要下载 .NET桌面开发,选择好安装位置,等待几分钟完成即可。

数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第2张图片
之后开始新建项目,选择C# --> Windows --> 桌面,找到Windows窗体应用按流程选择存储位置、文件名称就完成项目的创建了。
数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第3张图片
打开之后就是这样的:界面的左边我通常是习惯于放置工具箱,工具箱可以在视图里找到。数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第4张图片数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第5张图片
二、组件添加:
那么接下来我们可以将需要的组件从工具箱拖拽到界面中,这里我们用到的有:Button、TextBox,之后根据需要我们可以右击组件打开其属性面板,在这里改变其大小、文本等属性,如按钮名可以从“Button1”改成“+”,“÷” 等等,。
数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第6张图片
添加完基本元素后就得到了一个简易的计算器,当然现在并不能进行操作,之后也可以添加更多有趣的元素。
数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第7张图片
这里是我创建的计算器,其中TextBox组件我改变了大小,以及锁定了“Enter”键,防止输入数字时会换行,另外里面加入了两个Label组件,一个当表情 (๑•̀ㅂ•́)و✧用,另一个命名为label3,先隐藏处理了,其作用在文章后问题③会给出。

数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第8张图片

三、功能赋予
这一环境就是编程了,双击组件就可以看到代码页面,下面我们尝试给按键 ‘1’ 编程,这里我们要求的功能是,按下1时,文本就会出现1;而如果对按键 ‘+’、按键 ‘=’ 编程的话,相应的代码就会不同,现在先给出基本的代码(如下图:)
数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第9张图片
要完成这些操作,我认为关键的就是记录左右的数字以及判断进行的是什么操作,所以我首先在全局建立了代表左右数字和结果的变量,同时增加了flag变量来进行判断:

 Double leftnum, rightnum;
 Double result;
 int flag;

这些按键代码完成之后,一个简易的计算器算是可以使用了,但是显而易见存在许多缺陷:

①清零操作如何实现?

②如何防止输入时出现换行情况(即禁用Enter键 )?

③输入时万一不小心走神怎么知道前面干了什么?

④错误操作怎么判断并改正?如“1+=”、“.=”、"123="等等语句。

……………………
这里我对前四个问题做出了解决, (๑•̀ㅂ•́)و✧虽然不一定对,哈哈,更多的问题希望可以一起探讨,完整代码如下:


namespace Counter
{
     
    public partial class Form1 : Form
    {
     
        public Form1()
        {
     
            InitializeComponent();
        }
        Double leftnum, rightnum;
        Double result;
        int flag=0;

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
     
            if (e.KeyCode == Keys.Enter)
            {
     
                this.button1.Focus();
            }
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "1";
            label3.Text += "1";
        }

        private void button2_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "2";
            label3.Text += "2";
        }

        private void button3_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "3";
            label3.Text += "3";
        }

        private void button9_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "4";
            label3.Text += "4";
        }

        private void button8_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "5";
            label3.Text += "5";
        }

        private void button7_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "6";
            label3.Text += "6";
        }

        private void button13_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "7";
            label3.Text += "7";
        }

        private void button12_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "8";
            label3.Text += "8";
        }

        private void button11_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "9";
            label3.Text += "9";
        }

        private void button16_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += "0";
            label3.Text += "0";
        }

        private void button15_Click(object sender, EventArgs e)
        {
     
            if (label3.Text == "error")
                label3.Text = "";
            textBox1.Text += ".";
            label3.Text += ".";
        }

        private void button17_Click(object sender, EventArgs e)
        {
     
            textBox1.Text = "";
            label3.Text = "";
            leftnum = rightnum = 0;
            flag = 0;
        }

        private void button4_Click(object sender, EventArgs e)
        {
     
            if (textBox1.Text == "" || textBox1.Text == ".")
                flag = 0;
            else
            {
     
                leftnum = Convert.ToDouble(textBox1.Text);
                textBox1.Text = "";
                 label3.Text += "+";
                flag = 1;
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
     
            if (textBox1.Text == "" || textBox1.Text == ".")
                flag = 0;
            else
            {
     
                leftnum = Convert.ToDouble(textBox1.Text);
                 textBox1.Text = "";
                label3.Text += "-";
                flag = 2;
            }
        }

        private void button10_Click(object sender, EventArgs e)
        {
     
            if (textBox1.Text == "" || textBox1.Text == ".")
                flag = 0;
            else
            {
     
                leftnum = Convert.ToDouble(textBox1.Text);
                textBox1.Text = "";
                label3.Text += "X";
                flag = 3;
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
     
            if (textBox1.Text == ""|| textBox1.Text == ".")
                flag = 0;
            else
                rightnum = Convert.ToDouble(textBox1.Text);
            if (flag == 1)
                result = leftnum + rightnum;
            else if (flag == 2)
                result = leftnum - rightnum;
            else if (flag == 3)
                result = leftnum * rightnum;
            else if (flag == 4)
                result = leftnum / rightnum;
            label3.Text = result.ToString();
            textBox1.Text = result.ToString();
            rightnum = 0;
            if (flag==0)
            {
     
                label3.Text = "error";
                textBox1.Text = "";
            }
                
        }

        private void button14_Click(object sender, EventArgs e)
        {
     
            if (textBox1.Text == "" || textBox1.Text == ".")
                flag = 0;
            else
            {
     
                leftnum = Convert.ToDouble(textBox1.Text);
                textBox1.Text = "";
                label3.Text += "÷";
                flag = 4;
            }
        }
    }
}

数据库学习2 — 利用Visual Stdio编写一个简易计算器 (C#)_第10张图片
以上就是文章全部内容,感谢阅读。

你可能感兴趣的:(vs2019,c#,visual,studio)