OO第一次博客作业
三次编程作业:多项式求导,多项式+三角函数求导,求导支持表达式嵌套
什么是面向对象
作业分析
第一次作业
任务为简单多项式导函数的求解。
解决方案:使用HashMap存储指数和系数
下图是IDEA生成的类图,可以看到本次作业只使用了2个类,Main类用于判断输入合法性以及调用Poly的方法构建一个表达式,Poly则是构建的表达式类,里边包含一个HashMap<BigInteger,BigInteger>用于表达一个表达式,同时也放了另一个Hashmap存储了求导之后的结果,public void parsePoly(String s, char op) 函数用于解析一个String里边的所有的项并加入Hashmap, public void diffe()用于表达式求导,public String toString() 用于表达式输出。
代码复杂度分析如下
缺点:一个Poly类中放置了2个HashMap对象分别保存求导前的表达式和求导后的表达式,这样一来toString方法中就限定了输出diffPloy对象,耦合度高。
修改:可以Poly类中只放置一个HashMap对象代表一个表达式,而求导后的表达式仍旧是一个表达式对象,可以new Poly()去实现。这样一来toString()方法就只是用来输出表达式了,而不是确定的输出“求导后的表达式”。