首页 > 技术文章 > 杨得胜.winfrom实现一年级数学计算

yangjiahe 2021-05-31 21:33 原文

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 FormProject

{

    public partial class Form2 : Form

    {

        public Form2()

        {

            InitializeComponent();

        }

      

        /// <summary>

        /// 等于按钮

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void button1_Click(object sender, EventArgs e)

        {

            //char.IsNumber判断是否为数字,这里只假设都是整数的情况下

            //for (int i = 0; i < textBox1.Text.Length; i++)

            //{

            // if (char.IsNumber(textBox1.Text,i))

            // {

            // int n1 = Convert.ToInt32(textBox1.Text.Trim());

            // }

            // else

            // {

            // MessageBox.Show("只支持整数运算");

            // }

            //}

            //采集数据

            int n1 = Convert.ToInt32(textBox1.Text.Trim());

            int n2 = int.Parse(textBox2.Text.Trim());

            if (comboBox1.SelectedIndex == 0)

            {

                MessageBox.Show("请选择一个操作符再进行运算!");

            }

            else

            {

                int s = 0;

                switch (comboBox1.Text)

                {

                    case "+":

                        s = n1 + n2;

                        break;

                    case "-":

                        s = n1 - n2;

                        break;

                    case "*":

                        s = n1 * n2;

                        break;

                    case "/":

                        if (n2 == 0)

                        {

                            MessageBox.Show("除数不能为零!");

                        }

                        else

                        {

                            s = n1 / n2;

                        }                 

                        break;

                    default:

                        MessageBox.Show("未知的运算!");

                        break;

                }

                label1.Text = s.ToString();

            }

        }

        /// <summary>

        /// 窗体加载时

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void Form2_Load(object sender, EventArgs e)

        {

            //给下拉列表框设置默认值

            this.comboBox1.SelectedIndex = 0;

        }

    }

}

 

用面向对象来实现简易计算器:

 

添加一个计算类:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace Calculate

{

    public class Cal

    {

        public double Num1

        {

            get;

            set;

        }

        public double Num2

        {

            get;

            set;

        }

 

 

        public double Calcu(string operate)

        {

            double sum = 0;

            switch(operate)

            {

                case "+":

                    sum = this.Num1 + this.Num2;

                    break;

                case "-":

                    sum = this.Num1 - this.Num2;

                    break;

                case "*":

                    sum = this.Num1 * this.Num2;

                    break;

                case "/":

                    sum = this.Num1 / this.Num2;

                    break;

            }

            return sum;

        }

    }

}

 

窗体直接引用这个类的实例:

 

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 Calculate

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

 

        private void button1_Click(object sender, EventArgs e)

        {

            Cal cal = new Cal();

            cal.Num1 = Convert.ToInt32(textBox1.Text.Trim());

            cal.Num2 = int.Parse(textBox2.Text.Trim());

            if (comboBox1.SelectedIndex == 0)

            {

                MessageBox.Show("请选择一个操作符后再执行计算!");

            }

            else

            {

                label1.Text = cal.Calcu(comboBox1.Text).ToString();

            }

        }

 

 

        private void Form1_Load(object sender, EventArgs e)

        {

            comboBox1.SelectedIndex = 0;

        }

    }

}

推荐阅读