前言:本博文演示,如何使用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();
}
}
}
四、执行效果图
- 输入非数字时:
- 输出数字时:
五、所用知识总结
- 使用枚举,列出运算符。
- 使用下拉列表的索引,与枚举对应,进而确定运算符。
- 创建类,实现计算业务逻辑。
- 在按钮的点击事件里,通过实例化的对象,与类产生联系。
- 通过对象的属性、方法,实现计算功能。