//等于号
//+、-、*、/算法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CalculatorBLL1
{
{
public class Operate
{
/**/
/// <summary>
/// 运算类
/// </summary>
{
/**/
/// <summary>
/// 运算类
/// </summary>
private double _numberA = 0;
private double _numberB = 0;
/**/
/// <summary>
/// 数字A
/// </summary>
public double NumberA
{
get { return _numberA; }
set { _numberA = value; }
}
/**/
/// <summary>
/// 数字B
/// </summary>
public double NumberB
{
get { return _numberB; }
set { _numberB = value; }
}
/**/
/// <summary>
/// 得到运算结果
/// </summary>
/// <returns></returns>
public virtual double GetResult()
{
double result = 0;
return result;
}
}
private double _numberB = 0;
/**/
/// <summary>
/// 数字A
/// </summary>
public double NumberA
{
get { return _numberA; }
set { _numberA = value; }
}
/**/
/// <summary>
/// 数字B
/// </summary>
public double NumberB
{
get { return _numberB; }
set { _numberB = value; }
}
/**/
/// <summary>
/// 得到运算结果
/// </summary>
/// <returns></returns>
public virtual double GetResult()
{
double result = 0;
return result;
}
}
/**/
/// <summary>
/// 加法类
/// </summary>
public class OperationAdd : Operate
{
public override double GetResult()
{
double result = 0;
result = NumberA + NumberB;
return result;
}
}
/**/
/// <summary>
/// 减法类
/// </summary>
public class OperationSub : Operate
{
public override double GetResult()
{
double result = 0;
result = NumberA - NumberB;
return result;
}
}
/**/
/// <summary>
/// 乘法类
/// </summary>
public class OperationMul : Operate
{
public override double GetResult()
{
double result = 0;
result = NumberA * NumberB;
return result;
}
}
/**/
/// <summary>
/// 除法类
/// </summary>
public class OperationDiv : Operate
{
public override double GetResult()
{
double result = 0;
if (NumberB == 0)
throw new Exception("除数不能为0。");
result = NumberA / NumberB;
return result;
}
}
/**/
/// <summary>
/// 运算类工厂
/// </summary>
/// <summary>
/// 加法类
/// </summary>
public class OperationAdd : Operate
{
public override double GetResult()
{
double result = 0;
result = NumberA + NumberB;
return result;
}
}
/**/
/// <summary>
/// 减法类
/// </summary>
public class OperationSub : Operate
{
public override double GetResult()
{
double result = 0;
result = NumberA - NumberB;
return result;
}
}
/**/
/// <summary>
/// 乘法类
/// </summary>
public class OperationMul : Operate
{
public override double GetResult()
{
double result = 0;
result = NumberA * NumberB;
return result;
}
}
/**/
/// <summary>
/// 除法类
/// </summary>
public class OperationDiv : Operate
{
public override double GetResult()
{
double result = 0;
if (NumberB == 0)
throw new Exception("除数不能为0。");
result = NumberA / NumberB;
return result;
}
}
/**/
/// <summary>
/// 运算类工厂
/// </summary>
public class OperationFactory
{
public static Operate createOperate(string operate)
{
Operate oper = null;
switch (operate)
{
case "+":
{
oper = new OperationAdd();
break;
}
case "-":
{
oper = new OperationSub();
break;
}
case "*":
{
oper = new OperationMul();
break;
}
case "/":
{
oper = new OperationDiv();
break;
}
}
return oper;
}
}
{
public static Operate createOperate(string operate)
{
Operate oper = null;
switch (operate)
{
case "+":
{
oper = new OperationAdd();
break;
}
case "-":
{
oper = new OperationSub();
break;
}
case "*":
{
oper = new OperationMul();
break;
}
case "/":
{
oper = new OperationDiv();
break;
}
}
return oper;
}
}
}