该代码实现了四则运算,用简单工厂模式开发.
class
Program
{
static void Main(string[] args)
{
Console.Write("请输入数字A:");
string A = Console.ReadLine();
Console.Write("请选择运算符号(+、-、*、/):");
string B = Console.ReadLine();
Console.Write("请输入数字B:");
string C = Console.ReadLine();
string D = "";
Operation oper = OperationFactory.createOpertion(B);
oper.NumberA = int.Parse(A);
oper.NumberB = int.Parse(C);
D = oper.GetResult().ToString();
Console.WriteLine("结果是:" + D);
}
}
public class Operation
{
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;
}
}
/// <summary>
/// 加法类
/// </summary>
public class OperationAdd : Operation
{
public override double GetResult()
{
return this.NumberA + NumberB;
}
}
/// <summary>
/// 减法类
/// </summary>
public class OperationSub : Operation
{
public override double GetResult()
{
return NumberA - NumberB;
}
}
/// <summary>
/// 乘法类
/// </summary>
public class OperationNul : Operation
{
public override double GetResult()
{
return NumberA * NumberB;
//return base.GetResult();
}
}
/// <summary>
/// 除法类
/// </summary>
public class OperationDiv : Operation
{
public override double GetResult()
{
if (NumberB == 0)
{
return 0;
}
return NumberA / NumberB;
//return base.GetResult();
}
}
public class OperationFactory
{
public static Operation createOpertion(string operte)
{
Operation Oper=null;
switch (operte)
{
case "+":
{
Oper = new OperationAdd();
break;
}
case "-":
{
Oper = new OperationSub();
break;
}
case "*":
{
Oper = new OperationNul();
break;
}
case "/":
{
Oper = new OperationDiv();
break;
}
}
return Oper;
}
}
{
static void Main(string[] args)
{
Console.Write("请输入数字A:");
string A = Console.ReadLine();
Console.Write("请选择运算符号(+、-、*、/):");
string B = Console.ReadLine();
Console.Write("请输入数字B:");
string C = Console.ReadLine();
string D = "";
Operation oper = OperationFactory.createOpertion(B);
oper.NumberA = int.Parse(A);
oper.NumberB = int.Parse(C);
D = oper.GetResult().ToString();
Console.WriteLine("结果是:" + D);
}
}
public class Operation
{
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;
}
}
/// <summary>
/// 加法类
/// </summary>
public class OperationAdd : Operation
{
public override double GetResult()
{
return this.NumberA + NumberB;
}
}
/// <summary>
/// 减法类
/// </summary>
public class OperationSub : Operation
{
public override double GetResult()
{
return NumberA - NumberB;
}
}
/// <summary>
/// 乘法类
/// </summary>
public class OperationNul : Operation
{
public override double GetResult()
{
return NumberA * NumberB;
//return base.GetResult();
}
}
/// <summary>
/// 除法类
/// </summary>
public class OperationDiv : Operation
{
public override double GetResult()
{
if (NumberB == 0)
{
return 0;
}
return NumberA / NumberB;
//return base.GetResult();
}
}
public class OperationFactory
{
public static Operation createOpertion(string operte)
{
Operation Oper=null;
switch (operte)
{
case "+":
{
Oper = new OperationAdd();
break;
}
case "-":
{
Oper = new OperationSub();
break;
}
case "*":
{
Oper = new OperationNul();
break;
}
case "/":
{
Oper = new OperationDiv();
break;
}
}
return Oper;
}
}