C#使用Winfrom、CS实现计算器功能

前言:本博文演示,如何使用Winfrom、CS实现简易计算器,可计算加、减、乘、除、余、幂。

一、前端页面设计

在这里插入图片描述

二、创建类,用来实现计算功能

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Calc
{
	// 创建枚举
    enum Type
    {
        sum,
        minus,
        multiply,
        divide,
        surplus,
        square
    }

    class CalcList
    {
        // 第一个数
        public string Num1 { get; set; }

        // 第二个数
        public string Num2 { get; set; }

        // 运算符
        public Type Calculate { get; set; }

        /// <summary>
        /// 加法运算实现
        /// </summary>
        /// <returns>和</returns>
        private double Sum()
        {
            try
            {
                return Double.Parse(Num1) + Double.Parse(Num2);
            }
            catch
            {
                MessageBox.Show("程序异常,请务必确保输入数字!");
                return 0;
            }
        }

        /// <summary>
        /// 减法运算实现
        /// </summary>
        /// <returns>差</returns>
        private double Minus()
        {
            try
            {
                return Double.Parse(Num1) - Double.Parse(Num2);
            }
            catch
            {
                MessageBox.Show("程序异常,请务必确保输入数字!");
                return 0;
            }
        }

        /// <summary>
        /// 乘法运算实现
        /// </summary>
        /// <returns>积</returns>
        private double Multiply()
        {
            try
            {
                return Double.Parse(Num1) * Double.Parse(Num2);
            }
            catch
            {
                MessageBox.Show("程序异常,请务必确保输入数字!");
                return 0;
            }
        }

        /// <summary>
        /// 除法运算实现
        /// </summary>
        /// <returns>商</returns>
        private double divide()
        {
            try
            {
                return Double.Parse(Num1) / Double.Parse(Num2);
            }
            catch
            {
                MessageBox.Show("程序异常,请务必确保输入数字!");
                return 0;
            }
        }

        /// <summary>
        /// 余法运算实现
        /// </summary>
        /// <returns>余</returns>
        private double surplus()
        {
            try
            {
                return Double.Parse(Num1) % Double.Parse(Num2);
            }
            catch
            {
                MessageBox.Show("程序异常,请务必确保输入数字!");
                return 0;
            }
        }

        /// <summary>
        /// 幂法运算实现
        /// </summary>
        /// <returns>幂</returns>
        private double square()
        {
            try
            {
                return Math.Pow(Double.Parse(Num1), Double.Parse(Num2));

            }
            catch
            {
                MessageBox.Show("程序异常,请务必确保输入数字!");
                return 0;
            }
        }
        /// <summary>
        /// 返回运算结果的方法
        /// </summary>
        /// <returns>结果</returns>
        public double GetResult()
        {
            switch (Calculate)
            {
                case Type.sum:
                    return Sum();
                case Type.minus:
                    return Minus();
                case Type.multiply:
                    return Multiply();
                case Type.divide:
                    return divide();
                case Type.surplus:
                    return surplus();
                case Type.square:
                    return square();
                default:
                    return 0;
            }
        }
    }
}

三、后端代码编写

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

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.SelectedIndex = 0;
        }
        // 实例化对象
        CalcList calcList = new CalcList();
        private void button1_Click(object sender, EventArgs e)
        {
            calcList.Num1 = textBox1.Text;
            calcList.Num2 = textBox2.Text;
            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    calcList.Calculate = Type.sum;
                    break;
                case 1:
                    calcList.Calculate = Type.minus;
                    break;
                case 2:
                    calcList.Calculate = Type.multiply;
                    break;
                case 3:
                    calcList.Calculate = Type.divide;
                    break;
                case 4:
                    calcList.Calculate = Type.surplus;
                    break;
                case 5:
                    calcList.Calculate = Type.square;
                    break;
            }
            label1.Text = calcList.GetResult().ToString();
        }
    }
}

四、执行效果图

  1. 输入非数字时:
    在这里插入图片描述
  2. 输出数字时:
    在这里插入图片描述

五、所用知识总结

  1. 使用枚举,列出运算符。
  2. 使用下拉列表的索引,与枚举对应,进而确定运算符。
  3. 创建类,实现计算业务逻辑。
  4. 在按钮的点击事件里,通过实例化的对象,与类产生联系。
  5. 通过对象的属性、方法,实现计算功能。

猜你喜欢

转载自blog.csdn.net/qq_44034384/article/details/106747179