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. 通過對象的屬性、方法,實現計算功能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章