2019_BUAAOO_第一单元总结
前言 校历第五周,面向对象程序设计课程的第一单元告一段落。在第一单元的作业中,我们围绕着“表达式求导”的题目展开,从第一次作业的最简单的多项式求导,到第二次作业增加简单的三角函数求导,再到第三次作业增加复合函数嵌套求导……难度是在不断增加的,但是如果从一开始的第一次作业的设计就有着清晰的层次和逻辑,为后面的两次作业留下扩展的空间,那么在后续的作业中可谓是事半功倍。但是想必大多数人拿到新作业都是要对代码进行重构的,包括我本人。 完成第一单元的三次作业,回过头看,还是有很多值得分析和思考的地方的。这篇博客就将对本人在这三次作业中的代码进行分析,并简单给出自己的做题思路,若有不当之处,还请大家及时指出。 一、分析程序结构 1. 第一次作业(简单多项式求导) 在做第一次作业时,我还完全不理解面向对象是什么(虽然现在也只是一知半解……)。但是为了避免“一main到底”的情况出现,我还是象征性的建了一个类。 在Exp这个类中,有很多对表达式进行操作的方法,如判断合法,split分成一项一项,求导运算等等。以下是第一次作业的复杂度和行数统计。 由此得出在Exp.calculate()方法中的复杂度还是比较高的,也是后续可以优化的一个方面。在本次作业中,最主要的思路是用每一项的正则表达式去匹配,匹配到之后用substring将匹配的字符串取出并对其用 * 和 ^