• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用C#面向对象实现简易计算器(简单工厂模式)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

操作流程:

1. 新建Operation

2. 新建OperationAdd类,并继承Operation

3. 新建OperationSub类,并继承Operation

4. 新建OperationMul类,并继承Operation

5. 新建OperationDiv类,并继承Operation

6. 新建创造实例的工厂类OperationFactory

7. Main方法操作根据传入的运算符创造相对应的操作类,并执行相对应的运算逻辑


1、新建Operation

    public class Operation
    {
        public double numberA { get; set; }
        public double numberB { get; set; }
        public virtual double getResult()
        {
            return 0;
        }
    }

2. 新建OperationAdd类,并继承Operation

    public class OperationAdd : Operation
    {
        //实现操作加法运算
        public override double getResult()
        {
            double result = 0;
            result = numberA + numberB;
            return result;
        }
    }

3. 新建OperationSub类,并继承Operation

    public class OperationSub : Operation
    {
        //实现减法操作
        public override double getResult()
        {
            double result = 0;
            result = numberA - numberB;
            return result;
        }
    }

4. 新建OperationMul类,并继承Operation

    public class OperationMul : Operation
    {
        //实现乘法操作
        public override double getResult()
        {
            double result = 0;
            result = numberA * numberB;
            return result;
        }
    }

5. 新建OperationDiv类,并继承Operation

    public class OperationDiv : Operation
    {
        //实现除法操作
        public override double getResult()
        {
            double result = 0;
            if (numberB == 0)
                throw new Exception("除数不能为0");
            result = numberA / numberB;
            return result;
        }
    }

6. 新建创造实例的工厂类OperationFactory

    public class OperationFactory
    {
        public static Operation CreateOperate(string operate)
        {
            Operation oper = null;
            switch (operate)
            {
                case "+":
                    oper = new OperationAdd();
                    break;
                case "-":
                    oper = new OperationSub();
                    break;
                case "*":
                    oper = new OperationMul();
                    break;
                case "/":
                    oper = new OperationDiv();
                    break;
                default:
                    break;
            }
            return oper;
        }
    }

7. Main方法操作根据传入的运算符创造相对应的操作类,并执行相对应的运算逻辑

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Operation oper = OperationFactory.CreateOperate("+");
                oper.numberA = 3;
                oper.numberB = 2;
                double result = oper.getResult();
                Console.WriteLine(result);
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
                throw;
            }
        }
    }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
WinFormC#拨号程序代码发布时间:2022-07-10
下一篇:
c#picturebox控件显示本地图片和显示网上的图片发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap