C#计算器简单设计

(一)类设计:
1.运算符枚举
 enum CalTypeWithTwoUnit
  Add  Sub Multi Div   5512915179

 enum CalTypeWithOneUnit
  Twice(平方) Sqrt(开放) DaoShu(倒数) Opp(相反数)

2.各个子类
 继承于父类CalActionBase
 这个父类中是所有子运算符进行运算都需要有的操作
  Validate 验证操作数的合法性
  Action 转换操作类型之后进行计算
  Calculate抽象方法 在各个子类中实现

3.接口ICalculator
 方法:PushNum PushCal BackAWord(退格) Reset(重置)
       ClearOneOppend(清除当前操作数)
 属性:Result 只读格式只有一个get方法 供外界调用

4.接口的实现类Calculator
 继承接口ICalculator
 因为要具体计算所以必须有一个CalActionBase的引用 _action
 _action可以调用Calculate方法而 在CalActionBase中是抽象方法
 所以_action实例化不同子类对象实例便可调用子类中对Calculate抽象方法的实现体  ——多态@@@@@@


(二)业务逻辑:
1.Form1中调用:
 定义一个接口_ical  _ical = new Calculator(); 则,_ical可以调用接口的所有方法和属性

2.再次分析一下上面各个类的作用,不难发现
 各个运算子类只是一个具体计算行为的操作
 而作为基类的CalActionBase只是各个子运算的一个统筹 只能包含一些具体运算中的公操作
 接口中自然也没有方法体的实现
 那么,主体的运算逻辑自然会在Calculator中了

3.分析Calculator中应该有什么属性和字段
 (1)一个CalActionBase类的引用_action。这个必须有,原因不再赘述
 (2)一个整体运算表达式的字符串string _strExp
  设置一个get方法 供外部调用 用于显示全部输入
  同时用于Clear操作(C)
 (3)一个操作数字符串 string _strNum
  用于ClearOneOppend操作(CE)和BackAWord(退格)操作
  设置一个get方法 供外部调用 用于显示当前输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值