该代码实现了四则运算,用简单工厂模式开发.
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;
}
}