前言:本博文演示,如何使用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();
}
}
}
四、執行效果圖
- 輸入非數字時:
- 輸出數字時:
五、所用知識總結
- 使用枚舉,列出運算符。
- 使用下拉列表的索引,與枚舉對應,進而確定運算符。
- 創建類,實現計算業務邏輯。
- 在按鈕的點擊事件裏,通過實例化的對象,與類產生聯繫。
- 通過對象的屬性、方法,實現計算功能。